@wavemaker-ai/app-ng-runtime 1.0.0-rc.322 → 1.0.0-rc.326
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.
- package/components/base/bundles/index.umd.js +30 -9
- package/components/base/fesm2022/index.mjs +30 -9
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/index.d.ts +5 -1
- package/components/basic/anchor/bundles/index.umd.js +1 -1
- package/components/basic/anchor/fesm2022/index.mjs +1 -1
- package/components/basic/anchor/fesm2022/index.mjs.map +1 -1
- package/components/basic/icon/bundles/index.umd.js +1 -1
- package/components/basic/icon/fesm2022/index.mjs +1 -1
- package/components/basic/icon/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/bundles/index.umd.js +1 -1
- package/components/basic/search/fesm2022/index.mjs +1 -1
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/spinner/bundles/index.umd.js +1 -1
- package/components/basic/spinner/fesm2022/index.mjs +1 -1
- package/components/basic/spinner/fesm2022/index.mjs.map +1 -1
- package/components/chart/bundles/index.umd.js +1 -1
- package/components/chart/fesm2022/index.mjs +1 -1
- package/components/chart/fesm2022/index.mjs.map +1 -1
- package/components/containers/accordion/bundles/index.umd.js +1 -1
- package/components/containers/accordion/fesm2022/index.mjs +1 -1
- package/components/containers/accordion/fesm2022/index.mjs.map +1 -1
- package/components/containers/panel/bundles/index.umd.js +1 -1
- package/components/containers/panel/fesm2022/index.mjs +1 -1
- package/components/containers/panel/fesm2022/index.mjs.map +1 -1
- package/components/containers/tabs/bundles/index.umd.js +1 -1
- package/components/containers/tabs/fesm2022/index.mjs +1 -1
- package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/bundles/index.umd.js +1 -1
- package/components/containers/wizard/fesm2022/index.mjs +1 -1
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/data/card/bundles/index.umd.js +1 -1
- package/components/data/card/fesm2022/index.mjs +1 -1
- package/components/data/card/fesm2022/index.mjs.map +1 -1
- package/components/data/form/bundles/index.umd.js +1 -1
- package/components/data/form/fesm2022/index.mjs +1 -1
- package/components/data/form/fesm2022/index.mjs.map +1 -1
- package/components/data/list/bundles/index.umd.js +1 -1
- package/components/data/list/fesm2022/index.mjs +1 -1
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/pagination/bundles/index.umd.js +3 -0
- package/components/data/pagination/fesm2022/index.mjs +3 -0
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/data/table/bundles/index.umd.js +9 -2
- package/components/data/table/fesm2022/index.mjs +9 -2
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/dialogs/default/bundles/index.umd.js +1 -1
- package/components/dialogs/default/fesm2022/index.mjs +1 -1
- package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- package/components/input/button/bundles/index.umd.js +1 -1
- package/components/input/button/fesm2022/index.mjs +1 -1
- package/components/input/button/fesm2022/index.mjs.map +1 -1
- package/components/input/checkbox/bundles/index.umd.js +1 -1
- package/components/input/checkbox/fesm2022/index.mjs +1 -1
- package/components/input/checkbox/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +1 -1
- package/components/input/dataset-aware-form/fesm2022/index.mjs +1 -1
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/components/input/file-upload/bundles/index.umd.js +1 -1
- package/components/input/file-upload/fesm2022/index.mjs +1 -1
- package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- package/components/input/rating/bundles/index.umd.js +1 -1
- package/components/input/rating/fesm2022/index.mjs +1 -1
- package/components/input/rating/fesm2022/index.mjs.map +1 -1
- package/components/input/slider/bundles/index.umd.js +1 -1
- package/components/input/slider/fesm2022/index.mjs +1 -1
- package/components/input/slider/fesm2022/index.mjs.map +1 -1
- package/components/input/switch/bundles/index.umd.js +1 -1
- package/components/input/switch/fesm2022/index.mjs +1 -1
- package/components/input/switch/fesm2022/index.mjs.map +1 -1
- package/components/input/text/bundles/index.umd.js +1 -1
- package/components/input/text/fesm2022/index.mjs +1 -1
- package/components/input/text/fesm2022/index.mjs.map +1 -1
- package/components/navigation/breadcrumb/bundles/index.umd.js +3 -3
- package/components/navigation/breadcrumb/fesm2022/index.mjs +4 -4
- package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
- package/components/navigation/menu/bundles/index.umd.js +1 -1
- package/components/navigation/menu/fesm2022/index.mjs +1 -1
- package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- package/components/navigation/navbar/bundles/index.umd.js +1 -1
- package/components/navigation/navbar/fesm2022/index.mjs +1 -1
- package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
- package/components/page/default/bundles/index.umd.js +1 -0
- package/components/page/default/fesm2022/index.mjs +1 -0
- package/components/page/default/fesm2022/index.mjs.map +1 -1
- package/core/fesm2022/index.mjs.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +7 -4
- package/runtime/base/fesm2022/index.mjs +7 -4
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +3 -3
- package/transpiler/bundles/index.umd.js +3 -0
- package/transpiler/fesm2022/index.mjs +3 -0
- package/transpiler/fesm2022/index.mjs.map +1 -1
|
@@ -559,6 +559,9 @@
|
|
|
559
559
|
if (parts[0] === 'Variables' || parts[0] === 'Widgets') {
|
|
560
560
|
bindPagingOptions = `${parts[0]}.${parts[1]}.pagination`;
|
|
561
561
|
}
|
|
562
|
+
else if (parts[0] === 'App' && parts[1] === 'activePage' && parts[2]?.includes('Variables') && parts[3]) {
|
|
563
|
+
bindPagingOptions = `App.activePage.${parts[2]}.${parts[3]}.pagination`;
|
|
564
|
+
}
|
|
562
565
|
if (!binddatasource && dataset && !datasetBoundExpr) {
|
|
563
566
|
this.dataset = dataset;
|
|
564
567
|
if (this._debouncedApplyDataset) {
|
|
@@ -551,6 +551,9 @@ class PaginationComponent extends StylableComponent {
|
|
|
551
551
|
if (parts[0] === 'Variables' || parts[0] === 'Widgets') {
|
|
552
552
|
bindPagingOptions = `${parts[0]}.${parts[1]}.pagination`;
|
|
553
553
|
}
|
|
554
|
+
else if (parts[0] === 'App' && parts[1] === 'activePage' && parts[2]?.includes('Variables') && parts[3]) {
|
|
555
|
+
bindPagingOptions = `App.activePage.${parts[2]}.${parts[3]}.pagination`;
|
|
556
|
+
}
|
|
554
557
|
if (!binddatasource && dataset && !datasetBoundExpr) {
|
|
555
558
|
this.dataset = dataset;
|
|
556
559
|
if (this._debouncedApplyDataset) {
|
|
@@ -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.ts","../../../../../projects/components/widgets/data/pagination/src/pagination.component.html","../../../../../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 ['allowpagesizechange', {value: false, ...PROP_BOOLEAN}],\n ['allowpagesizechange', {value: false, ...PROP_BOOLEAN}],\n ['pagesizeoptions', {value: '', ...PROP_STRING}],\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","import {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Inject,\n Injector,\n OnDestroy,\n Optional,\n Output,\n SkipSelf,\n ViewChild\n} from '@angular/core';\n\nimport {\n $appDigest,\n $watch,\n adjustVerticalPosition,\n AppConstants,\n DataSource,\n debounce,\n isDefined,\n switchClass,\n triggerFn\n} from '@wm/core';\nimport {\n DEBOUNCE_TIMES,\n getOrderByExpr,\n provideAsWidgetRef,\n StylableComponent,\n styler,\n unsupportedStatePersistenceTypes,\n WidgetRef\n} from '@wm/components/base';\nimport {registerProps} from './pagination.props';\nimport {forEach, get, isArray, isEmpty, isNull, isString, range} from \"lodash-es\";\nimport {PaginationModule} from 'ngx-bootstrap/pagination';\nimport {BsDropdownDirective, BsDropdownModule} from 'ngx-bootstrap/dropdown';\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 standalone: true,\n imports: [CommonModule, FormsModule, PaginationModule, BsDropdownModule],\n selector: '[wmPagination]',\n templateUrl: './pagination.component.html',\n providers: [\n provideAsWidgetRef(PaginationComponent)\n ]\n})\nexport class PaginationComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n @Output() resultEmitter: EventEmitter<any> = new EventEmitter();\n @Output() maxResultsEmitter: EventEmitter<any> = new EventEmitter();\n @ViewChild(BsDropdownDirective) protected bsDropdown;\n private dropdownScrollHandler!: ($event:any) => void;\n datasource;\n maxResults;\n pageSizeOptions;\n prevPageSize;\n actualPageSize;\n allowpagesizechange;\n defaultPageSizeOptions = [];\n focusedIndex = 0;\n rowSummary;\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 _initTimeoutId: any; // Store timeout ID for cleanup\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 const maxResults = event && (event.pagesize || event.itemsPerPage) || this.maxResults;\n\n // Do not call goToPage if page has not changed\n if (currentPage !== this.dn.currentPage || this.maxResults !== maxResults) {\n const inst = (this as any).parent || this;\n this.dn.currentPage = currentPage;\n this.maxResults = maxResults;\n this.maxResultsEmitter.emit(this.maxResults);\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 this._initTimeoutId = setTimeout(()=> {\n // Guard against component destruction or parent being null\n if (this.isDestroyed || !this.parent) {\n return;\n }\n this.allowpagesizechange = this.parent.allowpagesizechange;\n if(this.allowpagesizechange)\n this.defaultPageSizeOptions =this.normalizeToNumberArray(this.parent?.pagesizeoptions);\n }, 0);\n }\n normalizeToNumberArray(input) { // Handles all formats in one place: \"10,20,30\", [10,20,30], \"[10,20,30]\"\n if (!input) return [];\n\n let arr;\n\n if (Array.isArray(input)) {\n arr = input;\n } else if (typeof input === \"string\") {\n const trimmed = input.trim();\n\n // handle \"[1,2,3]\"\n if (trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\")) {\n try {\n arr = JSON.parse(trimmed);\n } catch {\n arr = [];\n }\n } else {\n // handle \"1,2,3\"\n arr = trimmed.split(\",\");\n }\n } else {\n return [];\n }\n\n return arr\n .map(v => Number(v))\n .filter(v => !isNaN(v))\n .sort((a, b) => a - b);\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\n private getPaginationStartIndex(): number {\n const startIndex = this.datasource?._paginationConfig?.paginationStartIndex;\n return isDefined(startIndex) && this.datasource?._paginationConfig?.type === 'page' ? Number(startIndex) : 1;\n }\n\n // this function returns an object which gives summary of the current page data (ex: In UI it is shown as 1 to 10 out of 50 records)\n getPageDetails(startIndex, endIndex, totalRecords) {\n this.rowSummary = (isDefined(startIndex) && isDefined(endIndex) && isDefined(totalRecords)) ? {\n startIndex: startIndex,\n endIndex: endIndex,\n totalRecords: totalRecords\n }: {};\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 if (this.allowpagesizechange) { // when default page size is not given then use maxResults instead of options.maxResults\n maxResults = this.maxResults;\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.getPageDetails(startIndex + 1, Math.min(startIndex + this.maxResults, newVal?.length), newVal?.length);\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 startIndex,\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 = Number(this.pagination.size) ? this.pagination.size : get(this.datasource.dataSet, this.pagination.size);\n this.pagination.numberOfElements = Number(this.pagination.numberOfElements) ? this.pagination.numberOfElements : get(this.datasource.dataSet, this.pagination.numberOfElements)\n if (this.pagination.numberOfElements > 0) {\n if (isDefined(this.pagination.number) && this.getPaginationStartIndex() === 1) { // 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 startIndex = (currentPage - 1) * this.maxResults;\n this.getPageDetails(startIndex + 1, startIndex + Number(this.pagination.numberOfElements), dataSize);\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 allowpagesizechange = this.parent.allowpagesizechange;\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() && !allowpagesizechange) {\n this.parent.statePersistence.removeWidgetState(this.parent, 'pagination');\n } else {\n if (unsupportedStatePersistenceTypes.indexOf(this.parent.navigation) < 0) {\n const state: { pagination: number; pagesize?: number } = { pagination: this.dn.currentPage };\n if (allowpagesizechange) {\n state.pagesize = this.maxResults;\n }\n this.parent.statePersistence.setWidgetState(this.parent, state);\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 - 1) + this.getPaginationStartIndex(),\n 'size': this.maxResults,\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 startIndex = (this.dn.currentPage - 1) * this.maxResults;\n this.getPageDetails(startIndex + 1 , startIndex + Number(this.pagination?.numberOfElements), this.pagination?.totalElements);\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.getPageDetails(startIndex + 1 , Math.min(startIndex + this.maxResults, this.__fullData?.length), this.__fullData?.length);\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 this.goToPage(event);\n } else if (this.dn.currentPage > this.pageCount) {\n this.dn.currentPage = this.pageCount;\n this.goToPage(event);\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 if(this.pagination?.next && this.datasource?.pagination) {\n this.datasource.pagination.isNext = false;\n this.datasource.pagination.isPrev = false;\n }\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 if (this._debouncedApplyDataset) {\n this._debouncedApplyDataset();\n }\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 if (this._debouncedApplyDataset) {\n this._debouncedApplyDataset();\n }\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 () => {\n if (this._debouncedApplyDataset) {\n this._debouncedApplyDataset();\n }\n }\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 let pageSize, prevPageSize;\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 if (data?.length) { // calculate Pagesize options based on actual page size\n if (this.isDataSourceHasPaging()) { // for Live variables\n const currentPageSize = get(data, 'pagination.size') || get(this.datasource, 'pagination.size'),\n totalElements = get(data, 'pagination.totalElements') || get(this.datasource, 'pagination.totalElements'),\n widgetState = this.parent.statePersistence.getWidgetState(this.parent);\n this.actualPageSize = widgetState?.actualpagesize || currentPageSize;\n this.actualPageSize = Number(this.actualPageSize) ? this.actualPageSize : get(this.datasource.dataSet, this.actualPageSize)\n if(this.defaultPageSizeOptions.length > 0){\n this.pageSizeOptions = [...this.defaultPageSizeOptions];\n }else{\n this.pageSizeOptions = range(this.actualPageSize, Math.max(this.actualPageSize + 1, this.actualPageSize + totalElements), this.actualPageSize); // here data has only that page data and pagesize has totalNoof Elements\n }\n if (widgetState?.selectedItem && widgetState.actualpagesize !== widgetState.pagesize) {\n if (!this.prevPageSize) {\n this.prevPageSize = this.actualPageSize || data?.length;\n }\n const updatedItems = this.handleStateParamsforNewPageSize(widgetState.selectedItem, this.prevPageSize, data?.length);\n if (updatedItems) {\n this.parent.statePersistence.setWidgetState(this.parent, {\n pagination: 1,\n pagesize: this.maxResults,\n actualpagesize: this.actualPageSize || this.maxResults,\n selectedItem: updatedItems\n })\n this.prevPageSize = undefined;\n }\n }\n } else {\n pageSize = this.parent.getActualPageSize();\n if(this.defaultPageSizeOptions.length > 0){\n this.pageSizeOptions = [...this.defaultPageSizeOptions];\n }else{\n this.pageSizeOptions = range(pageSize, data.length + pageSize, pageSize);\n }\n }\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 // change the selectedItems page number and index in the stateparams when pagesize is changed\n handleStateParamsforNewPageSize(\n selectedItem: { page: number; index: number }[],\n oldPageSize: number,\n newPageSize: number\n ): { page: number; index: number }[] {\n return selectedItem.map(({ page, index }) => {\n const absoluteIndex = (page - 1) * oldPageSize + index;\n const newPage = Math.floor(absoluteIndex / newPageSize) + 1; // back to 1-based\n const newIndex = absoluteIndex % newPageSize;\n\n return {\n page: newPage,\n index: newIndex\n };\n });\n }\n\n onDropdownKeydown(event, index) {\n const $items = $('ul#dropdown-basic a.dropdown-item');\n const maxIndex = this.pageSizeOptions.length - 1;\n let selectedOption;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'Tab':\n event.preventDefault();\n if (event.key === 'Tab' && event.shiftKey) {\n // Treat Shift+Tab as ArrowUp\n this.focusedIndex = (index - 1) < 0 ? maxIndex : index - 1;\n } else {\n // Treat Tab or ArrowDown as ArrowDown\n this.focusedIndex = (index + 1) > maxIndex ? 0 : index + 1;\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusedIndex = (index - 1) < 0 ? maxIndex : index - 1;\n break;\n\n case 'Enter':\n event.preventDefault();\n selectedOption = this.pageSizeOptions[this.focusedIndex];\n this.onPageSizeChange(event, selectedOption);\n this.closeDropdown();\n return;\n\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n return;\n\n default:\n return;\n }\n\n // Move focus after index is updated\n setTimeout(() => {\n $items.eq(this.focusedIndex)?.focus();\n });\n\n }\n\n closeDropdown() {\n // Close dropdown\n this.bsDropdown.hide();\n const $toggleButton = $('button[aria-controls=\"dropdown-basic\"]');\n $toggleButton.focus(); // Return focus to button\n }\n\n // Function gets called on dropdown open & close\n onOpenChange(isOpen) {\n if (isOpen) {\n this.focusedIndex = 0;\n setTimeout(() => {\n // manually focus the dropdown as dropdown has container=\"body\"\n const $items = $('ul#dropdown-basic a.dropdown-item');\n const $firstItem = $items.eq(this.focusedIndex);\n $firstItem?.focus();\n }, 0);\n }\n }\n onPageSizeChange($event, newPageSize) {\n const widgetState = this.parent.statePersistence.getWidgetState(this.parent);\n let updatedItems;\n if (widgetState?.selectedItem) {\n updatedItems = this.handleStateParamsforNewPageSize(widgetState.selectedItem, this.maxResults, +newPageSize);\n }\n this.actualPageSize = this.actualPageSize || this.maxResults;\n this.maxResults = +newPageSize;\n this.maxResultsEmitter.emit(this.maxResults);\n if (this.isDataSourceHasPaging() && this.datasource) {\n this.datasource.maxResults = this.maxResults;\n }\n if (updatedItems) {\n this.parent.statePersistence.setWidgetState(this.parent, {\n pagination: 1,\n pagesize: this.maxResults,\n actualpagesize: this.actualPageSize || this.maxResults,\n selectedItem: updatedItems\n })\n } else {\n this.parent.statePersistence.setWidgetState(this.parent, {\n pagination: 1,\n pagesize: this.maxResults,\n actualpagesize: this.actualPageSize || this.maxResults\n })\n }\n this.navigatePage('first', $event, true);\n this.calculatePagingValues();\n if(this.nativeElement.closest('popover-container, .popover')){\n $event.stopPropagation();\n this.bsDropdown.hide()\n }\n }\n\n onDropDownShown($event: any) {\n\n const container = $event?._element?.nativeElement as HTMLElement;\n if(!container) return;\n\n adjustVerticalPosition(\n $(container),\n this.nativeElement?.querySelector('.items-per-page div'),\n this.bsDropdown._dropdown,\n $(container?.querySelector('ul[id=\"dropdown-basic\"]'))\n );\n\n this.dropdownScrollHandler = () => {\n this.onDropdownScroll();\n };\n\n window.addEventListener('scroll', this.dropdownScrollHandler, true);\n }\n\n onDropdownScroll() {\n // on scroll boostrap is applying 3d translation to prevent from that added this dummy function\n return;\n }\n\n onDropdownHidden() {\n if (this.dropdownScrollHandler) {\n window.removeEventListener('scroll', this.dropdownScrollHandler, true);\n }\n this.dropdownScrollHandler = undefined!;\n }\n\n ngAfterViewInit() {\n const paginationElem = this.nativeElement as HTMLElement;\n paginationElem.onclick = (event) => {\n event.stopPropagation();\n };\n }\n\n ngOnDestroy() {\n if (this.dropdownScrollHandler) {\n window.removeEventListener('scroll', this.dropdownScrollHandler, true);\n }\n // MEMORY LEAK FIX: Clear initialization timeout if still pending\n if (this._initTimeoutId) {\n clearTimeout(this._initTimeoutId);\n this._initTimeoutId = null;\n }\n\n // MEMORY LEAK FIX: Complete EventEmitters\n if (this.resultEmitter) {\n this.resultEmitter.complete();\n }\n if (this.maxResultsEmitter) {\n this.maxResultsEmitter.complete();\n }\n\n // MEMORY LEAK FIX: Nullify debounced function closures\n this._debouncedApplyDataset = null;\n this._debouncedPageChanged = null;\n\n // MEMORY LEAK FIX: Clear data arrays and objects\n this.dataset = null;\n this.__fullData = null;\n this.result = null;\n this.filterFields = null;\n this.sortOptions = null;\n this.options = null;\n // MEMORY LEAK FIX: Clear page size options array\n if (this.pageSizeOptions) {\n this.pageSizeOptions = [];\n }\n if (this.defaultPageSizeOptions) {\n this.defaultPageSizeOptions = [];\n }\n\n // MEMORY LEAK FIX: Clear datasource reference\n this.datasource = null;\n\n // MEMORY LEAK FIX: Clear parent reference\n this.parent = null;\n\n // Call parent ngOnDestroy (sets isDestroyed = true)\n super.ngOnDestroy();\n }\n}\n","\n@if (navcontrols === 'Classic') {\n<ul class=\"pagination advanced {{navigationClass}}\">\n @if (allowpagesizechange && pageSizeOptions?.[0]<rowSummary?.totalRecords) {\n <li class=\"items-per-page\">\n <label [title]=\"appLocale.LABEL_ITEMS_PER_PAGE\" class=\"app-label\">{{appLocale.LABEL_ITEMS_PER_PAGE}} :</label>\n\n <div class=\"btn-group\" dropdown container=\"body\" (onShown)=\"onDropDownShown($event)\" (onHidden)=\"onDropdownHidden()\" (isOpenChange)=\"onOpenChange($event)\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn app-button dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n {{maxResults}} <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu pagesize-options\"\n role=\"menu\" aria-labelledby=\"button-basic\">\n @for (option of pageSizeOptions; track option; let i = $index) {\n <li role=\"menuitem\" [ngClass]=\"{ 'active': option == maxResults }\">\n <a class=\"dropdown-item\" (click)=\"onPageSizeChange($event, option)\" (keydown)=\"onDropdownKeydown($event, i)\"\n [attr.tabindex]=\"i === focusedIndex ? 0 : -1\">{{option}}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n @if (rowSummary?.totalRecords) {\n <li class=\"item-range\">\n <div>\n <span>{{rowSummary.startIndex}} - {{rowSummary.endIndex}}</span>\n <span>of</span>\n <span>{{rowSummary.totalRecords}}</span>\n </div>\n </li>\n }\n }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\n <li class=\"disabled\">\n <a [hidden]=\"isDisableCount\"> / {{pageCount}}</a>\n </li>\n }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (showrecordcount) {\n <li class=\"totalcount disabled\">\n <a href=\"javascript:void(0);\" tabindex=\"-1\" aria-disabled=\"true\">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n }\n</ul>\n}\n@if (navcontrols === 'Pager') {\n <ul class=\"pager {{navigationClass}}\">\n @if (allowpagesizechange && pageSizeOptions?.[0]<rowSummary?.totalRecords) {\n <li class=\"items-per-page\">\n <label [title]=\"appLocale.LABEL_ITEMS_PER_PAGE\" class=\"app-label\">{{appLocale.LABEL_ITEMS_PER_PAGE}} :</label>\n\n <div class=\"btn-group\" dropdown container=\"body\" (onShown)=\"onDropDownShown($event)\" (onHidden)=\"onDropdownHidden()\" (isOpenChange)=\"onOpenChange($event)\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn app-button dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n {{maxResults}} <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu pagesize-options\"\n role=\"menu\" aria-labelledby=\"button-basic\">\n @for (option of pageSizeOptions; track option; let i = $index) {\n <li role=\"menuitem\" [ngClass]=\"{ 'active': option == maxResults }\">\n <a class=\"dropdown-item\" (click)=\"onPageSizeChange($event, option)\" (keydown)=\"onDropdownKeydown($event, i)\"\n [attr.tabindex]=\"i === focusedIndex ? 0 : -1\">{{option}}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n @if (rowSummary?.totalRecords) {\n <li class=\"item-range\">\n <div>\n <span>{{rowSummary.startIndex}} - {{rowSummary.endIndex}}</span>\n <span>of</span>\n <span>{{rowSummary.totalRecords}}</span>\n </div>\n </li>\n }\n }\n@if (!(dataSize<=maxResults)) {\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 }\n </ul>\n}\n\n@if (navcontrols === 'Basic') {\n @if (allowpagesizechange && pageSizeOptions?.[0]<rowSummary?.totalRecords) {\n <div class=\"items-per-page\">\n <label [title]=\"appLocale.LABEL_ITEMS_PER_PAGE\" class=\"app-label\">{{appLocale.LABEL_ITEMS_PER_PAGE }} :</label>\n\n <div class=\"btn-group\" dropdown container=\"body\" (onShown)=\"onDropDownShown($event)\" (onHidden)=\"onDropdownHidden()\" (isOpenChange)=\"onOpenChange($event)\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn app-button dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n {{maxResults}} <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu pagesize-options\"\n role=\"menu\" aria-labelledby=\"button-basic\">\n @for (option of pageSizeOptions; track option; let i = $index) {\n <li role=\"menuitem\" [ngClass]=\"{ 'active': option == maxResults }\">\n <a class=\"dropdown-item\" (click)=\"onPageSizeChange($event, option)\" (keydown)=\"onDropdownKeydown($event, i)\"\n [attr.tabindex]=\"i === focusedIndex ? 0 : -1\">{{option}}</a>\n </li>\n }\n </ul>\n </div>\n </div>\n @if (rowSummary?.totalRecords) {\n <div class=\"item-range\">\n <div>\n <span>{{rowSummary.startIndex}} - {{rowSummary.endIndex}}</span>\n <span>of</span>\n <span>{{rowSummary.totalRecords}}</span>\n </div>\n </div>\n }\n }\n @if (!(dataSize<=maxResults)) {\n <pagination class=\"pagination basic\" [ngClass]=\"navigationClass\" 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}\n\n@if (navcontrols === 'Basic' && showrecordcount) {\n <ul 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\n<ng-template #pageTemplate let-page>\n <span class=\"sr-only\" [attr.data-isacitvepage]=\"page.active\">{{'Page '}}</span>\n {{page.number}}\n @if (page.active) {\n <span class=\"sr-only\"> {{', Showing page ' + page.number + ' of ' + pageCount}}</span>\n }\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/pagination/src/pagination.props.ts","../../../../../projects/components/widgets/data/pagination/src/pagination.component.ts","../../../../../projects/components/widgets/data/pagination/src/pagination.component.html","../../../../../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 ['allowpagesizechange', {value: false, ...PROP_BOOLEAN}],\n ['allowpagesizechange', {value: false, ...PROP_BOOLEAN}],\n ['pagesizeoptions', {value: '', ...PROP_STRING}],\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","import {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {\n AfterViewInit,\n Component,\n EventEmitter,\n Inject,\n Injector,\n OnDestroy,\n Optional,\n Output,\n SkipSelf,\n ViewChild\n} from '@angular/core';\n\nimport {\n $appDigest,\n $watch,\n adjustVerticalPosition,\n AppConstants,\n DataSource,\n debounce,\n isDefined,\n switchClass,\n triggerFn\n} from '@wm/core';\nimport {\n DEBOUNCE_TIMES,\n getOrderByExpr,\n provideAsWidgetRef,\n StylableComponent,\n styler,\n unsupportedStatePersistenceTypes,\n WidgetRef\n} from '@wm/components/base';\nimport {registerProps} from './pagination.props';\nimport {forEach, get, isArray, isEmpty, isNull, isString, range} from \"lodash-es\";\nimport {PaginationModule} from 'ngx-bootstrap/pagination';\nimport {BsDropdownDirective, BsDropdownModule} from 'ngx-bootstrap/dropdown';\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 standalone: true,\n imports: [CommonModule, FormsModule, PaginationModule, BsDropdownModule],\n selector: '[wmPagination]',\n templateUrl: './pagination.component.html',\n providers: [\n provideAsWidgetRef(PaginationComponent)\n ]\n})\nexport class PaginationComponent extends StylableComponent implements AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n @Output() resultEmitter: EventEmitter<any> = new EventEmitter();\n @Output() maxResultsEmitter: EventEmitter<any> = new EventEmitter();\n @ViewChild(BsDropdownDirective) protected bsDropdown;\n private dropdownScrollHandler!: ($event:any) => void;\n datasource;\n maxResults;\n pageSizeOptions;\n prevPageSize;\n actualPageSize;\n allowpagesizechange;\n defaultPageSizeOptions = [];\n focusedIndex = 0;\n rowSummary;\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 _initTimeoutId: any; // Store timeout ID for cleanup\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 const maxResults = event && (event.pagesize || event.itemsPerPage) || this.maxResults;\n\n // Do not call goToPage if page has not changed\n if (currentPage !== this.dn.currentPage || this.maxResults !== maxResults) {\n const inst = (this as any).parent || this;\n this.dn.currentPage = currentPage;\n this.maxResults = maxResults;\n this.maxResultsEmitter.emit(this.maxResults);\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 this._initTimeoutId = setTimeout(()=> {\n // Guard against component destruction or parent being null\n if (this.isDestroyed || !this.parent) {\n return;\n }\n this.allowpagesizechange = this.parent.allowpagesizechange;\n if(this.allowpagesizechange)\n this.defaultPageSizeOptions =this.normalizeToNumberArray(this.parent?.pagesizeoptions);\n }, 0);\n }\n normalizeToNumberArray(input) { // Handles all formats in one place: \"10,20,30\", [10,20,30], \"[10,20,30]\"\n if (!input) return [];\n\n let arr;\n\n if (Array.isArray(input)) {\n arr = input;\n } else if (typeof input === \"string\") {\n const trimmed = input.trim();\n\n // handle \"[1,2,3]\"\n if (trimmed.startsWith(\"[\") && trimmed.endsWith(\"]\")) {\n try {\n arr = JSON.parse(trimmed);\n } catch {\n arr = [];\n }\n } else {\n // handle \"1,2,3\"\n arr = trimmed.split(\",\");\n }\n } else {\n return [];\n }\n\n return arr\n .map(v => Number(v))\n .filter(v => !isNaN(v))\n .sort((a, b) => a - b);\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\n private getPaginationStartIndex(): number {\n const startIndex = this.datasource?._paginationConfig?.paginationStartIndex;\n return isDefined(startIndex) && this.datasource?._paginationConfig?.type === 'page' ? Number(startIndex) : 1;\n }\n\n // this function returns an object which gives summary of the current page data (ex: In UI it is shown as 1 to 10 out of 50 records)\n getPageDetails(startIndex, endIndex, totalRecords) {\n this.rowSummary = (isDefined(startIndex) && isDefined(endIndex) && isDefined(totalRecords)) ? {\n startIndex: startIndex,\n endIndex: endIndex,\n totalRecords: totalRecords\n }: {};\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 if (this.allowpagesizechange) { // when default page size is not given then use maxResults instead of options.maxResults\n maxResults = this.maxResults;\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.getPageDetails(startIndex + 1, Math.min(startIndex + this.maxResults, newVal?.length), newVal?.length);\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 startIndex,\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 = Number(this.pagination.size) ? this.pagination.size : get(this.datasource.dataSet, this.pagination.size);\n this.pagination.numberOfElements = Number(this.pagination.numberOfElements) ? this.pagination.numberOfElements : get(this.datasource.dataSet, this.pagination.numberOfElements)\n if (this.pagination.numberOfElements > 0) {\n if (isDefined(this.pagination.number) && this.getPaginationStartIndex() === 1) { // 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 startIndex = (currentPage - 1) * this.maxResults;\n this.getPageDetails(startIndex + 1, startIndex + Number(this.pagination.numberOfElements), dataSize);\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 allowpagesizechange = this.parent.allowpagesizechange;\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() && !allowpagesizechange) {\n this.parent.statePersistence.removeWidgetState(this.parent, 'pagination');\n } else {\n if (unsupportedStatePersistenceTypes.indexOf(this.parent.navigation) < 0) {\n const state: { pagination: number; pagesize?: number } = { pagination: this.dn.currentPage };\n if (allowpagesizechange) {\n state.pagesize = this.maxResults;\n }\n this.parent.statePersistence.setWidgetState(this.parent, state);\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 - 1) + this.getPaginationStartIndex(),\n 'size': this.maxResults,\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 startIndex = (this.dn.currentPage - 1) * this.maxResults;\n this.getPageDetails(startIndex + 1 , startIndex + Number(this.pagination?.numberOfElements), this.pagination?.totalElements);\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.getPageDetails(startIndex + 1 , Math.min(startIndex + this.maxResults, this.__fullData?.length), this.__fullData?.length);\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 this.goToPage(event);\n } else if (this.dn.currentPage > this.pageCount) {\n this.dn.currentPage = this.pageCount;\n this.goToPage(event);\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 if(this.pagination?.next && this.datasource?.pagination) {\n this.datasource.pagination.isNext = false;\n this.datasource.pagination.isPrev = false;\n }\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 } else if (parts[0] === 'App' && parts[1] === 'activePage' && parts[2]?.includes('Variables')&& parts[3]) {\n bindPagingOptions = `App.activePage.${parts[2]}.${parts[3]}.pagination`;\n }\n if (!binddatasource && dataset && !datasetBoundExpr) {\n this.dataset = dataset;\n if (this._debouncedApplyDataset) {\n this._debouncedApplyDataset();\n }\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 if (this._debouncedApplyDataset) {\n this._debouncedApplyDataset();\n }\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 () => {\n if (this._debouncedApplyDataset) {\n this._debouncedApplyDataset();\n }\n }\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 let pageSize, prevPageSize;\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 if (data?.length) { // calculate Pagesize options based on actual page size\n if (this.isDataSourceHasPaging()) { // for Live variables\n const currentPageSize = get(data, 'pagination.size') || get(this.datasource, 'pagination.size'),\n totalElements = get(data, 'pagination.totalElements') || get(this.datasource, 'pagination.totalElements'),\n widgetState = this.parent.statePersistence.getWidgetState(this.parent);\n this.actualPageSize = widgetState?.actualpagesize || currentPageSize;\n this.actualPageSize = Number(this.actualPageSize) ? this.actualPageSize : get(this.datasource.dataSet, this.actualPageSize)\n if(this.defaultPageSizeOptions.length > 0){\n this.pageSizeOptions = [...this.defaultPageSizeOptions];\n }else{\n this.pageSizeOptions = range(this.actualPageSize, Math.max(this.actualPageSize + 1, this.actualPageSize + totalElements), this.actualPageSize); // here data has only that page data and pagesize has totalNoof Elements\n }\n if (widgetState?.selectedItem && widgetState.actualpagesize !== widgetState.pagesize) {\n if (!this.prevPageSize) {\n this.prevPageSize = this.actualPageSize || data?.length;\n }\n const updatedItems = this.handleStateParamsforNewPageSize(widgetState.selectedItem, this.prevPageSize, data?.length);\n if (updatedItems) {\n this.parent.statePersistence.setWidgetState(this.parent, {\n pagination: 1,\n pagesize: this.maxResults,\n actualpagesize: this.actualPageSize || this.maxResults,\n selectedItem: updatedItems\n })\n this.prevPageSize = undefined;\n }\n }\n } else {\n pageSize = this.parent.getActualPageSize();\n if(this.defaultPageSizeOptions.length > 0){\n this.pageSizeOptions = [...this.defaultPageSizeOptions];\n }else{\n this.pageSizeOptions = range(pageSize, data.length + pageSize, pageSize);\n }\n }\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 // change the selectedItems page number and index in the stateparams when pagesize is changed\n handleStateParamsforNewPageSize(\n selectedItem: { page: number; index: number }[],\n oldPageSize: number,\n newPageSize: number\n ): { page: number; index: number }[] {\n return selectedItem.map(({ page, index }) => {\n const absoluteIndex = (page - 1) * oldPageSize + index;\n const newPage = Math.floor(absoluteIndex / newPageSize) + 1; // back to 1-based\n const newIndex = absoluteIndex % newPageSize;\n\n return {\n page: newPage,\n index: newIndex\n };\n });\n }\n\n onDropdownKeydown(event, index) {\n const $items = $('ul#dropdown-basic a.dropdown-item');\n const maxIndex = this.pageSizeOptions.length - 1;\n let selectedOption;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'Tab':\n event.preventDefault();\n if (event.key === 'Tab' && event.shiftKey) {\n // Treat Shift+Tab as ArrowUp\n this.focusedIndex = (index - 1) < 0 ? maxIndex : index - 1;\n } else {\n // Treat Tab or ArrowDown as ArrowDown\n this.focusedIndex = (index + 1) > maxIndex ? 0 : index + 1;\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusedIndex = (index - 1) < 0 ? maxIndex : index - 1;\n break;\n\n case 'Enter':\n event.preventDefault();\n selectedOption = this.pageSizeOptions[this.focusedIndex];\n this.onPageSizeChange(event, selectedOption);\n this.closeDropdown();\n return;\n\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n return;\n\n default:\n return;\n }\n\n // Move focus after index is updated\n setTimeout(() => {\n $items.eq(this.focusedIndex)?.focus();\n });\n\n }\n\n closeDropdown() {\n // Close dropdown\n this.bsDropdown.hide();\n const $toggleButton = $('button[aria-controls=\"dropdown-basic\"]');\n $toggleButton.focus(); // Return focus to button\n }\n\n // Function gets called on dropdown open & close\n onOpenChange(isOpen) {\n if (isOpen) {\n this.focusedIndex = 0;\n setTimeout(() => {\n // manually focus the dropdown as dropdown has container=\"body\"\n const $items = $('ul#dropdown-basic a.dropdown-item');\n const $firstItem = $items.eq(this.focusedIndex);\n $firstItem?.focus();\n }, 0);\n }\n }\n onPageSizeChange($event, newPageSize) {\n const widgetState = this.parent.statePersistence.getWidgetState(this.parent);\n let updatedItems;\n if (widgetState?.selectedItem) {\n updatedItems = this.handleStateParamsforNewPageSize(widgetState.selectedItem, this.maxResults, +newPageSize);\n }\n this.actualPageSize = this.actualPageSize || this.maxResults;\n this.maxResults = +newPageSize;\n this.maxResultsEmitter.emit(this.maxResults);\n if (this.isDataSourceHasPaging() && this.datasource) {\n this.datasource.maxResults = this.maxResults;\n }\n if (updatedItems) {\n this.parent.statePersistence.setWidgetState(this.parent, {\n pagination: 1,\n pagesize: this.maxResults,\n actualpagesize: this.actualPageSize || this.maxResults,\n selectedItem: updatedItems\n })\n } else {\n this.parent.statePersistence.setWidgetState(this.parent, {\n pagination: 1,\n pagesize: this.maxResults,\n actualpagesize: this.actualPageSize || this.maxResults\n })\n }\n this.navigatePage('first', $event, true);\n this.calculatePagingValues();\n if(this.nativeElement.closest('popover-container, .popover')){\n $event.stopPropagation();\n this.bsDropdown.hide()\n }\n }\n\n onDropDownShown($event: any) {\n\n const container = $event?._element?.nativeElement as HTMLElement;\n if(!container) return;\n\n adjustVerticalPosition(\n $(container),\n this.nativeElement?.querySelector('.items-per-page div'),\n this.bsDropdown._dropdown,\n $(container?.querySelector('ul[id=\"dropdown-basic\"]'))\n );\n\n this.dropdownScrollHandler = () => {\n this.onDropdownScroll();\n };\n\n window.addEventListener('scroll', this.dropdownScrollHandler, true);\n }\n\n onDropdownScroll() {\n // on scroll boostrap is applying 3d translation to prevent from that added this dummy function\n return;\n }\n\n onDropdownHidden() {\n if (this.dropdownScrollHandler) {\n window.removeEventListener('scroll', this.dropdownScrollHandler, true);\n }\n this.dropdownScrollHandler = undefined!;\n }\n\n ngAfterViewInit() {\n const paginationElem = this.nativeElement as HTMLElement;\n paginationElem.onclick = (event) => {\n event.stopPropagation();\n };\n }\n\n ngOnDestroy() {\n if (this.dropdownScrollHandler) {\n window.removeEventListener('scroll', this.dropdownScrollHandler, true);\n }\n // MEMORY LEAK FIX: Clear initialization timeout if still pending\n if (this._initTimeoutId) {\n clearTimeout(this._initTimeoutId);\n this._initTimeoutId = null;\n }\n\n // MEMORY LEAK FIX: Complete EventEmitters\n if (this.resultEmitter) {\n this.resultEmitter.complete();\n }\n if (this.maxResultsEmitter) {\n this.maxResultsEmitter.complete();\n }\n\n // MEMORY LEAK FIX: Nullify debounced function closures\n this._debouncedApplyDataset = null;\n this._debouncedPageChanged = null;\n\n // MEMORY LEAK FIX: Clear data arrays and objects\n this.dataset = null;\n this.__fullData = null;\n this.result = null;\n this.filterFields = null;\n this.sortOptions = null;\n this.options = null;\n // MEMORY LEAK FIX: Clear page size options array\n if (this.pageSizeOptions) {\n this.pageSizeOptions = [];\n }\n if (this.defaultPageSizeOptions) {\n this.defaultPageSizeOptions = [];\n }\n\n // MEMORY LEAK FIX: Clear datasource reference\n this.datasource = null;\n\n // MEMORY LEAK FIX: Clear parent reference\n this.parent = null;\n\n // Call parent ngOnDestroy (sets isDestroyed = true)\n super.ngOnDestroy();\n }\n}\n","\n@if (navcontrols === 'Classic') {\n<ul class=\"pagination advanced {{navigationClass}}\">\n @if (allowpagesizechange && pageSizeOptions?.[0]<rowSummary?.totalRecords) {\n <li class=\"items-per-page\">\n <label [title]=\"appLocale.LABEL_ITEMS_PER_PAGE\" class=\"app-label\">{{appLocale.LABEL_ITEMS_PER_PAGE}} :</label>\n\n <div class=\"btn-group\" dropdown container=\"body\" (onShown)=\"onDropDownShown($event)\" (onHidden)=\"onDropdownHidden()\" (isOpenChange)=\"onOpenChange($event)\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn app-button dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n {{maxResults}} <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu pagesize-options\"\n role=\"menu\" aria-labelledby=\"button-basic\">\n @for (option of pageSizeOptions; track option; let i = $index) {\n <li role=\"menuitem\" [ngClass]=\"{ 'active': option == maxResults }\">\n <a class=\"dropdown-item\" (click)=\"onPageSizeChange($event, option)\" (keydown)=\"onDropdownKeydown($event, i)\"\n [attr.tabindex]=\"i === focusedIndex ? 0 : -1\">{{option}}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n @if (rowSummary?.totalRecords) {\n <li class=\"item-range\">\n <div>\n <span>{{rowSummary.startIndex}} - {{rowSummary.endIndex}}</span>\n <span>of</span>\n <span>{{rowSummary.totalRecords}}</span>\n </div>\n </li>\n }\n }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\n <li class=\"disabled\">\n <a [hidden]=\"isDisableCount\"> / {{pageCount}}</a>\n </li>\n }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (!(dataSize<=maxResults)) {\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 }\n @if (showrecordcount) {\n <li class=\"totalcount disabled\">\n <a href=\"javascript:void(0);\" tabindex=\"-1\" aria-disabled=\"true\">{{appLocale.LABEL_TOTAL_RECORDS}}: {{dataSize}}</a>\n </li>\n }\n</ul>\n}\n@if (navcontrols === 'Pager') {\n <ul class=\"pager {{navigationClass}}\">\n @if (allowpagesizechange && pageSizeOptions?.[0]<rowSummary?.totalRecords) {\n <li class=\"items-per-page\">\n <label [title]=\"appLocale.LABEL_ITEMS_PER_PAGE\" class=\"app-label\">{{appLocale.LABEL_ITEMS_PER_PAGE}} :</label>\n\n <div class=\"btn-group\" dropdown container=\"body\" (onShown)=\"onDropDownShown($event)\" (onHidden)=\"onDropdownHidden()\" (isOpenChange)=\"onOpenChange($event)\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn app-button dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n {{maxResults}} <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu pagesize-options\"\n role=\"menu\" aria-labelledby=\"button-basic\">\n @for (option of pageSizeOptions; track option; let i = $index) {\n <li role=\"menuitem\" [ngClass]=\"{ 'active': option == maxResults }\">\n <a class=\"dropdown-item\" (click)=\"onPageSizeChange($event, option)\" (keydown)=\"onDropdownKeydown($event, i)\"\n [attr.tabindex]=\"i === focusedIndex ? 0 : -1\">{{option}}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n @if (rowSummary?.totalRecords) {\n <li class=\"item-range\">\n <div>\n <span>{{rowSummary.startIndex}} - {{rowSummary.endIndex}}</span>\n <span>of</span>\n <span>{{rowSummary.totalRecords}}</span>\n </div>\n </li>\n }\n }\n@if (!(dataSize<=maxResults)) {\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 }\n </ul>\n}\n\n@if (navcontrols === 'Basic') {\n @if (allowpagesizechange && pageSizeOptions?.[0]<rowSummary?.totalRecords) {\n <div class=\"items-per-page\">\n <label [title]=\"appLocale.LABEL_ITEMS_PER_PAGE\" class=\"app-label\">{{appLocale.LABEL_ITEMS_PER_PAGE }} :</label>\n\n <div class=\"btn-group\" dropdown container=\"body\" (onShown)=\"onDropDownShown($event)\" (onHidden)=\"onDropdownHidden()\" (isOpenChange)=\"onOpenChange($event)\">\n <button id=\"button-basic\" dropdownToggle type=\"button\" class=\"btn app-button dropdown-toggle\"\n aria-controls=\"dropdown-basic\">\n {{maxResults}} <span class=\"caret\"></span>\n </button>\n <ul id=\"dropdown-basic\" *dropdownMenu class=\"dropdown-menu pagesize-options\"\n role=\"menu\" aria-labelledby=\"button-basic\">\n @for (option of pageSizeOptions; track option; let i = $index) {\n <li role=\"menuitem\" [ngClass]=\"{ 'active': option == maxResults }\">\n <a class=\"dropdown-item\" (click)=\"onPageSizeChange($event, option)\" (keydown)=\"onDropdownKeydown($event, i)\"\n [attr.tabindex]=\"i === focusedIndex ? 0 : -1\">{{option}}</a>\n </li>\n }\n </ul>\n </div>\n </div>\n @if (rowSummary?.totalRecords) {\n <div class=\"item-range\">\n <div>\n <span>{{rowSummary.startIndex}} - {{rowSummary.endIndex}}</span>\n <span>of</span>\n <span>{{rowSummary.totalRecords}}</span>\n </div>\n </div>\n }\n }\n @if (!(dataSize<=maxResults)) {\n <pagination class=\"pagination basic\" [ngClass]=\"navigationClass\" 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}\n\n@if (navcontrols === 'Basic' && showrecordcount) {\n <ul 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\n<ng-template #pageTemplate let-page>\n <span class=\"sr-only\" [attr.data-isacitvepage]=\"page.active\">{{'Page '}}</span>\n {{page.number}}\n @if (page.active) {\n <span class=\"sr-only\"> {{', Showing page ' + page.number + ' of ' + pageCount}}</span>\n }\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1968,7 +1968,14 @@
|
|
|
1968
1968
|
return;
|
|
1969
1969
|
}
|
|
1970
1970
|
/* if new columns to be rendered, prepare default fieldDefs for the data provided*/
|
|
1971
|
-
|
|
1971
|
+
const columnData = i2.getClonedObject(data);
|
|
1972
|
+
if (lodashEs.isArray(columnData)) {
|
|
1973
|
+
columnData.forEach(row => delete row['$$wmSourceListIndex']);
|
|
1974
|
+
}
|
|
1975
|
+
else if (lodashEs.isObject(columnData)) {
|
|
1976
|
+
delete columnData['$$wmSourceListIndex'];
|
|
1977
|
+
}
|
|
1978
|
+
this.prepareColDefs(columnData);
|
|
1972
1979
|
this.serverData = data;
|
|
1973
1980
|
this.setGridData(this.serverData);
|
|
1974
1981
|
}
|
|
@@ -2516,7 +2523,7 @@
|
|
|
2516
2523
|
static { this.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: TableComponent, isStandalone: true, selector: "[wmTable]", host: { listeners: { "keypress": "onKeyPress($event)" } }, providers: [
|
|
2517
2524
|
i4.provideAs(TableComponent, i1.NG_VALUE_ACCESSOR, true),
|
|
2518
2525
|
i4.provideAsWidgetRef(TableComponent)
|
|
2519
|
-
], queries: [{ propertyName: "rowExpansionTmpl", first: true, predicate: ["rowExpansionTmpl"], descendants: true }, { propertyName: "rowActionTmpl", predicate: ["rowActionTmpl"], descendants: true }, { propertyName: "filterTmpl", predicate: ["filterTmpl"], descendants: true }, { propertyName: "inlineWidgetTmpl", predicate: ["inlineWidgetTmpl"], descendants: true }, { propertyName: "inlineWidgetNewTmpl", predicate: ["inlineWidgetTmplNew"], descendants: true }, { propertyName: "customExprTmpl", predicate: ["customExprTmpl"], descendants: true }, { propertyName: "rowExpansionActionTmpl", predicate: ["rowExpansionActionTmpl"], descendants: true }], viewQueries: [{ propertyName: "dataNavigator", first: true, predicate: pagination.PaginationComponent, descendants: true, static: true }, { propertyName: "_tableElement", first: true, predicate: ["datagridElement"], descendants: true, static: true }, { propertyName: "rowActionsViewRef", first: true, predicate: ["rowActionsView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "filterViewRef", first: true, predicate: ["multiColumnFilterView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "inlineEditViewRef", first: true, predicate: ["inlineEditView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "inlineEditNewViewRef", first: true, predicate: ["inlineEditNewView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "customExprViewRef", first: true, predicate: ["customExprView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "rowDetailViewRef", first: true, predicate: ["rowDetailView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "rowExpansionActionViewRef", first: true, predicate: ["rowExpansionActionView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "dynamicTableRef", first: true, predicate: ["dynamicTable"], descendants: true, read: i0.ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "@if (title || subheading || iconclass || iconurl || exportOptions.length || _actions.header.length) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\" alt=\"Table icon\"></wm-app-icon>\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n @if (exportOptions.length || _actions.header.length) {\n <div class=\"panel-actions app-datagrid-actions\">\n @for (btn of _actions.header; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_header_' + index, {btn:btn})\">\n </ng-container>\n }\n @if (exportOptions.length) {\n <div wmMenu dropdown caption.bind=\"appLocale.LABEL_EXPORT\" autoclose=\"always\" attr.name=\"{{name}}-export\"\n dataset.bind=\"exportOptions\" select.event=\"export($item)\" menuposition=\"down,left\"></div>\n }\n </div>\n }\n </h3>\n </div>\n}\n<div class=\"app-datagrid\" #datagridElement></div>\n\n<div class=\"panel-footer clearfix\" [hidden]=\"!_actions.footer.length && (!shownavigation || (onDemandLoad && dataNavigator.isDisableNext)) \">\n <div class=\"app-datagrid-paginator\" [hidden]=\"(!dataNavigator?.dataSize && !dataNavigator.datasource?.pagination?.next) || !shownavigation || (onDemandLoad && dataNavigator.isDisableNext)\">\n <nav wmPagination show.bind=\"shownavigation\" navigationalign.bind=\"navigationalign\"\n navigationsize.bind=\"navigationSize\"\n navigation.bind=\"navControls\" showrecordcount.bind=\"showrecordcount\" maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\" directionlinks.bind=\"directionlinks\"></nav>\n </div>\n @if (_actions.footer.length) {\n <div class=\"app-datagrid-actions\">\n @for (btn of _actions.footer; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_footer_' + index, {btn:btn})\">\n </ng-container>\n }\n </div>\n }\n</div>\n\n<ng-template #buttonRef let-btn=\"btn\">\n <button wmButton caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n type=\"button\" shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\" [attr.aria-label]=\"btn.displayName\" disabled.bind=\"btn.disabled\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></button>\n</ng-template>\n\n<ng-template #anchorRef let-btn=\"btn\">\n <a wmAnchor caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\"\n hyperlink.bind=\"btn.hyperlink\" target.bind=\"btn.target\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></a>\n</ng-template>\n\n<div hidden>\n <ng-container #multiColumnFilterView></ng-container>\n\n <ng-container #inlineEditView></ng-container>\n\n <ng-container #inlineEditNewView></ng-container>\n\n <ng-container #rowActionsView></ng-container>\n\n <ng-container #rowExpansionActionView></ng-container>\n\n <ng-container #customExprView></ng-container>\n\n <ng-container #dynamicTable></ng-container>\n\n <ng-container #rowDetailView></ng-container>\n\n <div class=\"dynamic-table-container\"></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: i5.CommonModule }, { kind: "directive", type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: anchor.AnchorComponent, selector: "a[wmAnchor]", exportAs: ["wmAnchor"] }, { kind: "component", type: pagination.PaginationComponent, selector: "[wmPagination]", outputs: ["resultEmitter", "maxResultsEmitter"] }, { kind: "component", type: button.ButtonComponent, selector: "button[wmButton]", exportAs: ["wmButton"] }, { kind: "ngmodule", type: i6.BsDropdownModule }, { kind: "directive", type: i6__namespace.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: menu.MenuComponent, selector: "[wmMenu]" }, { kind: "component", type: i4.WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
2526
|
+
], queries: [{ propertyName: "rowExpansionTmpl", first: true, predicate: ["rowExpansionTmpl"], descendants: true }, { propertyName: "rowActionTmpl", predicate: ["rowActionTmpl"], descendants: true }, { propertyName: "filterTmpl", predicate: ["filterTmpl"], descendants: true }, { propertyName: "inlineWidgetTmpl", predicate: ["inlineWidgetTmpl"], descendants: true }, { propertyName: "inlineWidgetNewTmpl", predicate: ["inlineWidgetTmplNew"], descendants: true }, { propertyName: "customExprTmpl", predicate: ["customExprTmpl"], descendants: true }, { propertyName: "rowExpansionActionTmpl", predicate: ["rowExpansionActionTmpl"], descendants: true }], viewQueries: [{ propertyName: "dataNavigator", first: true, predicate: pagination.PaginationComponent, descendants: true, static: true }, { propertyName: "_tableElement", first: true, predicate: ["datagridElement"], descendants: true, static: true }, { propertyName: "rowActionsViewRef", first: true, predicate: ["rowActionsView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "filterViewRef", first: true, predicate: ["multiColumnFilterView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "inlineEditViewRef", first: true, predicate: ["inlineEditView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "inlineEditNewViewRef", first: true, predicate: ["inlineEditNewView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "customExprViewRef", first: true, predicate: ["customExprView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "rowDetailViewRef", first: true, predicate: ["rowDetailView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "rowExpansionActionViewRef", first: true, predicate: ["rowExpansionActionView"], descendants: true, read: i0.ViewContainerRef, static: true }, { propertyName: "dynamicTableRef", first: true, predicate: ["dynamicTable"], descendants: true, read: i0.ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0__namespace, template: "@if (title || subheading || iconclass || iconurl || exportOptions.length || _actions.header.length) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\" alt=\"Table icon\"></wm-app-icon>\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n @if (exportOptions.length || _actions.header.length) {\n <div class=\"panel-actions app-datagrid-actions\">\n @for (btn of _actions.header; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_header_' + index, {btn:btn})\">\n </ng-container>\n }\n @if (exportOptions.length) {\n <div wmMenu dropdown caption.bind=\"appLocale.LABEL_EXPORT\" autoclose=\"always\" attr.name=\"{{name}}-export\"\n dataset.bind=\"exportOptions\" select.event=\"export($item)\" menuposition=\"down,left\"></div>\n }\n </div>\n }\n </h3>\n </div>\n}\n<div class=\"app-datagrid\" #datagridElement></div>\n\n<div class=\"panel-footer clearfix\" [hidden]=\"!_actions.footer.length && (!shownavigation || (onDemandLoad && dataNavigator.isDisableNext)) \">\n <div class=\"app-datagrid-paginator\" [hidden]=\"(!dataNavigator?.dataSize && !dataNavigator.datasource?.pagination?.next) || !shownavigation || (onDemandLoad && dataNavigator.isDisableNext)\">\n <nav wmPagination show.bind=\"shownavigation\" navigationalign.bind=\"navigationalign\"\n navigationsize.bind=\"navigationSize\"\n navigation.bind=\"navControls\" showrecordcount.bind=\"showrecordcount\" maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\" directionlinks.bind=\"directionlinks\"></nav>\n </div>\n @if (_actions.footer.length) {\n <div class=\"app-datagrid-actions\">\n @for (btn of _actions.footer; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_footer_' + index, {btn:btn})\">\n </ng-container>\n }\n </div>\n }\n</div>\n\n<ng-template #buttonRef let-btn=\"btn\">\n <button wmButton caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n type=\"button\" shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\" [attr.aria-label]=\"btn.displayName\" disabled.bind=\"btn.disabled\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></button>\n</ng-template>\n\n<ng-template #anchorRef let-btn=\"btn\">\n <a wmAnchor caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\"\n hyperlink.bind=\"btn.hyperlink\" target.bind=\"btn.target\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></a>\n</ng-template>\n\n<div hidden>\n <ng-container #multiColumnFilterView></ng-container>\n\n <ng-container #inlineEditView></ng-container>\n\n <ng-container #inlineEditNewView></ng-container>\n\n <ng-container #rowActionsView></ng-container>\n\n <ng-container #rowExpansionActionView></ng-container>\n\n <ng-container #customExprView></ng-container>\n\n <ng-container #dynamicTable></ng-container>\n\n <ng-container #rowDetailView></ng-container>\n\n <div class=\"dynamic-table-container\"></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: i5.CommonModule }, { kind: "directive", type: i5__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: anchor.AnchorComponent, selector: "a[wmAnchor]", exportAs: ["wmAnchor"] }, { kind: "component", type: pagination.PaginationComponent, selector: "[wmPagination]", outputs: ["resultEmitter", "maxResultsEmitter"] }, { kind: "component", type: button.ButtonComponent, selector: "button[wmButton]", exportAs: ["wmButton"] }, { kind: "ngmodule", type: i6.BsDropdownModule }, { kind: "directive", type: i6__namespace.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: menu.MenuComponent, selector: "[wmMenu]" }, { kind: "component", type: i4.WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
2520
2527
|
}
|
|
2521
2528
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0__namespace, type: TableComponent, decorators: [{
|
|
2522
2529
|
type: i0.Component,
|
|
@@ -1958,7 +1958,14 @@ class TableComponent extends StylableComponent {
|
|
|
1958
1958
|
return;
|
|
1959
1959
|
}
|
|
1960
1960
|
/* if new columns to be rendered, prepare default fieldDefs for the data provided*/
|
|
1961
|
-
|
|
1961
|
+
const columnData = getClonedObject(data);
|
|
1962
|
+
if (isArray(columnData)) {
|
|
1963
|
+
columnData.forEach(row => delete row['$$wmSourceListIndex']);
|
|
1964
|
+
}
|
|
1965
|
+
else if (isObject(columnData)) {
|
|
1966
|
+
delete columnData['$$wmSourceListIndex'];
|
|
1967
|
+
}
|
|
1968
|
+
this.prepareColDefs(columnData);
|
|
1962
1969
|
this.serverData = data;
|
|
1963
1970
|
this.setGridData(this.serverData);
|
|
1964
1971
|
}
|
|
@@ -2506,7 +2513,7 @@ class TableComponent extends StylableComponent {
|
|
|
2506
2513
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: TableComponent, isStandalone: true, selector: "[wmTable]", host: { listeners: { "keypress": "onKeyPress($event)" } }, providers: [
|
|
2507
2514
|
provideAs(TableComponent, NG_VALUE_ACCESSOR, true),
|
|
2508
2515
|
provideAsWidgetRef(TableComponent)
|
|
2509
|
-
], queries: [{ propertyName: "rowExpansionTmpl", first: true, predicate: ["rowExpansionTmpl"], descendants: true }, { propertyName: "rowActionTmpl", predicate: ["rowActionTmpl"], descendants: true }, { propertyName: "filterTmpl", predicate: ["filterTmpl"], descendants: true }, { propertyName: "inlineWidgetTmpl", predicate: ["inlineWidgetTmpl"], descendants: true }, { propertyName: "inlineWidgetNewTmpl", predicate: ["inlineWidgetTmplNew"], descendants: true }, { propertyName: "customExprTmpl", predicate: ["customExprTmpl"], descendants: true }, { propertyName: "rowExpansionActionTmpl", predicate: ["rowExpansionActionTmpl"], descendants: true }], viewQueries: [{ propertyName: "dataNavigator", first: true, predicate: PaginationComponent, descendants: true, static: true }, { propertyName: "_tableElement", first: true, predicate: ["datagridElement"], descendants: true, static: true }, { propertyName: "rowActionsViewRef", first: true, predicate: ["rowActionsView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "filterViewRef", first: true, predicate: ["multiColumnFilterView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "inlineEditViewRef", first: true, predicate: ["inlineEditView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "inlineEditNewViewRef", first: true, predicate: ["inlineEditNewView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "customExprViewRef", first: true, predicate: ["customExprView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "rowDetailViewRef", first: true, predicate: ["rowDetailView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "rowExpansionActionViewRef", first: true, predicate: ["rowExpansionActionView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "dynamicTableRef", first: true, predicate: ["dynamicTable"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "@if (title || subheading || iconclass || iconurl || exportOptions.length || _actions.header.length) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\" alt=\"Table icon\"></wm-app-icon>\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n @if (exportOptions.length || _actions.header.length) {\n <div class=\"panel-actions app-datagrid-actions\">\n @for (btn of _actions.header; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_header_' + index, {btn:btn})\">\n </ng-container>\n }\n @if (exportOptions.length) {\n <div wmMenu dropdown caption.bind=\"appLocale.LABEL_EXPORT\" autoclose=\"always\" attr.name=\"{{name}}-export\"\n dataset.bind=\"exportOptions\" select.event=\"export($item)\" menuposition=\"down,left\"></div>\n }\n </div>\n }\n </h3>\n </div>\n}\n<div class=\"app-datagrid\" #datagridElement></div>\n\n<div class=\"panel-footer clearfix\" [hidden]=\"!_actions.footer.length && (!shownavigation || (onDemandLoad && dataNavigator.isDisableNext)) \">\n <div class=\"app-datagrid-paginator\" [hidden]=\"(!dataNavigator?.dataSize && !dataNavigator.datasource?.pagination?.next) || !shownavigation || (onDemandLoad && dataNavigator.isDisableNext)\">\n <nav wmPagination show.bind=\"shownavigation\" navigationalign.bind=\"navigationalign\"\n navigationsize.bind=\"navigationSize\"\n navigation.bind=\"navControls\" showrecordcount.bind=\"showrecordcount\" maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\" directionlinks.bind=\"directionlinks\"></nav>\n </div>\n @if (_actions.footer.length) {\n <div class=\"app-datagrid-actions\">\n @for (btn of _actions.footer; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_footer_' + index, {btn:btn})\">\n </ng-container>\n }\n </div>\n }\n</div>\n\n<ng-template #buttonRef let-btn=\"btn\">\n <button wmButton caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n type=\"button\" shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\" [attr.aria-label]=\"btn.displayName\" disabled.bind=\"btn.disabled\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></button>\n</ng-template>\n\n<ng-template #anchorRef let-btn=\"btn\">\n <a wmAnchor caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\"\n hyperlink.bind=\"btn.hyperlink\" target.bind=\"btn.target\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></a>\n</ng-template>\n\n<div hidden>\n <ng-container #multiColumnFilterView></ng-container>\n\n <ng-container #inlineEditView></ng-container>\n\n <ng-container #inlineEditNewView></ng-container>\n\n <ng-container #rowActionsView></ng-container>\n\n <ng-container #rowExpansionActionView></ng-container>\n\n <ng-container #customExprView></ng-container>\n\n <ng-container #dynamicTable></ng-container>\n\n <ng-container #rowDetailView></ng-container>\n\n <div class=\"dynamic-table-container\"></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AnchorComponent, selector: "a[wmAnchor]", exportAs: ["wmAnchor"] }, { kind: "component", type: PaginationComponent, selector: "[wmPagination]", outputs: ["resultEmitter", "maxResultsEmitter"] }, { kind: "component", type: ButtonComponent, selector: "button[wmButton]", exportAs: ["wmButton"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: MenuComponent, selector: "[wmMenu]" }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
2516
|
+
], queries: [{ propertyName: "rowExpansionTmpl", first: true, predicate: ["rowExpansionTmpl"], descendants: true }, { propertyName: "rowActionTmpl", predicate: ["rowActionTmpl"], descendants: true }, { propertyName: "filterTmpl", predicate: ["filterTmpl"], descendants: true }, { propertyName: "inlineWidgetTmpl", predicate: ["inlineWidgetTmpl"], descendants: true }, { propertyName: "inlineWidgetNewTmpl", predicate: ["inlineWidgetTmplNew"], descendants: true }, { propertyName: "customExprTmpl", predicate: ["customExprTmpl"], descendants: true }, { propertyName: "rowExpansionActionTmpl", predicate: ["rowExpansionActionTmpl"], descendants: true }], viewQueries: [{ propertyName: "dataNavigator", first: true, predicate: PaginationComponent, descendants: true, static: true }, { propertyName: "_tableElement", first: true, predicate: ["datagridElement"], descendants: true, static: true }, { propertyName: "rowActionsViewRef", first: true, predicate: ["rowActionsView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "filterViewRef", first: true, predicate: ["multiColumnFilterView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "inlineEditViewRef", first: true, predicate: ["inlineEditView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "inlineEditNewViewRef", first: true, predicate: ["inlineEditNewView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "customExprViewRef", first: true, predicate: ["customExprView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "rowDetailViewRef", first: true, predicate: ["rowDetailView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "rowExpansionActionViewRef", first: true, predicate: ["rowExpansionActionView"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "dynamicTableRef", first: true, predicate: ["dynamicTable"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "@if (title || subheading || iconclass || iconurl || exportOptions.length || _actions.header.length) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n @if (iconclass || iconurl) {\n <wm-app-icon [iconclass]=\"iconclass\" [iconurl]=\"iconurl\" [iconClasses]=\"iconurl ? 'panel-image-icon' : 'panel-icon'\" alt=\"Table icon\"></wm-app-icon>\n }\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n @if (exportOptions.length || _actions.header.length) {\n <div class=\"panel-actions app-datagrid-actions\">\n @for (btn of _actions.header; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_header_' + index, {btn:btn})\">\n </ng-container>\n }\n @if (exportOptions.length) {\n <div wmMenu dropdown caption.bind=\"appLocale.LABEL_EXPORT\" autoclose=\"always\" attr.name=\"{{name}}-export\"\n dataset.bind=\"exportOptions\" select.event=\"export($item)\" menuposition=\"down,left\"></div>\n }\n </div>\n }\n </h3>\n </div>\n}\n<div class=\"app-datagrid\" #datagridElement></div>\n\n<div class=\"panel-footer clearfix\" [hidden]=\"!_actions.footer.length && (!shownavigation || (onDemandLoad && dataNavigator.isDisableNext)) \">\n <div class=\"app-datagrid-paginator\" [hidden]=\"(!dataNavigator?.dataSize && !dataNavigator.datasource?.pagination?.next) || !shownavigation || (onDemandLoad && dataNavigator.isDisableNext)\">\n <nav wmPagination show.bind=\"shownavigation\" navigationalign.bind=\"navigationalign\"\n navigationsize.bind=\"navigationSize\"\n navigation.bind=\"navControls\" showrecordcount.bind=\"showrecordcount\" maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\" directionlinks.bind=\"directionlinks\"></nav>\n </div>\n @if (_actions.footer.length) {\n <div class=\"app-datagrid-actions\">\n @for (btn of _actions.footer; track btn; let index = $index) {\n <ng-container\n [ngTemplateOutlet]=\"btn.widgetType === 'button' ? buttonRef : anchorRef\"\n [ngTemplateOutletContext]=\"{btn:btn}\"\n [ngTemplateOutletInjector]=\"createCustomInjector('actions_footer_' + index, {btn:btn})\">\n </ng-container>\n }\n </div>\n }\n</div>\n\n<ng-template #buttonRef let-btn=\"btn\">\n <button wmButton caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n type=\"button\" shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\" [attr.aria-label]=\"btn.displayName\" disabled.bind=\"btn.disabled\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></button>\n</ng-template>\n\n<ng-template #anchorRef let-btn=\"btn\">\n <a wmAnchor caption.bind=\"btn.displayName\" show.bind=\"btn.show\" class.bind=\"btn.class\" iconclass.bind=\"btn.iconclass\" (click)=\"invokeActionEvent($event, btn.action)\"\n [ngClass]=\"{'btn-sm': spacing === 'condensed', 'disabled-new': btn.key === 'addNewRow' && (isGridEditMode || isLoading)}\"\n shortcutkey.bind=\"btn.shortcutkey\" tabindex.bind=\"btn.tabindex\" hint.bind=\"btn.title\"\n hyperlink.bind=\"btn.hyperlink\" target.bind=\"btn.target\" conditionalclass.bind=\"btn.conditionalclass\" conditionalstyle.bind=\"btn.conditionalstyle\"></a>\n</ng-template>\n\n<div hidden>\n <ng-container #multiColumnFilterView></ng-container>\n\n <ng-container #inlineEditView></ng-container>\n\n <ng-container #inlineEditNewView></ng-container>\n\n <ng-container #rowActionsView></ng-container>\n\n <ng-container #rowExpansionActionView></ng-container>\n\n <ng-container #customExprView></ng-container>\n\n <ng-container #dynamicTable></ng-container>\n\n <ng-container #rowDetailView></ng-container>\n\n <div class=\"dynamic-table-container\"></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AnchorComponent, selector: "a[wmAnchor]", exportAs: ["wmAnchor"] }, { kind: "component", type: PaginationComponent, selector: "[wmPagination]", outputs: ["resultEmitter", "maxResultsEmitter"] }, { kind: "component", type: ButtonComponent, selector: "button[wmButton]", exportAs: ["wmButton"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: MenuComponent, selector: "[wmMenu]" }, { kind: "component", type: WmAppIconComponent, selector: "wm-app-icon", inputs: ["icon", "iconclass", "iconurl", "defaultIconClass", "defaultClasses", "iconStyle", "alt"] }] }); }
|
|
2510
2517
|
}
|
|
2511
2518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: TableComponent, decorators: [{
|
|
2512
2519
|
type: Component,
|