@wavemaker/app-ng-runtime 11.9.3-1.5949 → 11.9.3-1.5952

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/pagination/src/pagination.props.ts","../../../../../projects/components/widgets/data/pagination/src/pagination.component.html","../../../../../projects/components/widgets/data/pagination/src/pagination.component.ts","../../../../../projects/components/widgets/data/pagination/src/pagination.module.ts","../../../../../projects/components/widgets/data/pagination/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-pagination',\n new Map(\n [\n ['boundarylinks', {value: false, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['directionlinks', {value: true, ...PROP_BOOLEAN}],\n ['forceellipses', {value: true, ...PROP_BOOLEAN}],\n ['maxResults', PROP_NUMBER],\n ['maxsize', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navigation', {value: 'Basic', ...PROP_STRING}],\n ['navigationalign', {value: 'left', ...PROP_STRING}],\n ['navigationsize', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showrecordcount', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n )\n );\n};\n","\n<ul class=\"pagination advanced {{navigationClass}}\" *ngIf=\"navcontrols === 'Classic'\">\n <li [ngClass]=\"{'disabled':isDisableFirst}\">\n <a [title]=\"appLocale.LABEL_FIRST\" name=\"first\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisableFirst\"\n (click)=\"navigatePage('first', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-first-page\"></i></span>\n <span class=\"sr-only\">Go to first page {{ isDisableFirst ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li [ngClass]=\"{'disabled':isDisablePrevious}\">\n <a [title]=\"appLocale.LABEL_PREVIOUS\" name=\"prev\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisablePrevious\"\n (click)=\"navigatePage('prev', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-left\"></i></span>\n <span class=\"sr-only\">Go to previous page {{ isDisablePrevious ? ', Disabled' : ''}}</span>\n </a>\n </li>\n <li class=\"pagecount disabled\">\n <a href=\"javascript:void(0);\">\n <input [(ngModel)]=\"dn.currentPage\" [attr.aria-label]=\"'Showing Page ' + dn.currentPage + ' of ' + pageCount\" [disabled]=\"isDisableCurrent\"\n [ngModelOptions]=\"{standalone: true}\"\n type=\"number\"\n (keydown)=\"onKeyDown($event)\" (change)=\"onModelChange($event)\" class=\"form-control\"/>\n </a>\n </li>\n <li class=\"disabled\">\n <a [hidden]=\"isDisableCount\"> / {{pageCount}}</a>\n </li>\n <li [ngClass]=\"{'disabled':isDisableNext}\">\n <a [title]=\"appLocale.LABEL_NEXT\" name=\"next\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisableNext\"\n (click)=\"navigatePage('next', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-right\"></i></span>\n <span class=\"sr-only\">Go to next page {{ isDisableNext ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li [ngClass]=\"{'disabled':isDisableLast}\">\n <a [title]=\"appLocale.LABEL_LAST\" name=\"last\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisableLast\"\n (click)=\"navigatePage('last', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-last-page\"></i></span>\n <span class=\"sr-only\">Go to last page {{ isDisableLast ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li *ngIf=\"showrecordcount\" class=\"totalcount disabled\">\n <a href=\"javascript:void(0);\" tabindex=\"-1\" aria-disabled=\"true\">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n<ul class=\"pager {{navigationClass}}\" *ngIf=\"navcontrols === 'Pager'\">\n <li class=\"previous\" [ngClass]=\"{'disabled':isDisablePrevious}\">\n <a href=\"javascript:void(0);\" (click)=\"navigatePage('prev', $event)\"\n [attr.aria-disabled]=\"isDisablePrevious\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-left\"></i></span>\n {{appLocale.LABEL_PREVIOUS}}\n <span class=\"sr-only\">{{ isDisablePrevious ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li class=\"next\" [ngClass]=\"{'disabled':isDisableNext}\">\n <a href=\"javascript:void(0);\" (click)=\"navigatePage('next', $event)\"\n [attr.aria-disabled]=\"isDisableNext\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-right\"></i></span>\n {{appLocale.LABEL_NEXT}}\n <span class=\"sr-only\">{{ isDisableNext ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n</ul>\n\n<pagination class=\"pagination basic\" [ngClass]=\"navigationClass\" *ngIf=\"navcontrols === 'Basic'\" role=\"navigation\"\n [itemsPerPage]=\"maxResults\" [totalItems]=\"dataSize\"\n (pageChanged)=\"pageChanged($event)\" [ngModelOptions]=\"{standalone:true}\" [ngModel]=\"dn.currentPage\"\n [attr.aria-label]=\"'Showing Page ' + dn.currentPage + ' of ' + pageCount + ' pages'\"\n [boundaryLinks]=\"boundarylinks\" [maxSize]=\"maxsize\"\n [directionLinks]=\"directionlinks\"\n firstText=\"Firtst\" lastText=\"Last\"\n [customPreviousTemplate]=\"prevTemplate\"\n [customNextTemplate]=\"nextTemplate\"\n [customPageTemplate]=\"pageTemplate\"></pagination>\n\n<ul *ngIf=\"navcontrols === 'Basic' && showrecordcount\" class=\"pagination\">\n <li class=\"totalcount disabled basiccount\">\n <a href=\"javascript:void(0);\" tabindex=\"-1\" aria-disabled=\"true\">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n\n<ng-template #pageTemplate let-page>\n <span class=\"sr-only\" [attr.data-isacitvepage]=\"page.active\">{{'Page '}}</span>\n {{page.number}}\n <span class=\"sr-only\" *ngIf=\"page.active\"> {{', Showing page ' + page.number + ' of ' + pageCount}}</span>\n</ng-template>\n<ng-template #prevTemplate let-disabled=\"disabled\">\n <span class=\"sr-only\" [attr.data-isdisabled]=\"disabled\">Go to Previous page {{disabled ? ', Disabled' : ''}}</span>\n</ng-template>\n<ng-template #nextTemplate let-disabled=\"disabled\">\n <span class=\"sr-only\" [attr.data-isdisabled]=\"disabled\">Go to Next page {{disabled ? ', Disabled' : ''}}</span>\n</ng-template>\n","import {Component, EventEmitter, Inject, Injector, Output, SkipSelf, AfterViewInit, Optional} from '@angular/core';\n\nimport {\n $appDigest,\n $watch,\n AppConstants,\n DataSource,\n debounce,\n isDefined,\n switchClass,\n triggerFn\n} from '@wm/core';\nimport { DEBOUNCE_TIMES, getOrderByExpr, provideAsWidgetRef, StylableComponent, styler, WidgetRef, unsupportedStatePersistenceTypes} from '@wm/components/base';\nimport { registerProps } from './pagination.props';\nimport {forEach, get, isArray, isEmpty, isNull, isString} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-datanavigator clearfix';\nconst WIDGET_CONFIG = {widgetType: 'wm-pagination', hostClass: DEFAULT_CLS};\n\nconst sizeClasses = {\n 'Pager': {\n 'small': 'pager-sm',\n 'large': 'pager-lg'\n },\n 'Basic': {\n 'small': 'pagination-sm',\n 'large': 'pagination-lg'\n },\n 'Classic': {\n 'small': 'pagination-sm',\n 'large': 'pagination-lg'\n }\n};\n@Component({\n selector: '[wmPagination]',\n templateUrl: './pagination.component.html',\n providers: [\n provideAsWidgetRef(PaginationComponent)\n ]\n})\nexport class PaginationComponent extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n @Output() resultEmitter: EventEmitter<any> = new EventEmitter();\n @Output() maxResultsEmitter: EventEmitter<any> = new EventEmitter();\n\n datasource;\n maxResults;\n navigationsize;\n showrecordcount;\n\n navcontrols;\n navigation;\n\n boundarylinks;\n directionlinks;\n\n navigationClass;\n dn = {\n currentPage: 1\n };\n\n pageCount = 0;\n isDisableNext = true;\n isDisablePrevious = true;\n isDisableFirst = true;\n isDisableLast = true;\n isDisableCurrent;\n dataSize;\n prevshowrecordcount;\n isDisableCount;\n firstRow;\n result;\n __fullData;\n dataset;\n options;\n statehandler;\n filterFields;\n sortOptions;\n binddataset;\n pagination;\n logicalOp;\n\n private _debouncedApplyDataset = debounce(() => this.widget.dataset = this.dataset, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n private _debouncedPageChanged = debounce(event => {\n const currentPage = event && event.page;\n // Do not call goToPage if page has not changed\n if (currentPage !== this.dn.currentPage) {\n const inst = (this as any).parent || this;\n this.dn.currentPage = currentPage;\n inst.invokeEventCallback('paginationchange', {$event: undefined, $index: this.dn.currentPage});\n this.goToPage();\n if (this.navigation === 'Basic') {\n this._setAriaForBasicNavigation();\n }\n }\n }, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n\n private _setAriaForBasicNavigation() {\n forEach(this.nativeElement.getElementsByTagName('a'), (item) => {\n item.setAttribute('href', 'javascript:void(0);');\n const childNode = item.querySelector('span');\n if (childNode?.dataset.isacitvepage === \"true\") {\n item.setAttribute('aria-current', 'true');\n }\n if(childNode?.dataset.isdisabled === \"true\") {\n item.setAttribute('aria-disabled', 'true');\n } else {\n item.removeAttribute('aria-disabled');\n }\n });\n }\n\n constructor(inj: Injector, @SkipSelf() @Inject(WidgetRef) public parent, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n setResult(result) {\n // TODO: Emit event only if result is changed\n this.result = result;\n this.resultEmitter.emit(this.result);\n }\n\n // Update navigationClass based on navigation and navigationSize props\n private updateNavSize() {\n const sizeCls = sizeClasses[this.navcontrols];\n if (sizeCls && this.navigationsize) {\n this.navigationClass = sizeCls[this.navigationsize];\n } else {\n this.navigationClass = '';\n }\n }\n\n // Function to reset the paging values to default.\n resetPageNavigation() {\n this.pageCount = 0;\n this.dn.currentPage = 1;\n this.dataSize = 0;\n }\n\n /*Function to calculate the paging values.*/\n calculatePagingValues() {\n this.pageCount = (this.dataSize > this.maxResults) ? (Math.ceil(this.dataSize / this.maxResults)) : (this.dataSize < 0 ? 0 : 1);\n this.dn.currentPage = this.dn.currentPage || 1;\n }\n\n /*Function to set default values to the paging parameters*/\n setDefaultPagingValues(dataSize, maxResults, currentPage) {\n /*If neither 'dataSize' nor 'maxResults' is set, then set default values to the paging parameters.*/\n if (!dataSize && !maxResults) {\n this.pageCount = 1;\n this.dn.currentPage = 1;\n this.maxResults = dataSize;\n this.dataSize = dataSize;\n } else { /*Else, set the specified values and recalculate paging parameters.*/\n this.maxResults = maxResults || this.maxResults;\n this.dataSize = isDefined(dataSize) ? dataSize : this.dataSize;\n this.dn.currentPage = currentPage || this.dn.currentPage;\n this.calculatePagingValues();\n }\n this.maxResultsEmitter.emit(this.maxResults);\n }\n\n /*Function to check the dataSize and manipulate the navigator accordingly.*/\n checkDataSize(dataSize, numberOfElements?, size?) {\n /*If the dataSize is -1 or Integer.MAX_VALUE( which is 2147483647), then the total number of records is not known.\n * Hence,\n * 1. Hide the 'Total Record Count'.\n * 2. Disable the 'GoToLastPage' link as the page number of the last page is not known.*/\n if (dataSize === -1 || dataSize === AppConstants.INT_MAX_VALUE) {\n this.prevshowrecordcount = this.showrecordcount;\n this.isDisableLast = true;\n this.isDisableCount = true;\n this.showrecordcount = false;\n // If number of records in current page is less than the max records size, this is the last page. So disable next button.\n if (numberOfElements < size) {\n this.isDisableNext = true;\n }\n } else {\n this.isDisableCount = false;\n this.showrecordcount = this.prevshowrecordcount || this.showrecordcount;\n }\n }\n\n /*Function to disable navigation based on the current and total pages.*/\n disableNavigation() {\n const isCurrentPageFirst = (this.dn.currentPage === 1),\n isCurrentPageLast = (this.dn.currentPage === this.pageCount);\n if (!this.pagination?.next) {\n this.isDisableFirst = this.isDisablePrevious = isCurrentPageFirst;\n this.isDisableNext = this.isDisableLast = isCurrentPageLast;\n } else {\n // WMS-18867: In case of server side pagination, for pager type pagination depend on prev and next flags which are set by developer\n this.isDisableFirst = this.isDisablePrevious = !this.pagination.prev;\n this.isDisableNext = this.isDisableLast = !this.pagination.next;\n }\n this.isDisableCurrent = isCurrentPageFirst && isCurrentPageLast;\n // In case of client side pagination, when load more reaches last page hide the on-demand grid ele\n if (this.dataset && this.dataset.length && this.isDisableNext && this.parent.onDemandLoad && this.parent.widgetType === 'wm-table') {\n this.parent.callDataGridMethod('hideLoadingIndicator', this.isDisableNext, this.parent.infScroll);\n }\n }\n\n /*Function to check if the variable bound to the data-navigator has paging.*/\n isDataSourceHasPaging() {\n return this.datasource && this.datasource.execute(DataSource.Operation.IS_PAGEABLE);\n }\n\n // Set the result for client side pagination\n setNonPageableData(newVal) {\n let dataSize,\n maxResults,\n currentPage,\n startIndex;\n dataSize = isArray(newVal) ? newVal.length : (isEmpty(newVal) ? 0 : 1);\n maxResults = (this.options && this.options.maxResults) || dataSize;\n\n // For static variable, keep the current page. For other variables without pagination reset the page to 1\n // Fix for [WMS-23263]: gridOptions.isNextPageData flag is false when dataset is changed from script, so setting current page to 1\n if (this.datasource && (this.datasource.execute(DataSource.Operation.IS_API_AWARE) || (this.parent.widgetType === 'wm-table' && (this.parent.gridOptions.isNavTypeScrollOrOndemand() && (get(this.parent, 'gridOptions.lastActionPerformed') === this.parent.gridOptions.ACTIONS.DATASET_UPDATE || !get(this.parent, 'gridOptions.isNextPageData')))))) {\n currentPage = 1;\n } else {\n currentPage = this.dn.currentPage || 1;\n }\n\n this.setDefaultPagingValues(dataSize, maxResults, currentPage);\n this.disableNavigation();\n\n startIndex = (this.dn.currentPage - 1) * this.maxResults;\n this.setResult(isArray(newVal) ? newVal.slice(startIndex, startIndex + this.maxResults) : newVal);\n }\n\n /*Function to set the values needed for pagination*/\n private setPagingValues(newVal) {\n let dataSize,\n maxResults,\n currentPage,\n dataSource;\n let variableOptions: any = {};\n // Store the data in __fullData. This is used for client side searching witvah out modifying the actual dataset.\n this.__fullData = newVal;\n /*Check for sanity*/\n if (this.binddataset) {\n dataSource = this.datasource || {};\n variableOptions = dataSource._options || {};\n /*Check for number of elements in the data set*/\n if (newVal) {\n if (this.isDataSourceHasPaging()) {\n this.pagination = this.datasource.execute(DataSource.Operation.GET_PAGING_OPTIONS) || {};\n // If \"filterFields\" and \"sortOptions\" have been set, then set them so that the filters can be retained while fetching data upon page navigation.\n this.filterFields = variableOptions.filterFields || {};\n this.logicalOp = variableOptions.logicalOp || '';\n this.sortOptions = variableOptions.orderBy ||\n (isArray(this.pagination.sort) ? getOrderByExpr(this.pagination.sort) : '');\n dataSize = this.pagination.totalElements;\n maxResults = this.pagination.size;\n if (this.pagination.numberOfElements > 0) {\n if (isDefined(this.pagination.number)) { // number is page number received from backend\n this.dn.currentPage = this.pagination.number + 1;\n }\n currentPage = this.dn.currentPage || 1;\n } else {\n currentPage = 1;\n }\n /* Sending pageCount undefined to calculate it again for query.*/\n this.setDefaultPagingValues(dataSize, maxResults, currentPage);\n this.disableNavigation();\n this.checkDataSize(dataSize, this.pagination.numberOfElements, this.pagination.size);\n this.setResult(newVal);\n } else if (!isString(newVal)) {\n this.setNonPageableData(newVal);\n }\n } else {\n this.setResult(newVal);\n this.resetPageNavigation();\n }\n if (this.navigation === 'Basic') {\n this._setAriaForBasicNavigation();\n }\n } else {\n if (newVal && !isString(newVal)) {\n this.setNonPageableData(newVal);\n }\n }\n }\n\n /*Function to check if the current page is the first page*/\n isFirstPage() {\n return (this.dn.currentPage === 1 || !this.dn.currentPage);\n }\n\n /*Function to check if the current page is the last page*/\n isLastPage() {\n return (this.dn.currentPage === this.pageCount);\n }\n\n /*Function to navigate to the last page*/\n goToLastPage(isRefresh, event, callback) {\n if (!this.isLastPage()) {\n this.dn.currentPage = this.pageCount;\n this.goToPage(event, callback);\n } else if (isRefresh) {\n this.goToPage(event, callback);\n }\n }\n\n /*Function to navigate to the first page*/\n goToFirstPage(isRefresh, event, callback) {\n if (!this.isFirstPage()) {\n this.dn.currentPage = 1;\n this.goToPage(event, callback);\n } else if (isRefresh) {\n this.goToPage(event, callback);\n }\n }\n\n /*Function to navigate to the current page*/\n goToPage(event?, callback?) {\n this.firstRow = (this.dn.currentPage - 1) * this.maxResults;\n const mode = this.parent.statePersistence.computeMode(this.statehandler);\n if (mode && mode.toLowerCase() !== 'none' && (this.parent.widgetType === 'wm-table' || this.parent.widgetType === 'wm-list')) {\n this.parent._selectedItemsExist = true;\n if (this.isFirstPage()) {\n this.parent.statePersistence.removeWidgetState(this.parent, 'pagination');\n } else {\n if (unsupportedStatePersistenceTypes.indexOf(this.parent.navigation) < 0) {\n this.parent.statePersistence.setWidgetState(this.parent, {pagination: this.dn.currentPage});\n } else if (this.parent.widgetType === 'wm-list' ||this.parent.widgetType === 'wm-table' ) {\n console.warn('Retain State handling on Widget ' + this.parent.name + ' is not supported for current pagination type.');\n }\n }\n this.parent.currentpage = this.dn.currentPage;\n this.parent.nativeElement?.setAttribute('currentpage', this.dn.currentPage);\n }\n // call getPageData after checking state config so that Static Variables can use it\n this.getPageData(event, callback);\n }\n\n /*Function to be invoked after the data of the page has been fetched.*/\n onPageDataReady(event, data, callback) {\n this.disableNavigation();\n this.invokeSetRecord(event, data);\n triggerFn(callback);\n }\n\n /*Function to get data for the current page*/\n getPageData(event, callback) {\n let data,\n startIndex;\n\n if (this.isDataSourceHasPaging()) {\n /**\n * In table component, in case of on demand and scroll pagination\n * When there is a change in data item which is not in current page\n * Fetch the items of the page where the change is made\n * */\n let pageIndex = this.dn.currentPage;\n if (this.isEditNotInCurrentPage() && this.parent.gridOptions.lastActionPerformed !== 'delete') {\n pageIndex = this.parent.actionRowPage;\n }\n this.datasource.execute(DataSource.Operation.LIST_RECORDS, {\n 'page': pageIndex,\n 'filterFields': this.filterFields,\n 'orderBy': this.sortOptions,\n 'logicalOp': this.logicalOp,\n 'matchMode': 'anywhereignorecase'\n }).then(response => {\n this.onPageDataReady(event, response && response.data, callback);\n $appDigest();\n }, error => {\n // If error is undefined, do not show any message as this may be discarded request\n if (error) {\n // TODO: Handle Error\n // wmToaster.show('error', 'ERROR', 'Unable to get data of page -' + this.dn.currentPage + ':' + error);\n }\n });\n } else {\n if (this.isEditNotInCurrentPage()) {\n startIndex = (this.parent.actionRowPage - 1) * this.maxResults;\n } else {\n startIndex = (this.dn.currentPage - 1) * this.maxResults;\n }\n data = isArray(this.__fullData) ? this.__fullData.slice(startIndex, startIndex + this.maxResults) : this.__fullData;\n this.setResult(data);\n this.onPageDataReady(event, data, callback);\n }\n }\n\n /*\n Function to check if the edit action is performed on the previous page data of the table\n */\n isEditNotInCurrentPage() {\n const pageIndex = this.dn.currentPage;\n return this.parent.widgetType === 'wm-table' && pageIndex === this.parent.currentPage &&\n this.parent.actionRowPage && this.parent.actionRowPage < pageIndex;\n }\n\n invokeSetRecord(event, data) {\n // Trigger the event handler if exists.\n const pageInfo = {\n currentPage: this.dn.currentPage,\n size: this.maxResults,\n totalElements: this.dataSize,\n totalPages: this.pageCount\n };\n if (this.parent) {\n this.parent.invokeEventCallback('setrecord', {$event: event, $data: data, $index: this.dn.currentPage, pageInfo, data});\n } else {\n this.invokeEventCallback('setrecord', {$event: event, $data: data, $index: this.dn.currentPage, pageInfo, data});\n }\n }\n\n /*Function to validate the page input.\n In case of invalid input, navigate to the appropriate page; also return false.\n In case of valid input, return true.*/\n validateCurrentPage(event, callback?) {\n /*If the value entered is greater than the last page number or invalid value, then highlighting the field showing error.*/\n if (event && (isNaN(this.dn.currentPage) || this.dn.currentPage <= 0 || (this.pageCount && (this.dn.currentPage > this.pageCount || isNull(this.dn.currentPage))))) {\n if (this.dn.currentPage <= 0) {\n this.dn.currentPage = 1;\n } else if (this.dn.currentPage > this.pageCount) {\n this.dn.currentPage = this.pageCount;\n }\n return false;\n }\n return true;\n }\n\n onModelChange(event) {\n if (!this.validateCurrentPage(event)) {\n return;\n }\n this.goToPage(event);\n }\n\n onKeyDown(event) {\n const targetEle = $(event.target).closest('a');\n if (event.code === 'KeyE') {\n targetEle.addClass('ng-invalid');\n return false;\n }\n targetEle.removeClass('ng-invalid');\n return true;\n }\n\n pageChanged(event: any) {\n this._debouncedPageChanged(event);\n }\n\n /*Function to navigate to the respective pages.*/\n navigatePage(index, event, isRefresh, callback) {\n // when navigated to next page turn on the isDataLoading flag to show the loading indicator\n if (isDefined(this.parent.isDataLoading) && !this.isDisableNext) {\n this.parent.isDataLoading = true;\n // In case of infinite scroll calling the showLoadingIndicator method to update the loading message immediately when navigated to next page\n if (this.parent.infScroll) {\n this.parent.variableInflight = true;\n this.parent.callDataGridMethod('showLoadingIndicator', this.parent.loadingdatamsg, true);\n }\n }\n // reset the last action performed to \"scroll\" and isDatasetUpdated to false\n if (this.parent.widgetType === 'wm-table' && this.parent.gridOptions.isNavTypeScrollOrOndemand()) {\n this.parent.gridOptions.setLastActionPerformed(this.parent.gridOptions.ACTIONS.DEFAULT);\n this.parent.gridOptions.setIsDatasetUpdated(false);\n }\n this.invokeEventCallback('paginationchange', {$event: undefined, $index: this.dn.currentPage});\n\n // Convert the current page to a valid page number.\n this.dn.currentPage = +this.dn.currentPage;\n\n switch (index) {\n case 'first':\n this.goToFirstPage(isRefresh, event, callback);\n return;\n case 'prev':\n /*Return if already on the first page.*/\n if (!this.pagination?.next && (this.isFirstPage() || !this.validateCurrentPage(event, callback))) {\n return;\n } else if (this.pagination?.next) { // WMS-18867: For server side pagination, skipping the regular flow and enabling isNext flag in pagination metadata\n this.datasource.pagination.isNext = false;\n this.datasource.pagination.isPrev = true;\n }\n /*Decrement the current page by 1.*/\n this.dn.currentPage -= 1;\n break;\n case 'next':\n /*Return if already on the last page.*/\n if (!this.pagination?.next && (this.isLastPage() || !this.validateCurrentPage(event, callback))) {\n return;\n } else if (this.pagination?.next) { // WMS-18867: For server side pagination, skipping the regular flow and enabling isPrev flag in pagination metadata\n this.datasource.pagination.isNext = true;\n this.datasource.pagination.isPrev = false;\n }\n /*Increment the current page by 1.*/\n this.dn.currentPage += 1;\n break;\n case 'last':\n this.goToLastPage(isRefresh, event, callback);\n return;\n default:\n break;\n }\n\n /*Navigate to the current page.*/\n this.goToPage(event, callback);\n }\n\n setBindDataSet(binddataset, parent, dataSource, dataset?, binddatasource?, datasetBoundExpr?, statehandler?) {\n const parts = binddataset.split('.');\n let bindPagingOptions;\n this.statehandler = statehandler;\n if (parts[0] === 'Variables' || parts[0] === 'Widgets') {\n bindPagingOptions = `${parts[0]}.${parts[1]}.pagination`;\n }\n if (!binddatasource && dataset && !datasetBoundExpr) {\n this.dataset = dataset;\n this._debouncedApplyDataset();\n return;\n }\n this.binddataset = binddataset;\n setTimeout(() => {\n // watching for dataset changes even when dataset is bound to \"item.\" (i.e. by checking for datasetBoundExpr)\n // item context is passed as dataSource here\n // [Todo-CSP]: check if same expr fn is generated by parent widget (list, table)\n this.registerDestroyListener(\n $watch(\n binddataset,\n parent,\n datasetBoundExpr ? dataSource : {},\n nv => {\n if (nv) {\n this.dataset = nv;\n this._debouncedApplyDataset();\n } else {\n // WMS-19285: Setting dataset on proxy only to handle propertychange handler call for undefined cases\n this.widget.dataset = nv;\n }\n }\n )\n );\n\n // Register a watch on paging options. Call dataset property change handler even if paging options changes to reflect pagination state\n if (!bindPagingOptions) {\n return;\n }\n //[Todo-CSP]: either generate watch expr fn or register an event from the datasource itself\n this.registerDestroyListener(\n $watch(\n bindPagingOptions,\n parent,\n {},\n () => this._debouncedApplyDataset()\n )\n );\n });\n // apply datasource only when dataset is not bound to \"item.FIELD\"\n if (!datasetBoundExpr) {\n this.datasource = dataSource;\n }\n }\n\n // Set the datasource of pagination from the parent widget\n setDataSource(dataSource) {\n this.datasource = dataSource;\n }\n\n onPropertyChange(key: string, nv, ov) {\n if (key === 'dataset') {\n let data;\n if (this.parent && this.parent.onDataNavigatorDataSetChange) {\n data = this.parent.onDataNavigatorDataSetChange(nv);\n } else {\n data = nv;\n }\n // Set last action performed to \"dataset_update\" whenever dataset is changed in table component\n if (this.parent.widgetType === 'wm-table') {\n this.parent._triggeredByUser = false;\n }\n // When the dataset is not in current page, but in previous ones directly set the result without setting page values\n if (this.isEditNotInCurrentPage()) {\n this.setResult(data);\n } else {\n this.setPagingValues(data);\n }\n } else if (key === 'navigation') {\n if (nv === 'Advanced') { // Support for older projects where navigation type was advanced instead of clasic\n this.navigation = 'Classic';\n }\n this.updateNavSize();\n this.navcontrols = nv;\n } else if (key === 'navigationsize') {\n this.updateNavSize();\n } else if (key === 'navigationalign') {\n switchClass(this.nativeElement, `text-${nv}`, `text-${ov}`);\n } else if (key === 'maxResults') {\n this.setPagingValues(this.dataset);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n const paginationElem = this.nativeElement as HTMLElement;\n paginationElem.onclick = (event) => {\n event.stopPropagation();\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PaginationModule as ngxPaginationModule } from 'ngx-bootstrap/pagination';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { PaginationComponent } from './pagination.component';\n\nconst components = [\n PaginationComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ngxPaginationModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class PaginationModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ngxPaginationModule"],"mappings":";;;;;;;;;;;;AAEO,MAAM,aAAa,GAAG,MAAK;AAC9B,IAAA,QAAQ,CACJ,eAAe,EACf,IAAI,GAAG,CACH;QACI,CAAC,eAAe,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,EAAC,CAAC;QAClD,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACrB,CAAC,gBAAgB,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QAClD,CAAC,eAAe,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACjD,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,SAAS,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;QACvC,CAAC,MAAM,EAAE,WAAW,CAAC;QACrB,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,WAAW,EAAC,CAAC;QAChD,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAAC,CAAC;QACpD,CAAC,gBAAgB,EAAE,WAAW,CAAC;QAC/B,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,EAAC,CAAC;QACxC,CAAC,iBAAiB,EAAE,YAAY,CAAC;QACjC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,GAAG,WAAW,EAAC,CAAC;AAC3C,KAAA,CACJ,CACJ,CAAC;AACN,CAAC;;;;;;ACsBO,IADJ,8BAAwD,CACa,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAA+C,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AACpH,IADoH,iBAAI,EACnH,CAAA;;;IADgE,EAA+C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/C,EAA+C,CAAA,kBAAA,CAAA,EAAA,EAAA,MAAA,CAAA,SAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA;;;;IA7CxH,EAAsF,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CACtC,CAGG,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAAxC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,CAAa,OAAO,EAAA,MAAA,CAAS,CAAC,CAAA,EAAA,CAAA,CAAA;IACtC,EAAyB,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAgC,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IAChE,EAAsB,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAyD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,EACtF,EACH,CAAA;AAED,IADJ,6BAA+C,CAGA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAvC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,CAAa,MAAM,EAAA,MAAA,CAAS,CAAC,CAAA,EAAA,CAAA,CAAA;IACtC,EAAyB,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAkC,CAAA,SAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IAClE,EAAsB,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAA8D,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,EAC3F,EACH,CAAA;IACL,EAA+B,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CACG,CAIiE,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;IAHpF,EAA4B,CAAA,gBAAA,CAAA,eAAA,EAAA,SAAA,iEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,EAAA,CAAA,WAAA,EAAA,MAAA,CAAA,KAAA,MAAA,CAAA,EAAA,CAAA,WAAA,GAAA,MAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAGC,IAA9B,EAAW,CAAA,UAAA,CAAA,SAAA,EAAA,SAAA,2DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,SAAA,CAAA,MAAA,CAAiB,CAAC,CAAA,EAAA,CAAA,CAAA,QAAA,EAAA,SAAA,0DAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAW,4BAAqB,CAAC,CAAA,EAAA,CAAA,CAAA;IAHpE,EAG2F,CAAA,YAAA,EAAA,EAC3F,EACH,CAAA;AAED,IADJ,+BAAqB,CACY,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAC,EAAe,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;AACjD,IADiD,iBAAI,EAChD,CAAA;AAED,IADJ,8BAA2C,CAGG,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAvC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,CAAa,MAAM,EAAA,MAAA,CAAS,CAAC,CAAA,EAAA,CAAA,CAAA;IACrC,EAAyB,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAmC,CAAA,SAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IACnE,EAAsB,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAuD,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,EACpF,EACH,CAAA;AAED,IADJ,8BAA2C,CAGG,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAvC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,CAAa,MAAM,EAAA,MAAA,CAAS,CAAC,CAAA,EAAA,CAAA,CAAA;IACrC,EAAyB,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAA+B,CAAA,SAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IAC/D,EAAsB,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAuD,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,EACpF,EACH,CAAA;IACL,EAAwD,CAAA,UAAA,CAAA,EAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAG5D,EAAK,CAAA,YAAA,EAAA,CAAA;;;IA/CD,EAA+C,CAAA,sBAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,eAAA,EAAA,EAAA,CAAA,CAAA;IAC3C,EAAuC,CAAA,SAAA,EAAA,CAAA;IAAvC,EAAuC,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA,CAAA;IACpC,EAA+B,CAAA,SAAA,EAAA,CAAA;IAA/B,EAA+B,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,CAAA,WAAA,CAAA,CAAA;;IAIR,EAAyD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzD,EAAyD,CAAA,kBAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,cAAA,GAAA,aAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAA;IAGnF,EAA0C,CAAA,SAAA,EAAA,CAAA;IAA1C,EAA0C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,CAAA,CAAA;IACvC,EAAkC,CAAA,SAAA,EAAA,CAAA;IAAlC,EAAkC,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,CAAA,cAAA,CAAA,CAAA;;IAIX,EAA8D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA9D,EAA8D,CAAA,kBAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,iBAAA,GAAA,YAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAA;IAK7E,EAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA5B,EAA4B,CAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA;AAC5B,IADuG,kDAA6B,CAC/F,gBAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA,CAAA;;IAM7C,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzB,EAAyB,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA;IAAE,EAAe,CAAA,SAAA,EAAA,CAAA;IAAf,EAAe,CAAA,kBAAA,CAAA,KAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;IAE7C,EAAsC,CAAA,SAAA,EAAA,CAAA;IAAtC,EAAsC,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAA,CAAA;IACnC,EAA8B,CAAA,SAAA,EAAA,CAAA;IAA9B,EAA8B,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,CAAA,UAAA,CAAA,CAAA;;IAIP,EAAuD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvD,EAAuD,CAAA,kBAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,aAAA,GAAA,aAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAA;IAGjF,EAAsC,CAAA,SAAA,EAAA,CAAA;IAAtC,EAAsC,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAA,CAAA;IACnC,EAA8B,CAAA,SAAA,EAAA,CAAA;IAA9B,EAA8B,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,CAAA,UAAA,CAAA,CAAA;;IAIP,EAAuD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvD,EAAuD,CAAA,kBAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,aAAA,GAAA,aAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAA;IAGhF,EAAqB,CAAA,SAAA,EAAA,CAAA;IAArB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,eAAA,CAAA,CAAA;;;;IAI9B,EAAsE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CACF,CAEhB,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IADd,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,CAAa,MAAM,EAAA,MAAA,CAAS,CAAC,CAAA,EAAA,CAAA,CAAA;IAEhE,EAAyB,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAkC,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IAClE,EACA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAsB,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAA2C,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,EACxE,EACH,CAAA;AAED,IADJ,8BAAwD,CAEZ,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IADV,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,oDAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,YAAA,CAAa,MAAM,EAAA,MAAA,CAAS,CAAC,CAAA,EAAA,CAAA,CAAA;IAEhE,EAAyB,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;IAAA,EAAmC,CAAA,SAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IACnE,EACA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;IAAA,EAAsB,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAuC,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;AAGzE,IAHyE,EAAO,CAAA,YAAA,EAAA,EACpE,EACH,EACJ,CAAA;;;IAjBD,EAAiC,CAAA,sBAAA,CAAA,QAAA,EAAA,MAAA,CAAA,eAAA,EAAA,EAAA,CAAA,CAAA;IACZ,EAA0C,CAAA,SAAA,EAAA,CAAA;IAA1C,EAA0C,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,CAAA,CAAA;IAExD,EAAwC,CAAA,SAAA,EAAA,CAAA;;IAEvC,EACA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADA,EACA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,SAAA,CAAA,cAAA,EAAA,GAAA,CAAA,CAAA;IAAsB,EAA2C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3C,EAA2C,CAAA,iBAAA,CAAA,MAAA,CAAA,iBAAA,GAAA,aAAA,GAAA,EAAA,CAAA,CAAA;IAGxD,EAAsC,CAAA,SAAA,EAAA,CAAA;IAAtC,EAAsC,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,GAAA,EAAA,MAAA,CAAA,aAAA,CAAA,CAAA,CAAA;IAEhD,EAAoC,CAAA,SAAA,EAAA,CAAA;;IAEnC,EACA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADA,EACA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,SAAA,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;IAAsB,EAAuC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAvC,EAAuC,CAAA,iBAAA,CAAA,MAAA,CAAA,aAAA,GAAA,aAAA,GAAA,EAAA,CAAA,CAAA;;;;IAKzE,EASgD,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA;AAPpC,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,2EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAe,0BAAmB,CAAC,CAAA,EAAA,CAAA,CAAA;IAOC,EAAa,CAAA,YAAA,EAAA,CAAA;;;;;;AAAjD,IATyB,gDAA2B,CACzB,cAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA,YAAA,EAAA,MAAA,CAAA,QAAA,CAAwB,+CACqB,CAA2B,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,eAAA,EAAA,MAAA,CAAA,aAAA,CAEpE,2BAAoB,CAClB,gBAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA,wBAAA,EAAA,eAAA,CAEM,uCACJ,CACA,oBAAA,EAAA,eAAA,CAAA,CAAA;;;;IAE/C,EAA0E,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAC3B,CAC0B,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAA+C,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAI,CAAA,YAAA,EAAA,EACnH,EACJ,CAAA;;;IAFoE,EAA+C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/C,EAA+C,CAAA,kBAAA,CAAA,EAAA,EAAA,MAAA,CAAA,SAAA,CAAA,mBAAA,EAAA,IAAA,EAAA,MAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA;;;IAOpH,EAA0C,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAC,EAAwD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;;IAA/D,EAAwD,CAAA,SAAA,EAAA,CAAA;IAAxD,EAAwD,CAAA,kBAAA,CAAA,GAAA,EAAA,iBAAA,GAAA,OAAA,CAAA,MAAA,GAAA,MAAA,GAAA,MAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;;;IAFnG,EAA6D,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAW,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IAC/E,EACA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAA0C,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;;IAFmB,EAAW,CAAA,SAAA,EAAA,CAAA;IAAX,EAAW,CAAA,iBAAA,CAAA,OAAA,CAAA,CAAA;IACxE,EACA,CAAA,SAAA,EAAA,CAAA;IADA,EACA,CAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;IAAuB,EAAiB,CAAA,SAAA,EAAA,CAAA;IAAjB,EAAiB,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,MAAA,CAAA,CAAA;;;IAGxC,EAAwD,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAoD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;;IAA3D,EAAoD,CAAA,SAAA,EAAA,CAAA;IAApD,EAAoD,CAAA,kBAAA,CAAA,sBAAA,EAAA,WAAA,GAAA,YAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;;IAG5G,EAAwD,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;IAAA,EAAgD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;;;;IAAvD,EAAgD,CAAA,SAAA,EAAA,CAAA;IAAhD,EAAgD,CAAA,kBAAA,CAAA,kBAAA,EAAA,YAAA,GAAA,YAAA,GAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AC9E5G,MAAM,WAAW,GAAG,4BAA4B,CAAC;AACjD,MAAM,aAAa,GAAG,EAAC,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;AAE5E,MAAM,WAAW,GAAG;AAChB,IAAA,OAAO,EAAE;AACL,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,UAAU;AACtB,KAAA;AACD,IAAA,OAAO,EAAE;AACL,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,eAAe;AAC3B,KAAA;AACD,IAAA,SAAS,EAAE;AACP,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,OAAO,EAAE,eAAe;AAC3B,KAAA;CACJ,CAAC;AAQI,MAAO,mBAAoB,SAAQ,iBAAiB,CAAA;AAC/C,IAAA,SAAA,IAAA,CAAA,eAAe,GAAG,aAAa,EAAhB,CAAmB,EAAA;IAwDjC,0BAA0B,GAAA;AAC9B,QAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAI;AAC3D,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,SAAS,EAAE,OAAO,CAAC,YAAY,KAAK,MAAM,EAAE;AAC5C,gBAAA,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;aAC7C;YACD,IAAG,SAAS,EAAE,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE;AACzC,gBAAA,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;aAC9C;iBAAM;AACH,gBAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;aACzC;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,WAAA,CAAY,GAAa,EAAwC,MAAM,EAA0C,eAAoB,EAAA;AACjI,QAAA,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QADkB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAA;AAtE7D,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,YAAY,EAAE,CAAC;AAcpE,QAAA,IAAA,CAAA,EAAE,GAAG;AACD,YAAA,WAAW,EAAE,CAAC;SACjB,CAAC;QAEF,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QACd,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QACrB,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;QACzB,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QACtB,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;QAiBb,IAAsB,CAAA,sBAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;AACrH,QAAA,IAAA,CAAA,qBAAqB,GAAG,QAAQ,CAAC,KAAK,IAAG;AAC7C,YAAA,MAAM,WAAW,GAAG,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC;;YAExC,IAAI,WAAW,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;AACrC,gBAAA,MAAM,IAAI,GAAI,IAAY,CAAC,MAAM,IAAI,IAAI,CAAC;AAC1C,gBAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,WAAW,CAAC;AAClC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAC,CAAC,CAAC;gBAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,gBAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;oBAC7B,IAAI,CAAC,0BAA0B,EAAE,CAAC;iBACrC;aACJ;AACL,SAAC,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;AAmBxC,QAAA,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;KACpC;AAED,IAAA,SAAS,CAAC,MAAM,EAAA;;AAEZ,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACxC;;IAGO,aAAa,GAAA;QACjB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,QAAA,IAAI,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE;YAChC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACvD;aAAM;AACH,YAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;SAC7B;KACJ;;IAGD,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;KACrB;;IAGD,qBAAqB,GAAA;QACjB,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAChI,QAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;KAClD;;AAGD,IAAA,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAA;;AAEpD,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,YAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC5B;AAAM,aAAA;YACH,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;AAChD,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/D,YAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;YACzD,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAChD;;AAGD,IAAA,aAAa,CAAC,QAAQ,EAAE,gBAAiB,EAAE,IAAK,EAAA;AAC5C;;;AAGyF;QACzF,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,YAAY,CAAC,aAAa,EAAE;AAC5D,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC;AAChD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;;AAE7B,YAAA,IAAI,gBAAgB,GAAG,IAAI,EAAE;AACzB,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;aAC7B;SACJ;aAAM;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,eAAe,CAAC;SAC3E;KACJ;;IAGD,iBAAiB,GAAA;QACb,MAAM,kBAAkB,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,CAAC,CAAC,EAClD,iBAAiB,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;AACjE,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,GAAG,kBAAkB,CAAC;YAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC;SAC/D;aAAM;;AAEH,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACrE,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;SACnE;AACD,QAAA,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,IAAI,iBAAiB,CAAC;;AAEhE,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;AAChI,YAAA,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACrG;KACJ;;IAGD,qBAAqB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;KACvF;;AAGD,IAAA,kBAAkB,CAAC,MAAM,EAAA;AACrB,QAAA,IAAI,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,CAAC;AACf,QAAA,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,QAAA,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC;;;AAInE,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,yBAAyB,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,iCAAiC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACpV,WAAW,GAAG,CAAC,CAAC;SACnB;aAAM;YACH,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;SAC1C;QAED,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAEzB,QAAA,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,CAAC;KACrG;;AAGO,IAAA,eAAe,CAAC,MAAM,EAAA;AAC1B,QAAA,IAAI,QAAQ,EACR,UAAU,EACV,WAAW,EACX,UAAU,CAAC;QACf,IAAI,eAAe,GAAQ,EAAE,CAAC;;AAE9B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;;AAEzB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AACnC,YAAA,eAAe,GAAG,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;;YAE5C,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;;oBAEzF,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,IAAI,EAAE,CAAC;oBACvD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,IAAI,EAAE,CAAC;AACjD,oBAAA,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO;yBACrC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAChF,oBAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;AACzC,oBAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;oBAClC,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,GAAG,CAAC,EAAE;wBACtC,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACnC,4BAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;yBACpD;wBACD,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;qBAC1C;yBAAM;wBACH,WAAW,GAAG,CAAC,CAAC;qBACnB;;oBAED,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;oBAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,oBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACrF,oBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;iBAC1B;AAAM,qBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC1B,oBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;iBACnC;aACJ;iBAAM;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;AACD,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,EAAE;gBAC7B,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACrC;SACJ;aAAM;YACH,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;aACnC;SACJ;KACJ;;IAGD,WAAW,GAAA;AACP,QAAA,QAAQ,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;KAC9D;;IAGD,UAAU,GAAA;QACN,QAAQ,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,IAAI,CAAC,SAAS,EAAE;KACnD;;AAGD,IAAA,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACpB,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;AACrC,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClC;aAAM,IAAI,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClC;KACJ;;AAGD,IAAA,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACrB,YAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClC;aAAM,IAAI,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAClC;KACJ;;IAGD,QAAQ,CAAC,KAAM,EAAE,QAAS,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;AAC5D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE;AAC1H,YAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACvC,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACpB,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;aAC7E;iBAAM;AACH,gBAAA,IAAI,gCAAgC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACtE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAC,CAAC,CAAC;iBAC/F;AAAM,qBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,EAAG;AACtF,oBAAA,OAAO,CAAC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,gDAAgD,CAAC,CAAC;iBAC1H;aACJ;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;AAC9C,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;SAC/E;;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACrC;;AAGD,IAAA,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAA;QACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACvB;;IAGD,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAA;QACvB,IAAI,IAAI,EACJ,UAAU,CAAC;AAEf,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC9B;;;;AAIK;AACL,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;AACpC,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,KAAK,QAAQ,EAAE;AAC3F,gBAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;aACzC;YACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE;AACvD,gBAAA,MAAM,EAAE,SAAS;gBACjB,cAAc,EAAE,IAAI,CAAC,YAAY;gBACjC,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,WAAW,EAAE,IAAI,CAAC,SAAS;AAC3B,gBAAA,WAAW,EAAE,oBAAoB;AACpC,aAAA,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAG;AACf,gBAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjE,gBAAA,UAAU,EAAE,CAAC;aAChB,EAAE,KAAK,IAAG;;gBAEP,IAAI,KAAK,EAAE;;;iBAGV;AACL,aAAC,CAAC,CAAC;SACN;aAAM;AACH,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;AAC/B,gBAAA,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;aAClE;iBAAM;AACH,gBAAA,UAAU,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;aAC5D;AACD,YAAA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AACpH,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC/C;KACJ;AAED;;AAEE;IACF,sBAAsB,GAAA;AAClB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;AACtC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW;AACjF,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,SAAS,CAAC;KAC1E;IAED,eAAe,CAAC,KAAK,EAAE,IAAI,EAAA;;AAEvB,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW;YAChC,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,aAAa,EAAE,IAAI,CAAC,QAAQ;YAC5B,UAAU,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;SAC3H;aAAM;YACH,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;SACpH;KACJ;AAED;;AAEuC;IACvC,mBAAmB,CAAC,KAAK,EAAE,QAAS,EAAA;;QAEhC,IAAI,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAChK,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;aAC3B;iBAAM,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE;gBAC7C,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;aACxC;AACD,YAAA,OAAO,KAAK,CAAC;SAChB;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,aAAa,CAAC,KAAK,EAAA;QACf,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO;SACV;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxB;AAED,IAAA,SAAS,CAAC,KAAK,EAAA;AACX,QAAA,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/C,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;AACvB,YAAA,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACjC,YAAA,OAAO,KAAK,CAAC;SAChB;AACD,QAAA,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACpC;;AAGD,IAAA,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAA;;AAE1C,QAAA,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC7D,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;;AAEjC,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;aAC5F;SACJ;;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,yBAAyB,EAAE,EAAE;AAC9F,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxF,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACtD;AACD,QAAA,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAC,CAAC,CAAC;;QAG/F,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC;QAE3C,QAAQ,KAAK;AACT,YAAA,KAAK,OAAO;gBACR,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC/C,OAAO;AACX,YAAA,KAAK,MAAM;;gBAEP,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE;oBAC9F,OAAO;iBACV;qBAAM,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;oBAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;oBAC1C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;iBAC5C;;AAED,gBAAA,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;gBACzB,MAAM;AACV,YAAA,KAAK,MAAM;;gBAEP,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE;oBAC7F,OAAO;iBACV;qBAAM,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;oBAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;oBACzC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;iBAC7C;;AAED,gBAAA,IAAI,CAAC,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC;gBACzB,MAAM;AACV,YAAA,KAAK,MAAM;gBACP,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC9C,OAAO;AACX,YAAA;gBACI,MAAM;SACb;;AAGD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAClC;AAED,IAAA,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAQ,EAAE,cAAe,EAAE,gBAAiB,EAAE,YAAa,EAAA;QACvG,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,iBAAiB,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACjC,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AACpD,YAAA,iBAAiB,GAAG,CAAA,EAAG,KAAK,CAAC,CAAC,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,CAAC,CAAC,CAAA,WAAA,CAAa,CAAC;SAC5D;QACD,IAAI,CAAC,cAAc,IAAI,OAAO,IAAI,CAAC,gBAAgB,EAAE;AACjD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,OAAO;SACV;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,UAAU,CAAC,MAAK;;;;YAIZ,IAAI,CAAC,uBAAuB,CACxB,MAAM,CACF,WAAW,EACX,MAAM,EACN,gBAAgB,GAAG,UAAU,GAAG,EAAE,EAClC,EAAE,IAAG;gBACD,IAAI,EAAE,EAAE;AACJ,oBAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;oBAClB,IAAI,CAAC,sBAAsB,EAAE,CAAC;iBACjC;qBAAM;;AAEH,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;iBAC5B;aACJ,CACJ,CACJ,CAAC;;YAGF,IAAI,CAAC,iBAAiB,EAAE;gBACpB,OAAO;aACV;;YAED,IAAI,CAAC,uBAAuB,CACxB,MAAM,CACF,iBAAiB,EACjB,MAAM,EACN,EAAE,EACF,MAAM,IAAI,CAAC,sBAAsB,EAAE,CACtC,CACJ,CAAC;AACN,SAAC,CAAC,CAAC;;QAEH,IAAI,CAAC,gBAAgB,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAChC;KACJ;;AAGD,IAAA,aAAa,CAAC,UAAU,EAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAChC;AAED,IAAA,gBAAgB,CAAC,GAAW,EAAE,EAAE,EAAE,EAAE,EAAA;AAChC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC;YACT,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE;gBACzD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;aACvD;iBAAM;gBACH,IAAI,GAAG,EAAE,CAAC;aACb;;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;AACvC,gBAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;aACxC;;AAED,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;AAC/B,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACxB;iBAAM;AACH,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aAC9B;SACJ;AAAM,aAAA,IAAI,GAAG,KAAK,YAAY,EAAE;AAC7B,YAAA,IAAI,EAAE,KAAK,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;aAC/B;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACzB;AAAM,aAAA,IAAI,GAAG,KAAK,gBAAgB,EAAE;YACjC,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;AAAM,aAAA,IAAI,GAAG,KAAK,iBAAiB,EAAE;AAClC,YAAA,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAE,EAAE,CAAA,KAAA,EAAQ,EAAE,CAAA,CAAE,CAAC,CAAC;SAC/D;AAAM,aAAA,IAAI,GAAG,KAAK,YAAY,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtC;aAAM;YACH,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvC;KACJ;IAED,eAAe,GAAA;AACX,QAAA,MAAM,cAAc,GAAI,IAAI,CAAC,aAA4B,CAAC;AAC1D,QAAA,cAAc,CAAC,OAAO,GAAG,CAAC,KAAK,KAAI;YAC/B,KAAK,CAAC,eAAe,EAAE,CAAC;AAC5B,SAAC,CAAC;KACL;oFAtjBQ,mBAAmB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAwEmB,SAAS,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAyB,kBAAkB,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAxE1F,IAAA,SAAA,IAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,mBAAmB,EAJjB,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,cAAA,EAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,kBAAA,CAAA;gBACP,kBAAkB,CAAC,mBAAmB,CAAC;AAC1C,aAAA,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,cAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,aAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,IAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,IAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,IAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,IAAA,EAAA,cAAA,CAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,MAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,aAAA,EAAA,SAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,4BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YDrCL,EAAsF,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAgDhB,CA4BtB,CAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAE0B,CAMtC,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAKe,CAGA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;YA5FE,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,KAAA,SAAA,CAAA,CAAA;YAgD7C,EAA6B,CAAA,SAAA,EAAA,CAAA;YAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,KAAA,OAAA,CAAA,CAAA;YAmBF,EAA6B,CAAA,SAAA,EAAA,CAAA;YAA7B,EAA6B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,KAAA,OAAA,CAAA,CAAA;YAW1F,EAAgD,CAAA,SAAA,EAAA,CAAA;YAAhD,EAAgD,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,WAAA,KAAA,OAAA,IAAA,GAAA,CAAA,eAAA,CAAA,CAAA;;;iFCvCxC,mBAAmB,EAAA,CAAA;cAP/B,SAAS;AACI,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAEf,SAAA,EAAA;AACP,oBAAA,kBAAkB,CAAqB,mBAAA,CAAA;AAC1C,iBAAA,EAAA,QAAA,EAAA,mxKAAA,EAAA,CAAA;;sBA0E2B,QAAQ;;sBAAI,MAAM;uBAAC,SAAS,CAAA;;sBAAkB,MAAM;uBAAC,kBAAkB,CAAA;;sBAAG,QAAQ;qBAtEpG,aAAa,EAAA,CAAA;kBAAtB,MAAM;YACG,iBAAiB,EAAA,CAAA;kBAA1B,MAAM;;kFAHE,mBAAmB,EAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AC9BhC,MAAM,UAAU,GAAG;IACf,mBAAmB;CACtB,CAAC;MAYW,gBAAgB,CAAA;iFAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA,EAAA;mEAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;uEARrB,YAAY;YACZ,WAAW;YACXA,kBAAmB;YACnB,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA;;iFAKb,gBAAgB,EAAA,CAAA;cAV5B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACN,gBAAA,OAAO,EAAE;oBACL,YAAY;oBACZ,WAAW;oBACXA,kBAAmB;oBACnB,kBAAkB;AACrB,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AAC7B,gBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,aAAA,CAAA;;wFACY,gBAAgB,EAAA,EAAA,YAAA,EAAA,CAbzB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAKf,YAAY;QACZ,WAAW;QACXA,kBAAmB;AACnB,QAAA,kBAAkB,aARtB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACXvB;;AAEG;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/pagination/src/pagination.props.ts","../../../../../projects/components/widgets/data/pagination/src/pagination.component.html","../../../../../projects/components/widgets/data/pagination/src/pagination.component.ts","../../../../../projects/components/widgets/data/pagination/src/pagination.module.ts","../../../../../projects/components/widgets/data/pagination/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-pagination',\n new Map(\n [\n ['boundarylinks', {value: false, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['directionlinks', {value: true, ...PROP_BOOLEAN}],\n ['forceellipses', {value: true, ...PROP_BOOLEAN}],\n ['maxResults', PROP_NUMBER],\n ['maxsize', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navigation', {value: 'Basic', ...PROP_STRING}],\n ['navigationalign', {value: 'left', ...PROP_STRING}],\n ['navigationsize', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showrecordcount', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n )\n );\n};\n","\n<ul class=\"pagination advanced {{navigationClass}}\" *ngIf=\"navcontrols === 'Classic'\">\n <li [ngClass]=\"{'disabled':isDisableFirst}\">\n <a [title]=\"appLocale.LABEL_FIRST\" name=\"first\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisableFirst\"\n (click)=\"navigatePage('first', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-first-page\"></i></span>\n <span class=\"sr-only\">Go to first page {{ isDisableFirst ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li [ngClass]=\"{'disabled':isDisablePrevious}\">\n <a [title]=\"appLocale.LABEL_PREVIOUS\" name=\"prev\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisablePrevious\"\n (click)=\"navigatePage('prev', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-left\"></i></span>\n <span class=\"sr-only\">Go to previous page {{ isDisablePrevious ? ', Disabled' : ''}}</span>\n </a>\n </li>\n <li class=\"pagecount disabled\">\n <a href=\"javascript:void(0);\" aria-label=\"Change Page Number\">\n <input [(ngModel)]=\"dn.currentPage\" [attr.aria-label]=\"'Showing Page ' + dn.currentPage + ' of ' + pageCount\" [disabled]=\"isDisableCurrent\"\n [ngModelOptions]=\"{standalone: true}\"\n type=\"number\"\n (keydown)=\"onKeyDown($event)\" (change)=\"onModelChange($event)\" class=\"form-control\"/>\n </a>\n </li>\n <li class=\"disabled\">\n <a [hidden]=\"isDisableCount\"> / {{pageCount}}</a>\n </li>\n <li [ngClass]=\"{'disabled':isDisableNext}\">\n <a [title]=\"appLocale.LABEL_NEXT\" name=\"next\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisableNext\"\n (click)=\"navigatePage('next', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-right\"></i></span>\n <span class=\"sr-only\">Go to next page {{ isDisableNext ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li [ngClass]=\"{'disabled':isDisableLast}\">\n <a [title]=\"appLocale.LABEL_LAST\" name=\"last\" href=\"javascript:void(0);\"\n [attr.aria-disabled]=\"isDisableLast\"\n (click)=\"navigatePage('last', $event)\">\n <span aria-hidden=\"true\"><i class=\"wi wi-last-page\"></i></span>\n <span class=\"sr-only\">Go to last page {{ isDisableLast ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li *ngIf=\"showrecordcount\" class=\"totalcount disabled\">\n <a href=\"javascript:void(0);\" tabindex=\"-1\" aria-disabled=\"true\">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n<ul class=\"pager {{navigationClass}}\" *ngIf=\"navcontrols === 'Pager'\">\n <li class=\"previous\" [ngClass]=\"{'disabled':isDisablePrevious}\">\n <a href=\"javascript:void(0);\" (click)=\"navigatePage('prev', $event)\"\n [attr.aria-disabled]=\"isDisablePrevious\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-left\"></i></span>\n {{appLocale.LABEL_PREVIOUS}}\n <span class=\"sr-only\">{{ isDisablePrevious ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n <li class=\"next\" [ngClass]=\"{'disabled':isDisableNext}\">\n <a href=\"javascript:void(0);\" (click)=\"navigatePage('next', $event)\"\n [attr.aria-disabled]=\"isDisableNext\">\n <span aria-hidden=\"true\"><i class=\"wi wi-chevron-right\"></i></span>\n {{appLocale.LABEL_NEXT}}\n <span class=\"sr-only\">{{ isDisableNext ? ' , Disabled' : ''}}</span>\n </a>\n </li>\n</ul>\n\n<pagination class=\"pagination basic\" [ngClass]=\"navigationClass\" *ngIf=\"navcontrols === 'Basic'\" role=\"navigation\"\n [itemsPerPage]=\"maxResults\" [totalItems]=\"dataSize\"\n (pageChanged)=\"pageChanged($event)\" [ngModelOptions]=\"{standalone:true}\" [ngModel]=\"dn.currentPage\"\n [attr.aria-label]=\"'Showing Page ' + dn.currentPage + ' of ' + pageCount + ' pages'\"\n [boundaryLinks]=\"boundarylinks\" [maxSize]=\"maxsize\"\n [directionLinks]=\"directionlinks\"\n firstText=\"Firtst\" lastText=\"Last\"\n [customPreviousTemplate]=\"prevTemplate\"\n [customNextTemplate]=\"nextTemplate\"\n [customPageTemplate]=\"pageTemplate\"></pagination>\n\n<ul *ngIf=\"navcontrols === 'Basic' && showrecordcount\" class=\"pagination\">\n <li class=\"totalcount disabled basiccount\">\n <a href=\"javascript:void(0);\" tabindex=\"-1\" aria-disabled=\"true\">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n</ul>\n\n<ng-template #pageTemplate let-page>\n <span class=\"sr-only\" [attr.data-isacitvepage]=\"page.active\">{{'Page '}}</span>\n {{page.number}}\n <span class=\"sr-only\" *ngIf=\"page.active\"> {{', Showing page ' + page.number + ' of ' + pageCount}}</span>\n</ng-template>\n<ng-template #prevTemplate let-disabled=\"disabled\">\n <span class=\"sr-only\" [attr.data-isdisabled]=\"disabled\">Go to Previous page {{disabled ? ', Disabled' : ''}}</span>\n</ng-template>\n<ng-template #nextTemplate let-disabled=\"disabled\">\n <span class=\"sr-only\" [attr.data-isdisabled]=\"disabled\">Go to Next page {{disabled ? ', Disabled' : ''}}</span>\n</ng-template>\n","import {Component, EventEmitter, Inject, Injector, Output, SkipSelf, AfterViewInit, Optional} from '@angular/core';\n\nimport {\n $appDigest,\n $watch,\n AppConstants,\n DataSource,\n debounce,\n isDefined,\n switchClass,\n triggerFn\n} from '@wm/core';\nimport { DEBOUNCE_TIMES, getOrderByExpr, provideAsWidgetRef, StylableComponent, styler, WidgetRef, unsupportedStatePersistenceTypes} from '@wm/components/base';\nimport { registerProps } from './pagination.props';\nimport {forEach, get, isArray, isEmpty, isNull, isString} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-datanavigator clearfix';\nconst WIDGET_CONFIG = {widgetType: 'wm-pagination', hostClass: DEFAULT_CLS};\n\nconst sizeClasses = {\n 'Pager': {\n 'small': 'pager-sm',\n 'large': 'pager-lg'\n },\n 'Basic': {\n 'small': 'pagination-sm',\n 'large': 'pagination-lg'\n },\n 'Classic': {\n 'small': 'pagination-sm',\n 'large': 'pagination-lg'\n }\n};\n@Component({\n selector: '[wmPagination]',\n templateUrl: './pagination.component.html',\n providers: [\n provideAsWidgetRef(PaginationComponent)\n ]\n})\nexport class PaginationComponent extends StylableComponent implements AfterViewInit {\n static initializeProps = registerProps();\n @Output() resultEmitter: EventEmitter<any> = new EventEmitter();\n @Output() maxResultsEmitter: EventEmitter<any> = new EventEmitter();\n\n datasource;\n maxResults;\n navigationsize;\n showrecordcount;\n\n navcontrols;\n navigation;\n\n boundarylinks;\n directionlinks;\n\n navigationClass;\n dn = {\n currentPage: 1\n };\n\n pageCount = 0;\n isDisableNext = true;\n isDisablePrevious = true;\n isDisableFirst = true;\n isDisableLast = true;\n isDisableCurrent;\n dataSize;\n prevshowrecordcount;\n isDisableCount;\n firstRow;\n result;\n __fullData;\n dataset;\n options;\n statehandler;\n filterFields;\n sortOptions;\n binddataset;\n pagination;\n logicalOp;\n\n private _debouncedApplyDataset = debounce(() => this.widget.dataset = this.dataset, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n private _debouncedPageChanged = debounce(event => {\n const currentPage = event && event.page;\n // Do not call goToPage if page has not changed\n if (currentPage !== this.dn.currentPage) {\n const inst = (this as any).parent || this;\n this.dn.currentPage = currentPage;\n inst.invokeEventCallback('paginationchange', {$event: undefined, $index: this.dn.currentPage});\n this.goToPage();\n if (this.navigation === 'Basic') {\n this._setAriaForBasicNavigation();\n }\n }\n }, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n\n private _setAriaForBasicNavigation() {\n forEach(this.nativeElement.getElementsByTagName('a'), (item) => {\n item.setAttribute('href', 'javascript:void(0);');\n const childNode = item.querySelector('span');\n if (childNode?.dataset.isacitvepage === \"true\") {\n item.setAttribute('aria-current', 'true');\n }\n if(childNode?.dataset.isdisabled === \"true\") {\n item.setAttribute('aria-disabled', 'true');\n } else {\n item.removeAttribute('aria-disabled');\n }\n });\n }\n\n constructor(inj: Injector, @SkipSelf() @Inject(WidgetRef) public parent, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n }\n\n setResult(result) {\n // TODO: Emit event only if result is changed\n this.result = result;\n this.resultEmitter.emit(this.result);\n }\n\n // Update navigationClass based on navigation and navigationSize props\n private updateNavSize() {\n const sizeCls = sizeClasses[this.navcontrols];\n if (sizeCls && this.navigationsize) {\n this.navigationClass = sizeCls[this.navigationsize];\n } else {\n this.navigationClass = '';\n }\n }\n\n // Function to reset the paging values to default.\n resetPageNavigation() {\n this.pageCount = 0;\n this.dn.currentPage = 1;\n this.dataSize = 0;\n }\n\n /*Function to calculate the paging values.*/\n calculatePagingValues() {\n this.pageCount = (this.dataSize > this.maxResults) ? (Math.ceil(this.dataSize / this.maxResults)) : (this.dataSize < 0 ? 0 : 1);\n this.dn.currentPage = this.dn.currentPage || 1;\n }\n\n /*Function to set default values to the paging parameters*/\n setDefaultPagingValues(dataSize, maxResults, currentPage) {\n /*If neither 'dataSize' nor 'maxResults' is set, then set default values to the paging parameters.*/\n if (!dataSize && !maxResults) {\n this.pageCount = 1;\n this.dn.currentPage = 1;\n this.maxResults = dataSize;\n this.dataSize = dataSize;\n } else { /*Else, set the specified values and recalculate paging parameters.*/\n this.maxResults = maxResults || this.maxResults;\n this.dataSize = isDefined(dataSize) ? dataSize : this.dataSize;\n this.dn.currentPage = currentPage || this.dn.currentPage;\n this.calculatePagingValues();\n }\n this.maxResultsEmitter.emit(this.maxResults);\n }\n\n /*Function to check the dataSize and manipulate the navigator accordingly.*/\n checkDataSize(dataSize, numberOfElements?, size?) {\n /*If the dataSize is -1 or Integer.MAX_VALUE( which is 2147483647), then the total number of records is not known.\n * Hence,\n * 1. Hide the 'Total Record Count'.\n * 2. Disable the 'GoToLastPage' link as the page number of the last page is not known.*/\n if (dataSize === -1 || dataSize === AppConstants.INT_MAX_VALUE) {\n this.prevshowrecordcount = this.showrecordcount;\n this.isDisableLast = true;\n this.isDisableCount = true;\n this.showrecordcount = false;\n // If number of records in current page is less than the max records size, this is the last page. So disable next button.\n if (numberOfElements < size) {\n this.isDisableNext = true;\n }\n } else {\n this.isDisableCount = false;\n this.showrecordcount = this.prevshowrecordcount || this.showrecordcount;\n }\n }\n\n /*Function to disable navigation based on the current and total pages.*/\n disableNavigation() {\n const isCurrentPageFirst = (this.dn.currentPage === 1),\n isCurrentPageLast = (this.dn.currentPage === this.pageCount);\n if (!this.pagination?.next) {\n this.isDisableFirst = this.isDisablePrevious = isCurrentPageFirst;\n this.isDisableNext = this.isDisableLast = isCurrentPageLast;\n } else {\n // WMS-18867: In case of server side pagination, for pager type pagination depend on prev and next flags which are set by developer\n this.isDisableFirst = this.isDisablePrevious = !this.pagination.prev;\n this.isDisableNext = this.isDisableLast = !this.pagination.next;\n }\n this.isDisableCurrent = isCurrentPageFirst && isCurrentPageLast;\n // In case of client side pagination, when load more reaches last page hide the on-demand grid ele\n if (this.dataset && this.dataset.length && this.isDisableNext && this.parent.onDemandLoad && this.parent.widgetType === 'wm-table') {\n this.parent.callDataGridMethod('hideLoadingIndicator', this.isDisableNext, this.parent.infScroll);\n }\n }\n\n /*Function to check if the variable bound to the data-navigator has paging.*/\n isDataSourceHasPaging() {\n return this.datasource && this.datasource.execute(DataSource.Operation.IS_PAGEABLE);\n }\n\n // Set the result for client side pagination\n setNonPageableData(newVal) {\n let dataSize,\n maxResults,\n currentPage,\n startIndex;\n dataSize = isArray(newVal) ? newVal.length : (isEmpty(newVal) ? 0 : 1);\n maxResults = (this.options && this.options.maxResults) || dataSize;\n\n // For static variable, keep the current page. For other variables without pagination reset the page to 1\n // Fix for [WMS-23263]: gridOptions.isNextPageData flag is false when dataset is changed from script, so setting current page to 1\n if (this.datasource && (this.datasource.execute(DataSource.Operation.IS_API_AWARE) || (this.parent.widgetType === 'wm-table' && (this.parent.gridOptions.isNavTypeScrollOrOndemand() && (get(this.parent, 'gridOptions.lastActionPerformed') === this.parent.gridOptions.ACTIONS.DATASET_UPDATE || !get(this.parent, 'gridOptions.isNextPageData')))))) {\n currentPage = 1;\n } else {\n currentPage = this.dn.currentPage || 1;\n }\n\n this.setDefaultPagingValues(dataSize, maxResults, currentPage);\n this.disableNavigation();\n\n startIndex = (this.dn.currentPage - 1) * this.maxResults;\n this.setResult(isArray(newVal) ? newVal.slice(startIndex, startIndex + this.maxResults) : newVal);\n }\n\n /*Function to set the values needed for pagination*/\n private setPagingValues(newVal) {\n let dataSize,\n maxResults,\n currentPage,\n dataSource;\n let variableOptions: any = {};\n // Store the data in __fullData. This is used for client side searching witvah out modifying the actual dataset.\n this.__fullData = newVal;\n /*Check for sanity*/\n if (this.binddataset) {\n dataSource = this.datasource || {};\n variableOptions = dataSource._options || {};\n /*Check for number of elements in the data set*/\n if (newVal) {\n if (this.isDataSourceHasPaging()) {\n this.pagination = this.datasource.execute(DataSource.Operation.GET_PAGING_OPTIONS) || {};\n // If \"filterFields\" and \"sortOptions\" have been set, then set them so that the filters can be retained while fetching data upon page navigation.\n this.filterFields = variableOptions.filterFields || {};\n this.logicalOp = variableOptions.logicalOp || '';\n this.sortOptions = variableOptions.orderBy ||\n (isArray(this.pagination.sort) ? getOrderByExpr(this.pagination.sort) : '');\n dataSize = this.pagination.totalElements;\n maxResults = this.pagination.size;\n if (this.pagination.numberOfElements > 0) {\n if (isDefined(this.pagination.number)) { // number is page number received from backend\n this.dn.currentPage = this.pagination.number + 1;\n }\n currentPage = this.dn.currentPage || 1;\n } else {\n currentPage = 1;\n }\n /* Sending pageCount undefined to calculate it again for query.*/\n this.setDefaultPagingValues(dataSize, maxResults, currentPage);\n this.disableNavigation();\n this.checkDataSize(dataSize, this.pagination.numberOfElements, this.pagination.size);\n this.setResult(newVal);\n } else if (!isString(newVal)) {\n this.setNonPageableData(newVal);\n }\n } else {\n this.setResult(newVal);\n this.resetPageNavigation();\n }\n if (this.navigation === 'Basic') {\n this._setAriaForBasicNavigation();\n }\n } else {\n if (newVal && !isString(newVal)) {\n this.setNonPageableData(newVal);\n }\n }\n }\n\n /*Function to check if the current page is the first page*/\n isFirstPage() {\n return (this.dn.currentPage === 1 || !this.dn.currentPage);\n }\n\n /*Function to check if the current page is the last page*/\n isLastPage() {\n return (this.dn.currentPage === this.pageCount);\n }\n\n /*Function to navigate to the last page*/\n goToLastPage(isRefresh, event, callback) {\n if (!this.isLastPage()) {\n this.dn.currentPage = this.pageCount;\n this.goToPage(event, callback);\n } else if (isRefresh) {\n this.goToPage(event, callback);\n }\n }\n\n /*Function to navigate to the first page*/\n goToFirstPage(isRefresh, event, callback) {\n if (!this.isFirstPage()) {\n this.dn.currentPage = 1;\n this.goToPage(event, callback);\n } else if (isRefresh) {\n this.goToPage(event, callback);\n }\n }\n\n /*Function to navigate to the current page*/\n goToPage(event?, callback?) {\n this.firstRow = (this.dn.currentPage - 1) * this.maxResults;\n const mode = this.parent.statePersistence.computeMode(this.statehandler);\n if (mode && mode.toLowerCase() !== 'none' && (this.parent.widgetType === 'wm-table' || this.parent.widgetType === 'wm-list')) {\n this.parent._selectedItemsExist = true;\n if (this.isFirstPage()) {\n this.parent.statePersistence.removeWidgetState(this.parent, 'pagination');\n } else {\n if (unsupportedStatePersistenceTypes.indexOf(this.parent.navigation) < 0) {\n this.parent.statePersistence.setWidgetState(this.parent, {pagination: this.dn.currentPage});\n } else if (this.parent.widgetType === 'wm-list' ||this.parent.widgetType === 'wm-table' ) {\n console.warn('Retain State handling on Widget ' + this.parent.name + ' is not supported for current pagination type.');\n }\n }\n this.parent.currentpage = this.dn.currentPage;\n this.parent.nativeElement?.setAttribute('currentpage', this.dn.currentPage);\n }\n // call getPageData after checking state config so that Static Variables can use it\n this.getPageData(event, callback);\n }\n\n /*Function to be invoked after the data of the page has been fetched.*/\n onPageDataReady(event, data, callback) {\n this.disableNavigation();\n this.invokeSetRecord(event, data);\n triggerFn(callback);\n }\n\n /*Function to get data for the current page*/\n getPageData(event, callback) {\n let data,\n startIndex;\n\n if (this.isDataSourceHasPaging()) {\n /**\n * In table component, in case of on demand and scroll pagination\n * When there is a change in data item which is not in current page\n * Fetch the items of the page where the change is made\n * */\n let pageIndex = this.dn.currentPage;\n if (this.isEditNotInCurrentPage() && this.parent.gridOptions.lastActionPerformed !== 'delete') {\n pageIndex = this.parent.actionRowPage;\n }\n this.datasource.execute(DataSource.Operation.LIST_RECORDS, {\n 'page': pageIndex,\n 'filterFields': this.filterFields,\n 'orderBy': this.sortOptions,\n 'logicalOp': this.logicalOp,\n 'matchMode': 'anywhereignorecase'\n }).then(response => {\n this.onPageDataReady(event, response && response.data, callback);\n $appDigest();\n }, error => {\n // If error is undefined, do not show any message as this may be discarded request\n if (error) {\n // TODO: Handle Error\n // wmToaster.show('error', 'ERROR', 'Unable to get data of page -' + this.dn.currentPage + ':' + error);\n }\n });\n } else {\n if (this.isEditNotInCurrentPage()) {\n startIndex = (this.parent.actionRowPage - 1) * this.maxResults;\n } else {\n startIndex = (this.dn.currentPage - 1) * this.maxResults;\n }\n data = isArray(this.__fullData) ? this.__fullData.slice(startIndex, startIndex + this.maxResults) : this.__fullData;\n this.setResult(data);\n this.onPageDataReady(event, data, callback);\n }\n }\n\n /*\n Function to check if the edit action is performed on the previous page data of the table\n */\n isEditNotInCurrentPage() {\n const pageIndex = this.dn.currentPage;\n return this.parent.widgetType === 'wm-table' && pageIndex === this.parent.currentPage &&\n this.parent.actionRowPage && this.parent.actionRowPage < pageIndex;\n }\n\n invokeSetRecord(event, data) {\n // Trigger the event handler if exists.\n const pageInfo = {\n currentPage: this.dn.currentPage,\n size: this.maxResults,\n totalElements: this.dataSize,\n totalPages: this.pageCount\n };\n if (this.parent) {\n this.parent.invokeEventCallback('setrecord', {$event: event, $data: data, $index: this.dn.currentPage, pageInfo, data});\n } else {\n this.invokeEventCallback('setrecord', {$event: event, $data: data, $index: this.dn.currentPage, pageInfo, data});\n }\n }\n\n /*Function to validate the page input.\n In case of invalid input, navigate to the appropriate page; also return false.\n In case of valid input, return true.*/\n validateCurrentPage(event, callback?) {\n /*If the value entered is greater than the last page number or invalid value, then highlighting the field showing error.*/\n if (event && (isNaN(this.dn.currentPage) || this.dn.currentPage <= 0 || (this.pageCount && (this.dn.currentPage > this.pageCount || isNull(this.dn.currentPage))))) {\n if (this.dn.currentPage <= 0) {\n this.dn.currentPage = 1;\n } else if (this.dn.currentPage > this.pageCount) {\n this.dn.currentPage = this.pageCount;\n }\n return false;\n }\n return true;\n }\n\n onModelChange(event) {\n if (!this.validateCurrentPage(event)) {\n return;\n }\n this.goToPage(event);\n }\n\n onKeyDown(event) {\n const targetEle = $(event.target).closest('a');\n if (event.code === 'KeyE') {\n targetEle.addClass('ng-invalid');\n return false;\n }\n targetEle.removeClass('ng-invalid');\n return true;\n }\n\n pageChanged(event: any) {\n this._debouncedPageChanged(event);\n }\n\n /*Function to navigate to the respective pages.*/\n navigatePage(index, event, isRefresh, callback) {\n // when navigated to next page turn on the isDataLoading flag to show the loading indicator\n if (isDefined(this.parent.isDataLoading) && !this.isDisableNext) {\n this.parent.isDataLoading = true;\n // In case of infinite scroll calling the showLoadingIndicator method to update the loading message immediately when navigated to next page\n if (this.parent.infScroll) {\n this.parent.variableInflight = true;\n this.parent.callDataGridMethod('showLoadingIndicator', this.parent.loadingdatamsg, true);\n }\n }\n // reset the last action performed to \"scroll\" and isDatasetUpdated to false\n if (this.parent.widgetType === 'wm-table' && this.parent.gridOptions.isNavTypeScrollOrOndemand()) {\n this.parent.gridOptions.setLastActionPerformed(this.parent.gridOptions.ACTIONS.DEFAULT);\n this.parent.gridOptions.setIsDatasetUpdated(false);\n }\n this.invokeEventCallback('paginationchange', {$event: undefined, $index: this.dn.currentPage});\n\n // Convert the current page to a valid page number.\n this.dn.currentPage = +this.dn.currentPage;\n\n switch (index) {\n case 'first':\n this.goToFirstPage(isRefresh, event, callback);\n return;\n case 'prev':\n /*Return if already on the first page.*/\n if (!this.pagination?.next && (this.isFirstPage() || !this.validateCurrentPage(event, callback))) {\n return;\n } else if (this.pagination?.next) { // WMS-18867: For server side pagination, skipping the regular flow and enabling isNext flag in pagination metadata\n this.datasource.pagination.isNext = false;\n this.datasource.pagination.isPrev = true;\n }\n /*Decrement the current page by 1.*/\n this.dn.currentPage -= 1;\n break;\n case 'next':\n /*Return if already on the last page.*/\n if (!this.pagination?.next && (this.isLastPage() || !this.validateCurrentPage(event, callback))) {\n return;\n } else if (this.pagination?.next) { // WMS-18867: For server side pagination, skipping the regular flow and enabling isPrev flag in pagination metadata\n this.datasource.pagination.isNext = true;\n this.datasource.pagination.isPrev = false;\n }\n /*Increment the current page by 1.*/\n this.dn.currentPage += 1;\n break;\n case 'last':\n this.goToLastPage(isRefresh, event, callback);\n return;\n default:\n break;\n }\n\n /*Navigate to the current page.*/\n this.goToPage(event, callback);\n }\n\n setBindDataSet(binddataset, parent, dataSource, dataset?, binddatasource?, datasetBoundExpr?, statehandler?) {\n const parts = binddataset.split('.');\n let bindPagingOptions;\n this.statehandler = statehandler;\n if (parts[0] === 'Variables' || parts[0] === 'Widgets') {\n bindPagingOptions = `${parts[0]}.${parts[1]}.pagination`;\n }\n if (!binddatasource && dataset && !datasetBoundExpr) {\n this.dataset = dataset;\n this._debouncedApplyDataset();\n return;\n }\n this.binddataset = binddataset;\n setTimeout(() => {\n // watching for dataset changes even when dataset is bound to \"item.\" (i.e. by checking for datasetBoundExpr)\n // item context is passed as dataSource here\n // [Todo-CSP]: check if same expr fn is generated by parent widget (list, table)\n this.registerDestroyListener(\n $watch(\n binddataset,\n parent,\n datasetBoundExpr ? dataSource : {},\n nv => {\n if (nv) {\n this.dataset = nv;\n this._debouncedApplyDataset();\n } else {\n // WMS-19285: Setting dataset on proxy only to handle propertychange handler call for undefined cases\n this.widget.dataset = nv;\n }\n }\n )\n );\n\n // Register a watch on paging options. Call dataset property change handler even if paging options changes to reflect pagination state\n if (!bindPagingOptions) {\n return;\n }\n //[Todo-CSP]: either generate watch expr fn or register an event from the datasource itself\n this.registerDestroyListener(\n $watch(\n bindPagingOptions,\n parent,\n {},\n () => this._debouncedApplyDataset()\n )\n );\n });\n // apply datasource only when dataset is not bound to \"item.FIELD\"\n if (!datasetBoundExpr) {\n this.datasource = dataSource;\n }\n }\n\n // Set the datasource of pagination from the parent widget\n setDataSource(dataSource) {\n this.datasource = dataSource;\n }\n\n onPropertyChange(key: string, nv, ov) {\n if (key === 'dataset') {\n let data;\n if (this.parent && this.parent.onDataNavigatorDataSetChange) {\n data = this.parent.onDataNavigatorDataSetChange(nv);\n } else {\n data = nv;\n }\n // Set last action performed to \"dataset_update\" whenever dataset is changed in table component\n if (this.parent.widgetType === 'wm-table') {\n this.parent._triggeredByUser = false;\n }\n // When the dataset is not in current page, but in previous ones directly set the result without setting page values\n if (this.isEditNotInCurrentPage()) {\n this.setResult(data);\n } else {\n this.setPagingValues(data);\n }\n } else if (key === 'navigation') {\n if (nv === 'Advanced') { // Support for older projects where navigation type was advanced instead of clasic\n this.navigation = 'Classic';\n }\n this.updateNavSize();\n this.navcontrols = nv;\n } else if (key === 'navigationsize') {\n this.updateNavSize();\n } else if (key === 'navigationalign') {\n switchClass(this.nativeElement, `text-${nv}`, `text-${ov}`);\n } else if (key === 'maxResults') {\n this.setPagingValues(this.dataset);\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n const paginationElem = this.nativeElement as HTMLElement;\n paginationElem.onclick = (event) => {\n event.stopPropagation();\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { PaginationModule as ngxPaginationModule } from 'ngx-bootstrap/pagination';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { PaginationComponent } from './pagination.component';\n\nconst components = [\n PaginationComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ngxPaginationModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class PaginationModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ngxPaginationModule"],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare abstract class BaseFormComponent extends StylableComponent implem
17
17
  updateBoundVariable(value: any): void;
18
18
  protected invokeOnChange(value: any, $event?: Event): void;
19
19
  protected updatePrevDatavalue(val: any): void;
20
+ protected getPrevDataValue(): any;
20
21
  ngAfterViewInit(): void;
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormComponent, [null, null, { optional: true; }, null]>;
22
23
  static ɵprov: i0.ɵɵInjectableDeclaration<BaseFormComponent>;
@@ -262,6 +262,9 @@
262
262
  updatePrevDatavalue(val) {
263
263
  this.prevDatavalue = val;
264
264
  }
265
+ getPrevDataValue() {
266
+ return this.prevDatavalue;
267
+ }
265
268
  ngAfterViewInit() {
266
269
  super.ngAfterViewInit();
267
270
  // [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget
@@ -1595,7 +1598,9 @@
1595
1598
  onInputChange(value) {
1596
1599
  const stepVal = this.stepLength();
1597
1600
  // WMS-22355, Trigger change cb if value exists or value is empty but datavalue exists (when value is selected and deleted).
1598
- if (i1$1.isDefined(value) && (value !== '' || this.datavalue)) {
1601
+ // Fix for [WMS-27041]: Ensure the change callback for the number widget triggers only on focus out (when updateon is set to blur),
1602
+ // not during initial input when the previous value is undefined and the current value is null.
1603
+ if ((i1$1.isDefined(value) && (value !== '' || this.datavalue)) && !(this.widgetType === 'wm-number' && this.getPrevDataValue() === undefined && this.datavalue == null)) {
1599
1604
  this.handleChange(value);
1600
1605
  }
1601
1606
  else {
@@ -1818,6 +1823,9 @@
1818
1823
  onBackspace($event) {
1819
1824
  this.isDefaultQuery = false;
1820
1825
  }
1826
+ onDelete($event) {
1827
+ this.isDefaultQuery = false;
1828
+ }
1821
1829
  onEnter($event) {
1822
1830
  this.datavalue = $event.target.value;
1823
1831
  }
@@ -1873,10 +1881,10 @@
1873
1881
  i2.provideAs(NumberComponent, i2$1.NG_VALUE_ACCESSOR, true),
1874
1882
  i2.provideAs(NumberComponent, i2$1.NG_VALIDATORS, true),
1875
1883
  i2.provideAsWidgetRef(NumberComponent)
1876
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$8, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-number-input", 3, "ngModelChange", "blur", "focus", "input", "keypress", "keydown.backspace", "keydown.enter", "keydown.ArrowUp", "keydown.ArrowDown", "ngModel", "readonly", "disabled", "pattern", "autofocus", "ngClass", "ngStyle", "ngModelOptions", "required"]], template: function NumberComponent_Template(rf, ctx) { if (rf & 1) {
1884
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c1$8, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-number-input", 3, "ngModelChange", "blur", "focus", "input", "keypress", "keydown.backspace", "keydown.delete", "keydown.enter", "keydown.ArrowUp", "keydown.ArrowDown", "ngModel", "readonly", "disabled", "pattern", "autofocus", "ngClass", "ngStyle", "ngModelOptions", "required"]], template: function NumberComponent_Template(rf, ctx) { if (rf & 1) {
1877
1885
  const _r1 = i0__namespace.ɵɵgetCurrentView();
1878
1886
  i0__namespace.ɵɵelementStart(0, "input", 1, 0);
1879
- i0__namespace.ɵɵlistener("ngModelChange", function NumberComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onModelChange($event)); })("blur", function NumberComponent_Template_input_blur_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); ctx.handleBlur($event); return i0__namespace.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("focus", function NumberComponent_Template_input_focus_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("input", function NumberComponent_Template_input_input_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onInputChange($event.target.value)); })("keypress", function NumberComponent_Template_input_keypress_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.validateInputEntry($event)); })("keydown.backspace", function NumberComponent_Template_input_keydown_backspace_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onBackspace($event)); })("keydown.enter", function NumberComponent_Template_input_keydown_enter_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onEnter($event)); })("keydown.ArrowUp", function NumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onArrowPress($event, "UP")); })("keydown.ArrowDown", function NumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onArrowPress($event, "DOWN")); });
1887
+ i0__namespace.ɵɵlistener("ngModelChange", function NumberComponent_Template_input_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onModelChange($event)); })("blur", function NumberComponent_Template_input_blur_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); ctx.handleBlur($event); return i0__namespace.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("focus", function NumberComponent_Template_input_focus_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("input", function NumberComponent_Template_input_input_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onInputChange($event.target.value)); })("keypress", function NumberComponent_Template_input_keypress_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.validateInputEntry($event)); })("keydown.backspace", function NumberComponent_Template_input_keydown_backspace_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onBackspace($event)); })("keydown.delete", function NumberComponent_Template_input_keydown_delete_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onDelete($event)); })("keydown.enter", function NumberComponent_Template_input_keydown_enter_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onEnter($event)); })("keydown.ArrowUp", function NumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onArrowPress($event, "UP")); })("keydown.ArrowDown", function NumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); return i0__namespace.ɵɵresetView(ctx.onArrowPress($event, "DOWN")); });
1880
1888
  i0__namespace.ɵɵelementEnd();
1881
1889
  } if (rf & 2) {
1882
1890
  i0__namespace.ɵɵproperty("ngModel", ctx.displayValue)("readonly", ctx.readonly)("disabled", ctx.disabled)("pattern", ctx.regexp)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("ngModelOptions", ctx.ngModelOptions)("required", ctx.required);
@@ -1889,7 +1897,7 @@
1889
1897
  i2.provideAs(NumberComponent, i2$1.NG_VALUE_ACCESSOR, true),
1890
1898
  i2.provideAs(NumberComponent, i2$1.NG_VALIDATORS, true),
1891
1899
  i2.provideAsWidgetRef(NumberComponent)
1892
- ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n" }]
1900
+ ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.delete)=\"onDelete($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n" }]
1893
1901
  }], () => [{ type: i0__namespace.Injector }, { type: i1$1__namespace.AbstractI18nService }, { type: i2__namespace.TrailingZeroDecimalPipe }, { type: undefined, decorators: [{
1894
1902
  type: i0.Inject,
1895
1903
  args: ['EXPLICIT_CONTEXT']
@@ -59,6 +59,9 @@ export class BaseFormComponent extends StylableComponent {
59
59
  updatePrevDatavalue(val) {
60
60
  this.prevDatavalue = val;
61
61
  }
62
+ getPrevDataValue() {
63
+ return this.prevDatavalue;
64
+ }
62
65
  ngAfterViewInit() {
63
66
  super.ngAfterViewInit();
64
67
  // [WMS-18892]- stopping event propagation [for ArrowLeft, ArrowUp, ArrowRight, ArrowDown actions] when form widgets or form is inside list widget
@@ -85,4 +88,4 @@ export class BaseFormComponent extends StylableComponent {
85
88
  }, {
86
89
  type: Optional
87
90
  }] }, { type: Promise }], null); })();
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFHbkMsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxpQkFBaUI7SUFPN0QsWUFDYyxHQUFhLEVBQ0QsTUFBcUIsRUFDSCxlQUFvQixFQUM1RCxXQUEwQjtRQUUxQixLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMdkMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQU12QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQVM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsS0FBSztRQUNyQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXZDLDhDQUE4QztRQUM5QyxJQUFJLElBQUksQ0FBQyxlQUFl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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEYXRhU291cmNlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IElXaWRnZXRDb25maWcsIFN0eWxhYmxlQ29tcG9uZW50LCBXaWRnZXRDb25maWcgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7aGFzLCBzZXR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xuXG4gICAgcHJpdmF0ZSBkYXRhdmFsO1xuICAgIHByaXZhdGUgcHJldkRhdGF2YWx1ZTtcbiAgICBwcm90ZWN0ZWQgYmluZGRhdGF2YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF0YXZhbHVlc291cmNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksXG4gICAgICAgIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5iaW5kZGF0YXZhbHVlID0gdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhdmFsdWUuYmluZCcpO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUoZGF0YXZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YXZhbCA9IGRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIHdpZGdldCdzIGRhdGF2YWx1ZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB1cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKSB7XG4gICAgICAgIGxldCBiaW5kZGF0YXZhbHVlID0gdGhpcy5iaW5kZGF0YXZhbHVlO1xuXG4gICAgICAgIC8vIHJldHVybiBpZiB0aGUgdmFyaWFibGUgYm91bmQgaXMgbm90IHN0YXRpYy5cbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmIHRoaXMuZGF0YXZhbHVlc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmICF0aGlzLmRhdGF2YWx1ZXNvdXJjZS50d29XYXlCaW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHdpZGdldCBpcyBib3VuZC5cbiAgICAgICAgaWYgKCFiaW5kZGF0YXZhbHVlIHx8IGJpbmRkYXRhdmFsdWUuc3RhcnRzV2l0aCgnV2lkZ2V0cy4nKSB8fCBiaW5kZGF0YXZhbHVlLnN0YXJ0c1dpdGgoJ2l0ZW1SZWYuY3VycmVudEl0ZW1XaWRnZXRzJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpbmRkYXRhdmFsdWUgPSBiaW5kZGF0YXZhbHVlLnJlcGxhY2UoL1xcW1xcJGlcXF0vZywgJ1swXScpO1xuXG4gICAgICAgIC8vIEluIGNhc2Ugb2YgbGlzdCB3aWRnZXQgY29udGV4dCB3aWxsIGJlIHRoZSBsaXN0SXRlbS5cbiAgICAgICAgaWYgKGhhcyh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUuc3BsaXQoJy4nKVswXSkgJiYgaGFzKHRoaXMuY29udGV4dCwgYmluZGRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldCh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmKGhhcyh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICBzZXQodGhpcy52aWV3UGFyZW50LCBiaW5kZGF0YXZhbHVlLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW52b2tlT25DaGFuZ2UodmFsdWUsICRldmVudD86IEV2ZW50KSB7XG4gICAgICAgIC8vIGludm9rZSB0aGUgZXZlbnQgY2FsbGJhY2tcbiAgICAgICAgaWYgKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlICE9PSB0aGlzLnByZXZEYXRhdmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJvdW5kVmFyaWFibGUodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2hhbmdlJywge1xuICAgICAgICAgICAgICAgICAgICAkZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIG5ld1ZhbDogdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG9sZFZhbDogdGhpcy5wcmV2RGF0YXZhbHVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gdXBkYXRlIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgICAgICB0aGlzLnByZXZEYXRhdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlUHJldkRhdGF2YWx1ZSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLnByZXZEYXRhdmFsdWUgPSB2YWw7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuLy8gW1dNUy0xODg5Ml0tIHN0b3BwaW5nIGV2ZW50IHByb3BhZ2F0aW9uIFtmb3IgQXJyb3dMZWZ0LCBBcnJvd1VwLCBBcnJvd1JpZ2h0LCBBcnJvd0Rvd24gYWN0aW9uc10gIHdoZW4gZm9ybSB3aWRnZXRzIG9yIGZvcm0gaXMgaW5zaWRlIGxpc3Qgd2lkZ2V0XG4gICAgICAgIGxldCBwYXJlbnRFbGVtTGlzdCA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5wYXJlbnRzKCk7XG4gICAgICAgIGlmIChwYXJlbnRFbGVtTGlzdC5jbG9zZXN0KCdbd21MaXN0XScpLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5rZXlkb3duKGZ1bmN0aW9uKCRldmVudCkge1xuICAgICAgICAgICAgICAgIGlmICgkZXZlbnQua2V5Q29kZSA9PT0gMzcgfHwgJGV2ZW50LmtleUNvZGUgPT09IDM4IHx8ICRldmVudC5rZXlDb2RlID09PSAzOSB8fCAkZXZlbnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFHbkMsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxpQkFBaUI7SUFPN0QsWUFDYyxHQUFhLEVBQ0QsTUFBcUIsRUFDSCxlQUFvQixFQUM1RCxXQUEwQjtRQUUxQixLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMdkMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQU12QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQVM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsS0FBSztRQUNyQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXZDLDhDQUE4QztRQUM5QyxJQUFJLElBQUksQ0FBQyxlQUFl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TTt1QkFBQyxZQUFZOztzQkFDbkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEYXRhU291cmNlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IElXaWRnZXRDb25maWcsIFN0eWxhYmxlQ29tcG9uZW50LCBXaWRnZXRDb25maWcgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7aGFzLCBzZXR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xuXG4gICAgcHJpdmF0ZSBkYXRhdmFsO1xuICAgIHByaXZhdGUgcHJldkRhdGF2YWx1ZTtcbiAgICBwcm90ZWN0ZWQgYmluZGRhdGF2YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF0YXZhbHVlc291cmNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksXG4gICAgICAgIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5iaW5kZGF0YXZhbHVlID0gdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhdmFsdWUuYmluZCcpO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUoZGF0YXZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YXZhbCA9IGRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIHdpZGdldCdzIGRhdGF2YWx1ZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB1cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKSB7XG4gICAgICAgIGxldCBiaW5kZGF0YXZhbHVlID0gdGhpcy5iaW5kZGF0YXZhbHVlO1xuXG4gICAgICAgIC8vIHJldHVybiBpZiB0aGUgdmFyaWFibGUgYm91bmQgaXMgbm90IHN0YXRpYy5cbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmIHRoaXMuZGF0YXZhbHVlc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmICF0aGlzLmRhdGF2YWx1ZXNvdXJjZS50d29XYXlCaW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHdpZGdldCBpcyBib3VuZC5cbiAgICAgICAgaWYgKCFiaW5kZGF0YXZhbHVlIHx8IGJpbmRkYXRhdmFsdWUuc3RhcnRzV2l0aCgnV2lkZ2V0cy4nKSB8fCBiaW5kZGF0YXZhbHVlLnN0YXJ0c1dpdGgoJ2l0ZW1SZWYuY3VycmVudEl0ZW1XaWRnZXRzJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpbmRkYXRhdmFsdWUgPSBiaW5kZGF0YXZhbHVlLnJlcGxhY2UoL1xcW1xcJGlcXF0vZywgJ1swXScpO1xuXG4gICAgICAgIC8vIEluIGNhc2Ugb2YgbGlzdCB3aWRnZXQgY29udGV4dCB3aWxsIGJlIHRoZSBsaXN0SXRlbS5cbiAgICAgICAgaWYgKGhhcyh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUuc3BsaXQoJy4nKVswXSkgJiYgaGFzKHRoaXMuY29udGV4dCwgYmluZGRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldCh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmKGhhcyh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICBzZXQodGhpcy52aWV3UGFyZW50LCBiaW5kZGF0YXZhbHVlLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW52b2tlT25DaGFuZ2UodmFsdWUsICRldmVudD86IEV2ZW50KSB7XG4gICAgICAgIC8vIGludm9rZSB0aGUgZXZlbnQgY2FsbGJhY2tcbiAgICAgICAgaWYgKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlICE9PSB0aGlzLnByZXZEYXRhdmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUJvdW5kVmFyaWFibGUodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnY2hhbmdlJywge1xuICAgICAgICAgICAgICAgICAgICAkZXZlbnQsXG4gICAgICAgICAgICAgICAgICAgIG5ld1ZhbDogdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG9sZFZhbDogdGhpcy5wcmV2RGF0YXZhbHVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gdXBkYXRlIHRoZSBwcmV2aW91cyB2YWx1ZVxuICAgICAgICB0aGlzLnByZXZEYXRhdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlUHJldkRhdGF2YWx1ZSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLnByZXZEYXRhdmFsdWUgPSB2YWw7XG4gICAgfVxuICAgIHByb3RlY3RlZCBnZXRQcmV2RGF0YVZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmV2RGF0YXZhbHVlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbi8vIFtXTVMtMTg4OTJdLSBzdG9wcGluZyBldmVudCBwcm9wYWdhdGlvbiBbZm9yIEFycm93TGVmdCwgQXJyb3dVcCwgQXJyb3dSaWdodCwgQXJyb3dEb3duIGFjdGlvbnNdICB3aGVuIGZvcm0gd2lkZ2V0cyBvciBmb3JtIGlzIGluc2lkZSBsaXN0IHdpZGdldFxuICAgICAgICBsZXQgcGFyZW50RWxlbUxpc3QgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkucGFyZW50cygpO1xuICAgICAgICBpZiAocGFyZW50RWxlbUxpc3QuY2xvc2VzdCgnW3dtTGlzdF0nKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQua2V5ZG93bihmdW5jdGlvbigkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoJGV2ZW50LmtleUNvZGUgPT09IDM3IHx8ICRldmVudC5rZXlDb2RlID09PSAzOCB8fCAkZXZlbnQua2V5Q29kZSA9PT0gMzkgfHwgJGV2ZW50LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -32,10 +32,10 @@ export class NumberComponent extends NumberLocale {
32
32
  provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),
33
33
  provideAs(NumberComponent, NG_VALIDATORS, true),
34
34
  provideAsWidgetRef(NumberComponent)
35
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-number-input", 3, "ngModelChange", "blur", "focus", "input", "keypress", "keydown.backspace", "keydown.enter", "keydown.ArrowUp", "keydown.ArrowDown", "ngModel", "readonly", "disabled", "pattern", "autofocus", "ngClass", "ngStyle", "ngModelOptions", "required"]], template: function NumberComponent_Template(rf, ctx) { if (rf & 1) {
35
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c1, decls: 2, vars: 14, consts: [["input", ""], ["inputmode", "decimal", "focus-target", "", "type", "text", 1, "form-control", "app-textbox", "app-number-input", 3, "ngModelChange", "blur", "focus", "input", "keypress", "keydown.backspace", "keydown.delete", "keydown.enter", "keydown.ArrowUp", "keydown.ArrowDown", "ngModel", "readonly", "disabled", "pattern", "autofocus", "ngClass", "ngStyle", "ngModelOptions", "required"]], template: function NumberComponent_Template(rf, ctx) { if (rf & 1) {
36
36
  const _r1 = i0.ɵɵgetCurrentView();
37
37
  i0.ɵɵelementStart(0, "input", 1, 0);
38
- i0.ɵɵlistener("ngModelChange", function NumberComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onModelChange($event)); })("blur", function NumberComponent_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); ctx.handleBlur($event); return i0.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("focus", function NumberComponent_Template_input_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("input", function NumberComponent_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputChange($event.target.value)); })("keypress", function NumberComponent_Template_input_keypress_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.validateInputEntry($event)); })("keydown.backspace", function NumberComponent_Template_input_keydown_backspace_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBackspace($event)); })("keydown.enter", function NumberComponent_Template_input_keydown_enter_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onEnter($event)); })("keydown.ArrowUp", function NumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event, "UP")); })("keydown.ArrowDown", function NumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event, "DOWN")); });
38
+ i0.ɵɵlistener("ngModelChange", function NumberComponent_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onModelChange($event)); })("blur", function NumberComponent_Template_input_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); ctx.handleBlur($event); return i0.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("focus", function NumberComponent_Template_input_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkForTrailingZeros($event)); })("input", function NumberComponent_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputChange($event.target.value)); })("keypress", function NumberComponent_Template_input_keypress_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.validateInputEntry($event)); })("keydown.backspace", function NumberComponent_Template_input_keydown_backspace_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBackspace($event)); })("keydown.delete", function NumberComponent_Template_input_keydown_delete_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onDelete($event)); })("keydown.enter", function NumberComponent_Template_input_keydown_enter_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onEnter($event)); })("keydown.ArrowUp", function NumberComponent_Template_input_keydown_ArrowUp_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event, "UP")); })("keydown.ArrowDown", function NumberComponent_Template_input_keydown_ArrowDown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onArrowPress($event, "DOWN")); });
39
39
  i0.ɵɵelementEnd();
40
40
  } if (rf & 2) {
41
41
  i0.ɵɵproperty("ngModel", ctx.displayValue)("readonly", ctx.readonly)("disabled", ctx.disabled)("pattern", ctx.regexp)("autofocus", ctx.autofocus)("ngClass", ctx.conditionalclass)("ngStyle", ctx.conditionalstyle)("ngModelOptions", ctx.ngModelOptions)("required", ctx.required);
@@ -48,7 +48,7 @@ export class NumberComponent extends NumberLocale {
48
48
  provideAs(NumberComponent, NG_VALUE_ACCESSOR, true),
49
49
  provideAs(NumberComponent, NG_VALIDATORS, true),
50
50
  provideAsWidgetRef(NumberComponent)
51
- ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n" }]
51
+ ], template: "<input class=\"form-control app-textbox app-number-input\"\n inputmode=\"decimal\"\n focus-target\n [attr.name]=\"name\"\n type=\"text\"\n [ngModel]=\"displayValue\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"conditionalclass\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"onModelChange($event)\"\n (blur)=\"handleBlur($event); checkForTrailingZeros($event);\"\n (focus)=\"checkForTrailingZeros($event)\"\n (input)=\"onInputChange($event.target.value)\"\n [ngModelOptions]=\"ngModelOptions\"\n [required]=\"required\"\n (keypress)=\"validateInputEntry($event)\"\n (keydown.backspace)=\"onBackspace($event)\"\n (keydown.delete)=\"onDelete($event)\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.ArrowUp)=\"onArrowPress($event, 'UP')\"\n (keydown.ArrowDown)=\"onArrowPress($event, 'DOWN')\"\n #input>\n" }]
52
52
  }], () => [{ type: i0.Injector }, { type: i1.AbstractI18nService }, { type: i2.TrailingZeroDecimalPipe }, { type: undefined, decorators: [{
53
53
  type: Inject,
54
54
  args: ['EXPLICIT_CONTEXT']
@@ -62,4 +62,4 @@ export class NumberComponent extends NumberLocale {
62
62
  args: [NgModel, { static: true }]
63
63
  }] }); })();
64
64
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NumberComponent, { className: "NumberComponent", filePath: "number/number.component.ts", lineNumber: 24 }); })();
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTFHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBRTFELE1BQU0sYUFBYSxHQUFrQjtJQUNqQyxVQUFVLEVBQUUsV0FBVztJQUN2QixTQUFTLEVBQUUsbUJBQW1CO0NBQ2pDLENBQUM7QUFXRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxZQUFZO2FBQ3RDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBZ0J6QyxZQUFZLEdBQWEsRUFBRSxXQUFnQyxFQUFFLHVCQUFnRCxFQUEwQyxlQUFvQjtRQUN2SyxLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDckYsQ0FBQztnRkFuQlEsZUFBZSwwSkFpQitGLGtCQUFrQjtvRUFqQmhJLGVBQWU7OzJCQWViLE9BQU87Ozs7OzhDQXJCUDtnQkFDUCxTQUFTLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztnQkFDbkQsU0FBUyxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO2dCQUMvQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7YUFDdEM7O1lDckJMLG1DQTJCYztZQURQLEFBREEsQUFEQSxBQURBLEFBREEsQUFIQSxBQURBLEFBREEsQUFEQSx1SkFBaUIseUJBQXFCLEtBQUMsa0dBQy9CLHNCQUFrQix3QkFBRSxpQ0FBNkIsS0FBRSwwSEFDbEQsaUNBQTZCLEtBQUMsMEhBQzlCLHNDQUFrQyxLQUFDLGdJQUdoQyw4QkFBMEIsS0FBQyxrSkFDbEIsdUJBQW1CLEtBQUMsMElBQ3hCLG1CQUFlLEtBQUMsOElBQ2QseUJBQXFCLElBQUksQ0FBQyxLQUFDLGtKQUN6Qix5QkFBcUIsTUFBTSxDQUFDLEtBQUM7WUExQnpELGlCQTJCYzs7WUFOUCxBQURBLEFBTEEsQUFEQSxBQURBLEFBTEEsQUFEQSxBQURBLEFBREEsMENBQXdCLDBCQUNILDBCQUNBLHVCQUNILDRCQUtLLGlDQUNLLGlDQUNBLHNDQUtLLDBCQUNaOzs7O2lGREVmLGVBQWU7Y0FUM0IsU0FBUzsyQkFDSSxZQUFZLGFBRVg7b0JBQ1AsU0FBUyxrQkFBa0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO29CQUNuRCxTQUFTLGtCQUFrQixhQUFhLEVBQUUsSUFBSSxDQUFDO29CQUMvQyxrQkFBa0IsaUJBQWlCO2lCQUN0Qzs7c0JBbUIrRyxNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkFIaEgsT0FBTztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO1lBQ0UsT0FBTztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOztrRkFmekIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIE5nTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBYnN0cmFjdEkxOG5TZXJ2aWNlfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0lXaWRnZXRDb25maWcsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBUcmFpbGluZ1plcm9EZWNpbWFsUGlwZX0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9udW1iZXIucHJvcHMnO1xuaW1wb3J0IHtOdW1iZXJMb2NhbGV9IGZyb20gJy4uL3RleHQvbG9jYWxlL251bWJlci1sb2NhbGUnO1xuXG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1udW1iZXInLFxuICAgIGhvc3RDbGFzczogJ2FwcC1pbnB1dC13cmFwcGVyJ1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21OdW1iZXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKE51bWJlckNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoTnVtYmVyQ29tcG9uZW50LCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKE51bWJlckNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckNvbXBvbmVudCBleHRlbmRzIE51bWJlckxvY2FsZSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgcmVnZXhwOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgYXJpYWxhYmVsOiBzdHJpbmc7XG4gICAgcHVibGljIHRhYmluZGV4OiBhbnk7XG4gICAgcHVibGljIGNvbmRpdGlvbmFsY2xhc3M6IGFueTtcbiAgICBwdWJsaWMgY29uZGl0aW9uYWxzdHlsZTogYW55O1xuICAgIHB1YmxpYyBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW47XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKE5nTW9kZWwsIHtzdGF0aWM6IHRydWV9KSBuZ01vZGVsOiBOZ01vZGVsO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UsIHRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlOiBUcmFpbGluZ1plcm9EZWNpbWFsUGlwZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgaTE4blNlcnZpY2UsIHRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cbn1cbiIsIjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdGV4dGJveCBhcHAtbnVtYmVyLWlucHV0XCJcbiAgICAgICBpbnB1dG1vZGU9XCJkZWNpbWFsXCJcbiAgICAgICBmb2N1cy10YXJnZXRcbiAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICBbbmdNb2RlbF09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbcGF0dGVybl09XCJyZWdleHBcIlxuICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgW2F0dHIuYWNjZXNza2V5XT1cInNob3J0Y3V0a2V5XCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFsYWJlbFwiXG4gICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgIFtuZ0NsYXNzXT1cImNvbmRpdGlvbmFsY2xhc3NcIlxuICAgICAgIFtuZ1N0eWxlXT1cImNvbmRpdGlvbmFsc3R5bGVcIlxuICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpOyBjaGVja0ZvclRyYWlsaW5nWmVyb3MoJGV2ZW50KTtcIlxuICAgICAgIChmb2N1cyk9XCJjaGVja0ZvclRyYWlsaW5nWmVyb3MoJGV2ZW50KVwiXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJuZ01vZGVsT3B0aW9uc1wiXG4gICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAoa2V5cHJlc3MpPVwidmFsaWRhdGVJbnB1dEVudHJ5KCRldmVudClcIlxuICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbkJhY2tzcGFjZSgkZXZlbnQpXCJcbiAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyKCRldmVudClcIlxuICAgICAgIChrZXlkb3duLkFycm93VXApPVwib25BcnJvd1ByZXNzKCRldmVudCwgJ1VQJylcIlxuICAgICAgIChrZXlkb3duLkFycm93RG93bik9XCJvbkFycm93UHJlc3MoJGV2ZW50LCAnRE9XTicpXCJcbiAgICAgICAjaW5wdXQ+XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9udW1iZXIvbnVtYmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUM3QyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTFHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBRTFELE1BQU0sYUFBYSxHQUFrQjtJQUNqQyxVQUFVLEVBQUUsV0FBVztJQUN2QixTQUFTLEVBQUUsbUJBQW1CO0NBQ2pDLENBQUM7QUFXRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxZQUFZO2FBQ3RDLG9CQUFlLEdBQUcsYUFBYSxFQUFFLEFBQWxCLENBQW1CO0lBZ0J6QyxZQUFZLEdBQWEsRUFBRSxXQUFnQyxFQUFFLHVCQUFnRCxFQUEwQyxlQUFvQjtRQUN2SyxLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDckYsQ0FBQztnRkFuQlEsZUFBZSwwSkFpQitGLGtCQUFrQjtvRUFqQmhJLGVBQWU7OzJCQWViLE9BQU87Ozs7OzhDQXJCUDtnQkFDUCxTQUFTLENBQUMsZUFBZSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztnQkFDbkQsU0FBUyxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO2dCQUMvQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7YUFDdEM7O1lDckJMLG1DQTRCYztZQURQLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQUhBLEFBREEsQUFEQSxBQURBLHVKQUFpQix5QkFBcUIsS0FBQyxrR0FDL0Isc0JBQWtCLHdCQUFFLGlDQUE2QixLQUFFLDBIQUNsRCxpQ0FBNkIsS0FBQywwSEFDOUIsc0NBQWtDLEtBQUMsZ0lBR2hDLDhCQUEwQixLQUFDLGtKQUNsQix1QkFBbUIsS0FBQyw0SUFDdkIsb0JBQWdCLEtBQUMsMElBQ2xCLG1CQUFlLEtBQUMsOElBQ2QseUJBQXFCLElBQUksQ0FBQyxLQUFDLGtKQUN6Qix5QkFBcUIsTUFBTSxDQUFDLEtBQUM7WUEzQnpELGlCQTRCYzs7WUFQUCxBQURBLEFBTEEsQUFEQSxBQURBLEFBTEEsQUFEQSxBQURBLEFBREEsMENBQXdCLDBCQUNILDBCQUNBLHVCQUNILDRCQUtLLGlDQUNLLGlDQUNBLHNDQUtLLDBCQUNaOzs7O2lGREVmLGVBQWU7Y0FUM0IsU0FBUzsyQkFDSSxZQUFZLGFBRVg7b0JBQ1AsU0FBUyxrQkFBa0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO29CQUNuRCxTQUFTLGtCQUFrQixhQUFhLEVBQUUsSUFBSSxDQUFDO29CQUMvQyxrQkFBa0IsaUJBQWlCO2lCQUN0Qzs7c0JBbUIrRyxNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkFIaEgsT0FBTztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO1lBQ0UsT0FBTztrQkFBMUMsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDOztrRkFmekIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIE5nTW9kZWx9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBYnN0cmFjdEkxOG5TZXJ2aWNlfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0lXaWRnZXRDb25maWcsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBUcmFpbGluZ1plcm9EZWNpbWFsUGlwZX0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9udW1iZXIucHJvcHMnO1xuaW1wb3J0IHtOdW1iZXJMb2NhbGV9IGZyb20gJy4uL3RleHQvbG9jYWxlL251bWJlci1sb2NhbGUnO1xuXG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge1xuICAgIHdpZGdldFR5cGU6ICd3bS1udW1iZXInLFxuICAgIGhvc3RDbGFzczogJ2FwcC1pbnB1dC13cmFwcGVyJ1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21OdW1iZXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKE51bWJlckNvbXBvbmVudCwgTkdfVkFMVUVfQUNDRVNTT1IsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXMoTnVtYmVyQ29tcG9uZW50LCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKE51bWJlckNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckNvbXBvbmVudCBleHRlbmRzIE51bWJlckxvY2FsZSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgcmVnZXhwOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgYXJpYWxhYmVsOiBzdHJpbmc7XG4gICAgcHVibGljIHRhYmluZGV4OiBhbnk7XG4gICAgcHVibGljIGNvbmRpdGlvbmFsY2xhc3M6IGFueTtcbiAgICBwdWJsaWMgY29uZGl0aW9uYWxzdHlsZTogYW55O1xuICAgIHB1YmxpYyBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW47XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKE5nTW9kZWwsIHtzdGF0aWM6IHRydWV9KSBuZ01vZGVsOiBOZ01vZGVsO1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2UsIHRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlOiBUcmFpbGluZ1plcm9EZWNpbWFsUGlwZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgaTE4blNlcnZpY2UsIHRyYWlsaW5nWmVyb0RlY2ltYWxQaXBlLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cbn1cbiIsIjxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBhcHAtdGV4dGJveCBhcHAtbnVtYmVyLWlucHV0XCJcbiAgICAgICBpbnB1dG1vZGU9XCJkZWNpbWFsXCJcbiAgICAgICBmb2N1cy10YXJnZXRcbiAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICBbbmdNb2RlbF09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbcGF0dGVybl09XCJyZWdleHBcIlxuICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgW2F0dHIuYWNjZXNza2V5XT1cInNob3J0Y3V0a2V5XCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFsYWJlbFwiXG4gICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgIFtuZ0NsYXNzXT1cImNvbmRpdGlvbmFsY2xhc3NcIlxuICAgICAgIFtuZ1N0eWxlXT1cImNvbmRpdGlvbmFsc3R5bGVcIlxuICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpOyBjaGVja0ZvclRyYWlsaW5nWmVyb3MoJGV2ZW50KTtcIlxuICAgICAgIChmb2N1cyk9XCJjaGVja0ZvclRyYWlsaW5nWmVyb3MoJGV2ZW50KVwiXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxuICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJuZ01vZGVsT3B0aW9uc1wiXG4gICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAoa2V5cHJlc3MpPVwidmFsaWRhdGVJbnB1dEVudHJ5KCRldmVudClcIlxuICAgICAgIChrZXlkb3duLmJhY2tzcGFjZSk9XCJvbkJhY2tzcGFjZSgkZXZlbnQpXCJcbiAgICAgICAoa2V5ZG93bi5kZWxldGUpPVwib25EZWxldGUoJGV2ZW50KVwiXG4gICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcigkZXZlbnQpXCJcbiAgICAgICAoa2V5ZG93bi5BcnJvd1VwKT1cIm9uQXJyb3dQcmVzcygkZXZlbnQsICdVUCcpXCJcbiAgICAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwib25BcnJvd1ByZXNzKCRldmVudCwgJ0RPV04nKVwiXG4gICAgICAgI2lucHV0PlxuIl19