@wavemaker/app-ng-runtime 11.14.1-rc.233 → 11.14.1-rc.236
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 +8 -8
- package/components/base/esm2022/pipes/custom-pipes.mjs +10 -10
- package/components/base/fesm2022/index.mjs +8 -8
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/pipes/custom-pipes.d.ts +5 -5
- package/components/basic/search/bundles/index.umd.js +4 -4
- package/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
- package/components/basic/search/esm2022/search.component.mjs +3 -3
- package/components/basic/search/fesm2022/index.mjs +4 -4
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/scrollable.directive.d.ts +1 -1
- package/components/data/list/bundles/index.umd.js +33 -2
- package/components/data/list/esm2022/list.component.mjs +34 -3
- package/components/data/list/fesm2022/index.mjs +33 -2
- package/components/data/list/fesm2022/index.mjs.map +1 -1
- package/components/data/list/list.component.d.ts +4 -0
- package/components/data/table/bundles/index.umd.js +34 -3
- package/components/data/table/esm2022/table.component.mjs +35 -4
- package/components/data/table/fesm2022/index.mjs +34 -3
- package/components/data/table/fesm2022/index.mjs.map +1 -1
- package/components/data/table/table.component.d.ts +4 -0
- package/npm-shrinkwrap.json +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +3 -2
- package/runtime/base/esm2022/services/app.manager.service.mjs +4 -3
- package/runtime/base/fesm2022/index.mjs +3 -2
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/list/src/list.props.ts","../../../../../projects/components/widgets/data/list/src/list-item.directive.ts","../../../../../projects/components/widgets/data/list/src/list.component.ts","../../../../../projects/components/widgets/data/list/src/list.component.html","../../../../../projects/components/widgets/data/list/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-list',\n new Map(\n [\n ['boundarylinks', {value: false, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['dateformat', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datasource', PROP_ANY],\n ['direction', {value: 'vertical', ...PROP_STRING}],\n ['directionlinks', {value: true, ...PROP_BOOLEAN}],\n ['disableitem', PROP_BOOLEAN],\n ['enablereorder', PROP_BOOLEAN],\n ['forceellipses', {value: true, ...PROP_BOOLEAN}],\n ['groupby', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', PROP_STRING],\n ['listclass', {value: 'list-group', ...PROP_STRING}],\n ['multiselect', PROP_BOOLEAN],\n ['loadingdatamsg', {value : 'Loading...', ...PROP_STRING}],\n ['loadingicon', {value : 'fa fa-circle-o-notch', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['maxsize', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navigation', PROP_STRING],\n ['navigationalign', {value: 'left', ...PROP_STRING}],\n ['nodatamessage', {value : 'No data found', ...PROP_STRING}],\n ['ondemandmessage', {value : 'Load More', ...PROP_STRING}],\n ['orderby', PROP_STRING],\n ['paginationclass', PROP_STRING],\n ['pagesize', PROP_NUMBER],\n ['pulltorefresh', {value: false, ...PROP_BOOLEAN}],\n ['selectfirstitem', PROP_BOOLEAN],\n ['selectionlimit', PROP_NUMBER],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showrecordcount', PROP_BOOLEAN],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['allowpagesizechange', {value: false, ...PROP_BOOLEAN}],\n ['pagesizeoptions', {value : '5,10,20,50,100', ...PROP_STRING}]\n\n ]\n )\n );\n};\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n Injector,\n Input,\n OnInit,\n Optional,\n ViewContainerRef\n} from '@angular/core';\n\nimport {Observable, Subject} from 'rxjs';\n\nimport {$watch, App} from '@wm/core';\n\nimport {ListComponent} from './list.component';\nimport {widgetIdGenerator} from \"@wm/components/base\";\nimport {BaseFormComponent} from \"@wm/components/input/base-form\";\n\ndeclare const $;\n\n@Directive({\n standalone: true,\n selector: '[wmListItem]',\n exportAs: 'listItemRef'\n})\nexport class ListItemDirective implements OnInit, AfterViewInit {\n\n public item;\n public context;\n public destroy: Subject<any> = new Subject();\n public destroy$: Observable<any> = this.destroy.asObservable();\n public nativeElement: HTMLElement;\n public readonly listComponent: ListComponent;\n\n private itemClass = '';\n private _currentItemWidgets = {};\n private viewContainerRef: ViewContainerRef;\n /**\n * To avoid re-rendering of widget, passing unique id as contextKey to createCustomInjector\n */\n protected trackId = widgetIdGenerator.nextUid();\n\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disable-item') disableItem = false;\n\n @HostListener('focus')\n onFocus() {\n // maintains which element is focused/selected most recently.\n this.listComponent.lastSelectedItem = this;\n }\n\n get $index() {\n return this.context.$index;\n }\n\n get $even() {\n return this.context.even;\n }\n\n get $odd() {\n return this.context.odd;\n }\n\n get $first() {\n return this.context.first;\n }\n\n get $last() {\n return this.context.last;\n }\n\n get currentItemWidgets () {\n const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));\n return Object.assign(this._currentItemWidgets, componentElements.reduce((result, comp: any) => {\n result[comp.widget.name] = comp.widget;\n return result;\n }, {}));\n }\n\n @Input() set wmListItem(val) {\n this.item = val;\n }\n private _viewParent = inject(ListComponent, {optional: true});\n constructor(private inj: Injector, elRef: ElementRef, private app: App) {\n this.viewContainerRef = inj.get(ViewContainerRef);\n this.nativeElement = elRef.nativeElement;\n this.listComponent = this._viewParent;\n // this.context = (<NgForOfContext<ListItemDirective>>(<any>inj).view.context);\n this.context = (this.inj as any)._lView[8];\n //this.context = (this.viewContainerRef as any)._hostLView.find(t => t && !!t.$implicit);\n this.itemClassWatcher(this.listComponent);\n this.disableItemWatcher(this.listComponent);\n $(this.nativeElement).data('listItemContext', this);\n }\n\n private registerWatch(expression: string, callback: Function) {\n // Removing ngFor context as the same properties are availble on listitem scope.\n // passing viewparent context for accessing varibales and widgets.\n //[CSP]: expression will be generated in the component as e.g. 'item.className'\n this.destroy$.subscribe($watch(expression, (this.listComponent as any).viewParent, this, callback));\n }\n\n private itemClassWatcher(listComponent: ListComponent) {\n if (listComponent.binditemclass) {\n this.registerWatch(listComponent.binditemclass, nv => this.itemClass = nv || '');\n } else {\n this.itemClass = listComponent.itemclass;\n }\n }\n\n private disableItemWatcher($list: ListComponent) {\n if ($list.binddisableitem) {\n this.registerWatch($list.binddisableitem, nv => this.disableItem = nv || false);\n } else {\n this.disableItem = $list.disableitem || false;\n }\n }\n\n private setUpCUDHandlers() {\n const $editItem = this.nativeElement.querySelector('.edit-list-item');\n const $deleteItem = this.nativeElement.querySelector('.delete-list-item');\n\n if ($editItem) {\n // Triggered on click of edit action\n $editItem.addEventListener('click', evt => {\n this.listComponent.update();\n });\n }\n\n if ($deleteItem) {\n // Triggered on click of delete action\n $deleteItem.addEventListener('click', evt => {\n this.listComponent.delete();\n });\n }\n }\n ngOnInit() {\n if (this.listComponent.mouseEnterCB) {\n this.nativeElement.addEventListener('mouseenter', ($event) => {\n this.listComponent.invokeEventCallback('mouseenter', {widget: this, $event});\n });\n }\n if (this.listComponent.mouseLeaveCB) {\n this.nativeElement.addEventListener('mouseleave', ($event) => {\n this.listComponent.invokeEventCallback('mouseleave', {widget: this, $event});\n });\n }\n // adding item attribute on every list item\n $(this.nativeElement).attr('listitemindex', this.$index);\n }\n\n ngAfterViewInit() {\n this.setUpCUDHandlers();\n const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));\n componentElements.forEach((component: any) => {\n if(component.widget instanceof BaseFormComponent) {\n if(!component.widget.$attrs.get('datavaluesource.bind')) {\n component.widget.datavaluesource = this.listComponent['datasource'];\n }\n }\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {\n APPLY_STYLES_TYPE,\n configureDnD,\n DEBOUNCE_TIMES,\n extractDataSourceName,\n getOrderedDataset,\n groupData,\n handleHeaderClick,\n NAVIGATION_TYPE,\n provideAsWidgetRef,\n StylableComponent,\n styler,\n TextContentDirective,\n ToDatePipe,\n toggleAllHeaders,\n unsupportedStatePersistenceTypes,\n WidgetRef\n} from \"@wm/components/base\";\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren\n} from '@angular/core';\n\nimport {Subscription} from 'rxjs';\n\nimport {\n $appDigest,\n $invokeWatchers,\n App,\n AppDefaults,\n DataSource,\n generateGUId,\n getClonedObject,\n isDataSourceEqual,\n isDefined,\n isMobile,\n isObject,\n noop,\n PaginationService,\n setListClass,\n StatePersistence,\n switchClass\n} from '@wm/core';\nimport {PaginationComponent} from '@wm/components/data/pagination';\nimport {ButtonComponent} from '@wm/components/input/button';\n\nimport {registerProps} from './list.props';\nimport {ListItemDirective} from './list-item.directive';\nimport {ListAnimator} from './list.animator';\nimport {\n clone,\n cloneDeep,\n forEach,\n get,\n has,\n includes,\n isArray,\n isEmpty,\n isEqual,\n isNumber,\n isString,\n isUndefined,\n last,\n max,\n min,\n pullAllWith,\n pullAt,\n remove,\n some,\n toNumber\n} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-livelist app-panel';\nconst WIDGET_CONFIG = {widgetType: 'wm-list', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, PaginationComponent, ListItemDirective],\n selector: 'div[wmList]',\n templateUrl: './list.component.html',\n providers: [\n provideAsWidgetRef(ListComponent)\n ]\n})\nexport class ListComponent extends StylableComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n @ContentChild('listTemplate') listTemplate: TemplateRef<ElementRef>;\n\n @ContentChild('listLeftActionTemplate') listLeftActionTemplate: TemplateRef<ElementRef>;\n @ContentChild('listRightActionTemplate') listRightActionTemplate: TemplateRef<ElementRef>;\n @ContentChildren(ButtonComponent) btnComponents;\n\n @ViewChild(PaginationComponent) dataNavigator;\n @ViewChildren(ListItemDirective) listItems: QueryList<ListItemDirective>;\n public noDataFound: boolean;\n public lastSelectedItem: ListItemDirective;\n public fieldDefs: Array<any>;\n public disableitem;\n public navigation: string;\n public navigationalign: string;\n public pagesize: number;\n public dataset: any;\n public multiselect: boolean;\n public selectfirstitem: boolean;\n public orderby: string;\n public loadingicon: string;\n public paginationclass: string;\n public ondemandmessage: string;\n public loadingdatamsg: string;\n public selectionlimit: number;\n public infScroll: boolean;\n public enablereorder: boolean;\n public itemsperrow: string;\n public itemclass: string;\n public selectedItemWidgets: Array<WidgetRef> | WidgetRef;\n public variableInflight;\n public name;\n public currentPage;\n public direction;\n public tabindex;\n public handleHeaderClick: Function;\n public toggleAllHeaders: void;\n public groupby: string;\n public collapsible: string;\n public datePipe: ToDatePipe;\n public binditemclass: string;\n public binddisableitem: string;\n public binddataset: string;\n public mouseEnterCB: string;\n public mouseLeaveCB: string;\n public pulltorefresh: boolean;\n public title: string;\n public subheading: string;\n public iconclass: string;\n public listclass: any;\n public statehandler: any;\n public currentIndex: number;\n public titleId: string;\n public allowpagesizechange: boolean = false;\n public pagesizeoptions: string;\n public updatedPageSize;\n public actualPageSize;\n _isDependent;\n private itemsPerRowClass: string;\n private firstSelectedItem: ListItemDirective;\n private navigatorMaxResultWatch: Subscription;\n private navigatorResultWatch: Subscription;\n private navControls: string;\n private onDemandLoad: boolean;\n private _items: Array<any>;\n private dataNavigatorWatched: boolean;\n private datasource: any;\n private showNavigation: boolean;\n private reorderProps: any;\n private app: any;\n private appDefaults: any;\n private ngZone: NgZone;\n private statePersistence: StatePersistence;\n private paginationService: PaginationService;\n private binddatasource: string;\n private match: string;\n private dateformat: string;\n private groupedData: any;\n private cdRef: ChangeDetectorRef;\n private promiseResolverFn: Function;\n private propsInitPromise: Promise<any>;\n private $ulEle: any;\n private _listAnimator: ListAnimator;\n private _listenerDestroyers: Array<any>;\n private debouncedFetchNextDatasetOnScroll: Function;\n private isDataChanged: boolean;\n private isListElementMovable: boolean;\n private ariaText: String;\n private _pageLoad;\n private _selectedItemsExist;\n\n private touching;\n private touched;\n\n constructor(\n inj: Injector,\n cdRef: ChangeDetectorRef,\n datePipe: ToDatePipe,\n app: App,\n appDefaults: AppDefaults,\n ngZone: NgZone,\n @Attribute('itemclass.bind') binditemclass: string,\n @Attribute('disableitem.bind') binddisableitem: string,\n @Attribute('dataset.bind') binddataset: string,\n @Attribute('datasource.bind') binddatasource: string,\n @Attribute('mouseenter.event') mouseEnterCB: string,\n @Attribute('mouseleave.event') mouseLeaveCB: string,\n statePersistence: StatePersistence,\n paginationService: PaginationService,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n let resolveFn: Function = noop;\n const propsInitPromise = new Promise(res => resolveFn = res);\n super(inj, WIDGET_CONFIG, explicitContext, propsInitPromise);\n this.propsInitPromise = propsInitPromise;\n this.promiseResolverFn = resolveFn;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n this.cdRef = cdRef;\n this.ngZone = ngZone;\n this.datePipe = datePipe;\n this.statePersistence = statePersistence;\n this.paginationService = paginationService;\n this._pageLoad = true;\n\n this.binditemclass = binditemclass;\n this.binddisableitem = binddisableitem;\n this.binddataset = binddataset;\n this.mouseEnterCB = mouseEnterCB;\n this.mouseLeaveCB = mouseLeaveCB;\n this.binddatasource = binddatasource;\n\n this.app = app;\n this.appDefaults = appDefaults;\n this.variableInflight = false;\n\n this.noDataFound = !binddataset;\n this.titleId = 'wmlist-' + generateGUId();\n\n // Updates pagination, filter, sort etc options for service and crud variables\n this._listenerDestroyers = [\n this.app.subscribe('check-state-persistence-options', options => {\n let dataSourceName = get(this.datasource, 'name');\n // in Prefabs, this.datasource is not resolved at the time of variable invocation, so additional check is required.\n if (!dataSourceName) {\n dataSourceName = extractDataSourceName(this.binddatasource);\n }\n if (get(options, 'variable.name') !== dataSourceName) {\n return;\n }\n this.handleStateParams(options);\n }),\n // Show loading status based on the variable life cycle\n this.app.subscribe('toggle-variable-state', this.handleLoading.bind(this)),\n this.app.subscribe('setup-cud-listener', param => {\n if (this.nativeElement.getAttribute('name') !== param) {\n return;\n }\n this._isDependent = true;\n })\n ];\n }\n\n public get selecteditem() {\n if (this.multiselect) {\n return getClonedObject(this._items);\n }\n if (isEmpty(this._items)) {\n return {};\n }\n return getClonedObject(this._items[0]);\n }\n\n public set selecteditem(items) {\n this._items.length = 0;\n this.deselectListItems();\n\n if (isArray(items)) {\n items.forEach(item => this.selectItem(item));\n } else {\n this.selectItem(items);\n }\n $appDigest();\n }\n\n /**\n * Returns list of widgets present on list item by considering name and index of the widget.\n * If we did'nt pass index, it returns array of all the widgets which are matching to widget name\n * @param widgteName: Name of the widget\n * @param index: Index of the widget\n */\n public getWidgets(widgteName: string, index?: number) {\n let $target;\n const retVal = [];\n\n if (!widgteName) {\n return;\n }\n\n if (!isDefined(index)) {\n forEach(this.listItems.toArray(), (el) => {\n $target = get(el.currentItemWidgets, widgteName);\n if ($target) {\n retVal.push($target);\n }\n });\n\n return retVal;\n }\n index = +index || 0;\n\n $target = get(this.listItems.toArray(), index);\n\n if ($target) {\n return [get($target.currentItemWidgets, widgteName)];\n }\n }\n\n // returns listitem reference by index value. This refers to the same method getListItemByIndex.\n public getItem(index: number) {\n return this.getListItemByIndex(index);\n }\n\n /**\n * Returns index of listItem(listItemDirective / listItemObject)\n * If item is a directive, index is fetched from listItems\n * If item is an object, index is fetched from fieldDefs\n */\n public getIndex(item: any) {\n if (item instanceof ListItemDirective) {\n return this.getListItemIndex(item);\n } else if (item) {\n return this.fieldDefs.findIndex((obj) => isEqual(obj, item));\n }\n }\n public getUpdatedPageSize() {\n return this.updatedPageSize;\n }\n\n create() {\n if (this._isDependent) {\n this.triggerWMEvent('insert');\n }\n }\n\n editRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('update', listItem);\n }\n }\n\n update(item?) {\n this.editRow(item);\n }\n\n deleteRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('delete', listItem);\n }\n }\n\n delete(item?) {\n this.deleteRow(item);\n }\n\n handleLoading(data) {\n const dataSource = this.datasource;\n if (dataSource && dataSource.execute(DataSource.Operation.IS_API_AWARE) && isDataSourceEqual(data.variable, dataSource)) {\n this.ngZone.run(() => {\n this.handleStateParams(data);\n this.variableInflight = data.active;\n // Fix for [WMS-23772] Update nodatafound flag once the response is recieved from the server\n const totalEle = data.data?.pagination?.totalElements;\n if (!isUndefined(totalEle)) {\n this.noDataFound = totalEle === 0 ? true : false;\n } else { // totalelements is undefined\n this.noDataFound = isEmpty(data.data?.data);\n }\n });\n }\n }\n\n public triggerListItemSelection($el: JQuery<HTMLElement>, $event: Event) {\n if ($el && $el[0]) {\n const listItemContext = $el.data('listItemContext');\n // Trigger click event only if the list item is from the corresponding list.\n if (listItemContext.listComponent === this) {\n this.onItemClick($event, listItemContext);\n }\n }\n }\n\n // this method is called form other data widgets like table.\n public execute(operation, options) {\n if ([DataSource.Operation.IS_API_AWARE, DataSource.Operation.IS_PAGEABLE, DataSource.Operation.SUPPORTS_SERVER_FILTER].includes(operation)) {\n return false;\n }\n return this.datasource.execute(operation, options);\n }\n\n public handleKeyDown($event, action: string) {\n $event.stopPropagation();\n if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains('form-control') || $event.target.classList.contains('note-editable')) && $event.keyCode === 32)) {\n $event.preventDefault();\n }\n\n const listItems: QueryList<ListItemDirective> = this.listItems;\n\n let presentIndex: number = this.getListItemIndex(this.lastSelectedItem);\n\n if (this.multiselect) {\n const firstIndex: number = this.getListItemIndex(this.firstSelectedItem);\n const selectCount: number = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n if (action === 'selectPrev') {\n if (presentIndex > 0) {\n if ((presentIndex <= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex > firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n } else if (action === 'selectNext') {\n if (presentIndex < listItems.length - 1) {\n if ((presentIndex >= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex < firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n }\n }\n if (action === 'focusPrev') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex);\n if (presentIndex === 0) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const prevElt = this.getListItemByIndex(presentIndex - 1);\n prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex - 1], arr[presentIndex]] = [arr[presentIndex], arr[presentIndex - 1]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'focusNext') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex) : (listItems.length - 1);\n if (presentIndex === this.listItems.length - 1) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const nextElt = this.getListItemByIndex(presentIndex + 1);\n nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex], arr[presentIndex + 1]] = [arr[presentIndex + 1], arr[presentIndex]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex + 2;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex + 1) : (listItems.length - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'select') {\n // if the enter click is pressed on the item which is not the last selected item, the find the item from which the event is originated.\n if (presentIndex === -1 || !$($event.target).closest(this.lastSelectedItem.nativeElement)) {\n const $li = $($event.target).closest('li.app-list-item');\n const $ul = $li.closest('ul.app-livelist-container');\n presentIndex = $ul.find('li.app-list-item').index($li);\n }\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n } else if (action === 'space') {\n if (!this.enablereorder) {\n return;\n }\n this.isListElementMovable = !this.isListElementMovable;\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n this.currentIndex = presentIndex + 1;\n if (this.isListElementMovable) {\n this.ariaText = `Item ${this.currentIndex} grabbed, current position `;\n this.$ulEle.data('oldIndex', presentIndex);\n } else {\n this.ariaText = `Item ${this.currentIndex} dropped, final position `;\n this.onUpdate($event, undefined, presentIndex);\n }\n }\n }\n getActualPageSize() {\n return this.actualPageSize || 20;\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n if (!nv && this.binddatasource && !this.datasource) {\n return;\n }\n this.onDataSetChange(nv);\n } else if (key === 'datasource') {\n if(this.allowpagesizechange){\n this.datasource.maxResults = this.pagesize || this.datasource.maxResults\n }\n if (this.dataset) {\n this.onDataSetChange(this.dataset);\n }\n } else if (key === 'navigation') {\n // Support for older projects where navigation type was advanced instead of classic\n if (nv === 'Advanced') {\n this.navigation = 'Classic';\n return;\n }\n switchClass(this.nativeElement, nv, ov);\n this.onNavigationTypeChange(nv);\n if (this.dataNavigator) {\n this.dataNavigator.navigationClass = this.paginationclass;\n }\n } else if (key === 'itemsperrow') {\n setListClass(this);\n } else if (key === 'tabindex') {\n return;\n } else if (key === 'pulltorefresh' && nv) {\n this.app.notify('pullToRefresh:enable');\n this.subscribeToPullToRefresh();\n } else if (key === 'paginationclass') {\n if (this.dataNavigator) {\n // Adding setTimeout because in pagination component updateNavSize method is overriding navigationclass\n setTimeout(() => this.dataNavigator.navigationClass = nv);\n }\n } else if (key === 'pagesize') {\n this.actualPageSize = nv; // maintain default page size to calculate pagesize options\n this.setDefaultPageSize(nv)\n } else if (key === 'enablereorder') {\n if (nv && this.$ulEle) {\n this.$ulEle.attr('aria-describedby', this.titleId);\n this.configureDnD();\n this.$ulEle.sortable('enable');\n } else if (this.$ulEle && !nv) {\n this.$ulEle.removeAttr('aria-describedby');\n this.$ulEle.sortable('disable');\n }\n } else if (key === 'allowpagesizechange') {\n this.allowpagesizechange = nv;\n } else if(key === 'pagesizeoptions') {\n this.pagesizeoptions = nv;\n this.setDefaultPageSize(nv)\n }else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n setDefaultPageSize(nv: any){\n if (this.allowpagesizechange) {\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'pagesize')) {\n nv = get(widgetState, 'pagesize');\n this.pagesize = nv; // updating the default pagesize to user selected pagesize\n } else if (this.pagesizeoptions) {\n nv = this.pagesizeoptions?.split(',').map(Number).sort((a, b) => a - b)[0]\n this.pagesize = nv;\n }\n }\n this.updatedPageSize = nv;\n this.dataNavigator.updatedPageSize = nv;\n\n this.dataNavigator.options = {\n maxResults: nv\n };\n this.dataNavigator.widget.maxResults = nv;\n this.dataNavigator.maxResults = nv;\n }\n\n public onItemClick(evt: any, $listItem: ListItemDirective) {\n let selectCount: number;\n\n if (!$listItem.disableItem) {\n this.firstSelectedItem = this.firstSelectedItem || $listItem;\n // Setting selectCount value based number of items selected.\n selectCount = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n\n // Handling multiselect for mobile device\n if (this.multiselect && isMobile()) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if ((evt.ctrlKey || evt.metaKey) && this.multiselect) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if (evt.shiftKey && this.multiselect) {\n let first = $listItem.context.index;\n let last = this.firstSelectedItem.context.index;\n\n // if first is greater than last, then swap values\n if (first > last) {\n last = [first, first = last][0];\n }\n if (this.checkSelectionLimit(last - first)) {\n this.clearSelectedItems();\n this.listItems.forEach(($liItem: ListItemDirective) => {\n const index = $liItem.context.index;\n if (index >= first && index <= last) {\n this.toggleListItemSelection($liItem);\n }\n });\n this.lastSelectedItem = $listItem;\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n\n } else {\n if (!$listItem.isActive || selectCount > 1) {\n this.clearSelectedItems();\n this.toggleListItemSelection($listItem);\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n }\n }\n $appDigest();\n }\n }\n\n // Empty the list content on clear\n public clear() {\n this.updateFieldDefs([]);\n }\n\n /**\n * deselects item in the list.\n * @param val: index | model of the list item.\n */\n public deselectItem(val: any) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (listItem && listItem.isActive) {\n this.toggleListItemSelection(listItem);\n }\n }\n\n /**\n * selects item in the list.\n * @param val: index | model of the list item.\n */\n public selectItem(val, statePersistenceTriggered?) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (!listItem) {\n return;\n }\n if (!listItem.isActive) {\n this.toggleListItemSelection(listItem, statePersistenceTriggered);\n }\n // focus the element.\n listItem.nativeElement.focus();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.handleHeaderClick = noop;\n setTimeout(() => {\n this.debouncedFetchNextDatasetOnScroll = this.paginationService.debouncedFetchNextDatasetOnScroll(this.dataNavigator, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME, this);\n }, 0);\n this._items = [];\n this.fieldDefs = [];\n this.reorderProps = {\n minIndex: null,\n maxIndex: null\n };\n }\n\n ngAfterViewInit() {\n this.promiseResolverFn();\n this.propsInitPromise.then(() => {\n super.ngAfterViewInit();\n this.setUpCUDHandlers();\n this.selectedItemWidgets = this.multiselect ? [] : {};\n var ele = $(this.nativeElement).find('.app-livelist-container');\n\n if (this.enablereorder && !this.groupby) {\n if (ele) {\n ele.attr('aria-describedby', this.titleId);\n }\n this.configureDnD();\n }\n if (!this.enablereorder) {\n if (ele) {\n ele.removeAttr('aria-describedby');\n }\n }\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n setListClass(this);\n });\n this.setupHandlers();\n const $ul = this.nativeElement.querySelector('ul.app-livelist-container');\n styler($ul as HTMLElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n if (this.enablereorder) {\n if ($ul) {\n $ul.setAttribute('aria-describedby', this.titleId);\n }\n }\n if (!this.enablereorder) {\n if ($ul) {\n $ul.removeAttribute('aria-describedby');\n }\n }\n }\n\n ngOnDestroy() {\n if (this._listAnimator && this._listAnimator.$btnSubscription) {\n this._listAnimator.$btnSubscription.unsubscribe();\n }\n this._listenerDestroyers.forEach(d => d && d());\n super.ngOnDestroy();\n }\n\n ngOnDetach() {\n super.ngOnDetach();\n this._pageLoad = true;\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n // tap and doubleTap events are not getting propagated.So, using mouse events instead.\n const touchToMouse = {\n tap: 'click',\n doubletap: 'dblclick'\n };\n if (includes(['click', 'tap', 'dblclick', 'doubletap'], eventName)) {\n this.eventManager.addEventListener(\n this.nativeElement,\n touchToMouse[eventName] || eventName,\n (evt) => {\n const target = $(evt.target).closest('.app-list-item');\n if (target.length) {\n const listItemContext: ListItemDirective = target.data('listItemContext');\n if (!listItemContext.disableItem) {\n this.invokeEventCallback(eventName, {\n widget: listItemContext,\n $event: evt,\n item: listItemContext.item\n });\n }\n }\n }\n );\n }\n }\n\n private getConfiguredState() {\n const mode = this.statePersistence.computeMode(this.statehandler);\n return mode && mode.toLowerCase();\n }\n\n private handleStateParams(options) {\n if (this._pageLoad && this.getConfiguredState() !== 'none') {\n this._pageLoad = false;\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'pagination')) {\n options.options = options.options || {};\n options.options.page = widgetState.pagination;\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n }\n\n private triggerWMEvent(eventName, item?) {\n $invokeWatchers(true);\n // If we have multiselect for the livelist(List with form template), in run mode deleting a record is getting failed. Becuase the selecteditem will be array of objects. So consider the last object.\n let row = this.multiselect ? last(this.selecteditem) : this.selecteditem;\n if (item) {\n row = item;\n }\n this.app.notify('wm-event', {eventName, widgetName: this.name, row: row});\n }\n\n private resetNavigation() {\n this.showNavigation = false;\n this.navControls = undefined;\n this.infScroll = false;\n this.onDemandLoad = false;\n }\n\n private enableBasicNavigation() {\n this.navControls = NAVIGATION_TYPE.BASIC;\n this.showNavigation = true;\n }\n\n private enableInlineNavigation() {\n this.navControls = NAVIGATION_TYPE.INLINE;\n }\n\n private enableClassicNavigation() {\n this.navControls = NAVIGATION_TYPE.CLASSIC;\n this.showNavigation = true;\n }\n\n private enablePagerNavigation() {\n this.navControls = NAVIGATION_TYPE.PAGER;\n this.showNavigation = true;\n }\n\n private setNavigationTypeNone() {\n this.navControls = NAVIGATION_TYPE.NONE;\n this.showNavigation = false;\n }\n\n private enableInfiniteScroll() {\n this.infScroll = true;\n }\n\n private enableOnDemandLoad() {\n this.onDemandLoad = true;\n this.showNavigation = true;\n }\n\n /**\n * Sets Navigation type for the list.\n * @param type\n */\n private onNavigationTypeChange(type) {\n this.resetNavigation();\n switch (type) {\n case NAVIGATION_TYPE.BASIC:\n this.enableBasicNavigation();\n break;\n case NAVIGATION_TYPE.INLINE:\n this.enableInlineNavigation();\n break;\n case NAVIGATION_TYPE.ADVANCED:\n case NAVIGATION_TYPE.CLASSIC:\n this.enableClassicNavigation();\n break;\n case NAVIGATION_TYPE.PAGER:\n this.enablePagerNavigation();\n break;\n case NAVIGATION_TYPE.NONE :\n this.setNavigationTypeNone();\n break;\n case NAVIGATION_TYPE.SCROLL:\n this.enableInfiniteScroll();\n break;\n case NAVIGATION_TYPE.ONDEMAND:\n this.enableOnDemandLoad();\n break;\n }\n }\n\n /**\n * Update fieldDefs property, fieldDefs is the model of the List Component.\n * fieldDefs is an Array type.\n * @param newVal\n */\n private updateFieldDefs(newVal: Array<any>) {\n if (this.infScroll || this.onDemandLoad) {\n [this.fieldDefs, this.currentPage] = this.paginationService.updateFieldsOnPagination(this, newVal);\n } else {\n this.fieldDefs = newVal;\n }\n\n if (this.orderby) {\n this.fieldDefs = getOrderedDataset(this.fieldDefs, this.orderby);\n }\n if (this.groupby) {\n this.groupedData = groupData(this, this.fieldDefs, this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, undefined, this.appDefaults);\n }\n\n if (!this.fieldDefs.length) {\n this.noDataFound = true;\n this.selecteditem = undefined;\n }\n $appDigest();\n this.listItems.setDirty();\n }\n\n private onDataChange(newVal) {\n // Check for newVal is not empty\n if (!isEmpty(newVal)) {\n\n this.noDataFound = false;\n this.isDataChanged = true;\n\n if (this.datasource && this.datasource.execute(DataSource.Operation.IS_API_AWARE)) {\n // clone the the data in case of live and service variables to prevent the two-way binding for these variables.\n newVal = cloneDeep(newVal);\n }\n\n if (isObject(newVal) && !isArray(newVal)) {\n newVal = isEmpty(newVal) ? [] : [newVal];\n }\n\n if (isString(newVal)) {\n newVal = newVal.split(',');\n }\n\n // if the page number is greater than 1 on initial load then we render the first page.\n if (this.datasource && this.datasource.owner === 'App' && (this.infScroll || this.onDemandLoad) && !this.currentPage && this.datasource.execute(DataSource.Operation.GET_PAGING_OPTIONS).number > 0) {\n newVal = this.datasource.execute(DataSource.Operation.LIST_RECORDS, {\n 'page': 1\n });\n }\n\n if (isArray(newVal)) {\n if (newVal.length) {\n this.invokeEventCallback('beforedatarender', {$data: newVal});\n }\n this.updateFieldDefs(newVal);\n }\n } else {\n this.updateFieldDefs([]);\n }\n }\n\n // Updates the dataSource when pagination is enabled for the Component.\n private setupDataSource() {\n const dataNavigator = this.dataNavigator;\n\n dataNavigator.options = {\n maxResults: this.pagesize || 20\n };\n\n this.dataNavigatorWatched = true;\n\n if (this.navigatorResultWatch) {\n this.navigatorResultWatch.unsubscribe();\n }\n /*Register a watch on the \"result\" property of the \"dataNavigator\" so that the paginated data is displayed in the live-list.*/\n this.navigatorResultWatch = dataNavigator.resultEmitter.subscribe((newVal: any) => {\n this.onDataChange(newVal);\n }, true);\n /*De-register the watch if it is exists */\n if (this.navigatorMaxResultWatch) {\n this.navigatorMaxResultWatch.unsubscribe();\n }\n /*Register a watch on the \"maxResults\" property of the \"dataNavigator\" so that the \"pageSize\" is displayed in the live-list.*/\n this.navigatorMaxResultWatch = dataNavigator.maxResultsEmitter.subscribe((val) => {\n this.pagesize = val;\n });\n\n dataNavigator.maxResults = this.pagesize || 20;\n this.removePropertyBinding('dataset');\n // when list having \"datasetboundexpr\" attr indicates that list is bound to item context\n // when dataset is bound to \"item.FIELD\" then item context is passed as the datasource.\n const datasetBoundExpr = this.getAttr('datasetboundexpr');\n this.dataNavigator.setBindDataSet(\n this.binddataset,\n this.viewParent,\n datasetBoundExpr ? this.context : this.datasource,\n this.dataset,\n this.binddatasource,\n datasetBoundExpr,\n this.statehandler\n );\n }\n\n private onDataSetChange(newVal) {\n if (get(this.datasource, 'category') === 'wm.Variable' && this.getConfiguredState() !== 'none' && this._pageLoad) {\n const widgetState = this.statePersistence.getWidgetState(this);\n this._pageLoad = false;\n if (this.allowpagesizechange) { // maintain updated page size in the statePersistence\n if (get(widgetState, 'pagination') || get(widgetState, 'pagesize')) {\n this.dataNavigator.pageChanged({page: widgetState.pagination || 1, pagesize: widgetState.pagesize}, true);\n }\n } else {\n if (get(widgetState, 'pagination')) {\n this.dataNavigator.pageChanged({page: widgetState.pagination}, true);\n }\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n if (!this.dataNavigatorWatched) {\n if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n this.setupDataSource();\n } else {\n this.onDataChange(newVal);\n }\n } else if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n // If navigation is already setup and datasource is changed, update the datasource on navigation\n this.dataNavigator.setDataSource(this.datasource);\n }\n }\n\n // All the ListItem's Active state is set to false.\n private deselectListItems() {\n this.listItems.forEach(item => item.isActive = false);\n }\n\n // Deselect all the ListItems and clear the selecteditem(InOutBound Property model)\n private clearSelectedItems() {\n this.deselectListItems();\n this._items.length = 0;\n $appDigest();\n }\n\n /**\n * return the ListItemDirective instance by checking the equality of the model.\n * @param listModel: model to be searched for\n * @returns ListItem if the model is matched else return null.\n */\n private getListItemByModel(listModel): ListItemDirective {\n return this.listItems.find((listItem) => {\n let itemObj = listItem.item;\n if (this.groupby && !has(listModel, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded while comparing model.\n itemObj = clone(itemObj);\n delete itemObj._groupIndex;\n }\n if (isEqual(itemObj, listModel)) {\n return true;\n }\n }) || null;\n }\n\n private updateSelectedItemsWidgets(statePersistenceTriggered?) {\n let obj = {}, widgetState;\n const pageNum = get(this.dataNavigator, 'dn.currentPage') || 1;\n if (this.getConfiguredState() !== 'none') {\n // remove previously configured selected items for current page and construct new ones later below.\n widgetState = this.statePersistence.getWidgetState(this) || {};\n if (get(widgetState, 'selectedItem')) {\n // when multiselect is on and an item is selected without pressing CTRL, previously selected items in state should be empty.\n if (this.multiselect && this.selecteditem.length === 1) {\n widgetState.selectedItem = [];\n } else {\n remove(widgetState.selectedItem, function (selectedItem: any) {\n return selectedItem.page === pageNum;\n });\n }\n }\n }\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).length = 0;\n }\n this.listItems.forEach((item: ListItemDirective, index) => {\n if (item.isActive) {\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).push(item.currentItemWidgets);\n } else {\n this.selectedItemWidgets = item.currentItemWidgets;\n }\n obj = {page: pageNum, index: index};\n if (get(widgetState, 'selectedItem') && this.multiselect) {\n if (!some(widgetState.selectedItem, obj)) {\n widgetState.selectedItem.push(obj);\n }\n } else {\n widgetState.selectedItem = [obj];\n }\n }\n });\n if (this.getConfiguredState() !== 'none' && !statePersistenceTriggered) {\n if (unsupportedStatePersistenceTypes.indexOf(this.navigation) < 0) {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n this.statePersistence.setWidgetState(this, {'selectedItem': widgetState.selectedItem});\n } else {\n console.warn('Retain State handling on Widget ' + this.name + ' is not supported for current pagination type.');\n }\n }\n }\n\n /**\n * Selects the listItem and updates selecteditem property.\n * If the listItem is already a selected item then deselects the item.\n * @param {ListItemDirective} $listItem: Item to be selected of deselected.\n */\n private toggleListItemSelection($listItem: ListItemDirective, statePersistenceTriggered?) {\n // item is not allowed to get selected if it is disabled.\n if ($listItem && !$listItem.disableItem) {\n let item = $listItem.item;\n if (this.groupby && has(item, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded from selecteditem.\n item = clone(item);\n delete item._groupIndex;\n }\n if ($listItem.isActive) {\n this._items = pullAllWith(this._items, [item], isEqual);\n $listItem.isActive = false;\n } else {\n // if multiselect is false, clear the selectItem list before adding an item to the selectItem list.\n if (!this.multiselect) {\n this.clearSelectedItems();\n }\n this._items.push(item);\n this.invokeEventCallback('select', {widget: $listItem, $data: item});\n $listItem.isActive = true;\n }\n this.updateSelectedItemsWidgets(statePersistenceTriggered);\n }\n }\n\n /**\n * Method is Invoked when the model for the List Widget is changed.\n * @param {QueryList<ListItemDirective>} listItems\n */\n private onListRender(listItems: QueryList<ListItemDirective>) {\n // Added render callback event. This method(onListRender) is calling multiple times so checking isDatachanged flag because this falg is changed whenever new data is rendered.\n if (this.isDataChanged) {\n // Whenever dataset is changed, trigger watchers to evaluate listitem bind expressions.\n $invokeWatchers(true);\n this.invokeEventCallback('render', {$data: this.fieldDefs});\n }\n if (this.isDataChanged && this.getConfiguredState() !== 'none' && listItems.length && this._selectedItemsExist) {\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = false;\n const selectedItemsLength = isArray(this.selecteditem) ? this.selecteditem.length : toNumber(!isEmpty(this.selecteditem));\n const currentPage = get(this.dataNavigator, 'dn.currentPage') || 1;\n widgetState.pagination = widgetState.pagination || 1;\n // to prevent item selection from being triggered more than once\n if (selectedItemsLength !== widgetState.selectedItem.length && widgetState.pagination === currentPage) {\n widgetState.selectedItem.forEach((item) => {\n if (item.page === currentPage) {\n this.selectItem(item.index, true);\n }\n });\n }\n }\n }\n const selectedItems = isArray(this.selecteditem) ? this.selecteditem : [this.selecteditem];\n\n this.firstSelectedItem = this.lastSelectedItem = null;\n\n // don't select first item if multi-select is enabled and at least item is already selected in the list.\n // don't select first item if state information has selected items\n if (listItems.length && this.selectfirstitem && !(this._items.length && this.multiselect) && this._selectedItemsExist !== false) {\n const $firstItem: ListItemDirective = listItems.first;\n\n if (\n !$firstItem.disableItem &&\n this.isDataChanged &&\n // \"infinite scroll\" or \"load on demand\" is enabled and at least one item is selected then dont alter the selected list items.\n !(\n (this.infScroll || this.onDemandLoad) &&\n this._items.length\n )\n ) {\n this.clearSelectedItems();\n this.firstSelectedItem = this.lastSelectedItem = $firstItem;\n // selecting the first record\n this.selectItem(0);\n }\n } else {\n this.deselectListItems();\n selectedItems.forEach(selecteditem => {\n const listItem: ListItemDirective = this.getListItemByModel(selecteditem);\n if (listItem) {\n listItem.isActive = true;\n this.lastSelectedItem = listItem;\n // focus the active element\n listItem.nativeElement.focus();\n }\n });\n }\n\n if (this.fieldDefs.length && this.infScroll) {\n const smoothScrollEl = this.$element.closest('[wmsmoothscroll]');\n // In case of mobile app when modal exists, and list items height is greater than the modal content provide ccontainer a scrollable height\n const modalBody = this.$element.closest('.modal-body');\n const listHt = this.$element.find('ul').height();\n const modalHt = window.innerHeight - 140;\n if (isMobile() && modalBody.length && listHt > modalHt) {\n this.$element.css('height', modalHt + 'px');\n }\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n\n }\n\n this.isDataChanged = false;\n }\n\n private setupHandlers() {\n this.listItems.changes.subscribe(listItems => {\n this.onListRender(listItems);\n this.cdRef.detectChanges();\n });\n // handle click event in capturing phase.\n this.nativeElement.querySelector('ul.app-livelist-container').addEventListener('click', ($event) => {\n let target = $($event.target).closest('.app-list-item');\n // Recursively find the current list item\n while (target.get(0) && (target.closest('ul.app-livelist-container').get(0) !== $event.currentTarget)) {\n target = target.parent().closest('.app-list-item');\n }\n this.triggerListItemSelection(target, $event);\n }, true);\n }\n\n // Triggers on drag start while reordering.\n private onReorderStart(evt, ui) {\n ui.placeholder.height(ui.item.height());\n this.$ulEle.data('oldIndex', ui.item.index());\n }\n\n // Triggers during sorting\n private onSort(evt, ui) {\n // In case of infinite scroll, when the element doesn't have scroll enabled\n // on dragging the element to last item's position manually trigger loading of next items\n if (this.infScroll) {\n const lastItemOffset = this.$ulEle.find(`[listitemindex=${this.fieldDefs.length - 1}]`).offset();\n if (lastItemOffset && lastItemOffset.top < ui.offset.top) {\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n this.debouncedFetchNextDatasetOnScroll();\n }\n }\n }\n\n // Triggers after the sorting.\n private onUpdate(evt, ui, presentIndex?) {\n const data = this.fieldDefs;\n // If ui is not present then it is called from drag and drop using keyboard\n const newIndex = ui === undefined ? presentIndex : ui.item.index();\n const oldIndex = this.$ulEle.data('oldIndex');\n\n const minIndex = min([newIndex, oldIndex]);\n const maxIndex = max([newIndex, oldIndex]);\n\n const draggedItem = pullAt(data, oldIndex)[0];\n // Modify the data list only if we find a draggedItem\n if (draggedItem) {\n if (this.getConfiguredState() !== 'none') {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n }\n\n this.reorderProps.minIndex = min([minIndex, this.reorderProps.minIndex]);\n this.reorderProps.maxIndex = max([maxIndex, this.reorderProps.maxIndex]);\n\n data.splice(newIndex, 0, draggedItem);\n\n this.cdRef.markForCheck();\n this.cdRef.detectChanges();\n const $changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: data[newIndex]\n };\n this.invokeEventCallback('reorder', {$event: evt, $data: data, $changedItem});\n this.$ulEle.removeData('oldIndex');\n }\n }\n\n // configures reordering the list items.\n private configureDnD() {\n let appendTo;\n const modalEl = $(document).find('.modal');\n if (this.getAttr('height')) { // when height is applied to the list, append should be the ul's parent as scroll is applied to the parent\n appendTo = 'parent';\n } else if (modalEl.length) { // In case of dialog, appendTo should be the modal ele\n appendTo = modalEl[modalEl.length - 1];\n } else { // As default append to should be body\n appendTo = 'body';\n }\n\n const options = {\n appendTo: appendTo,\n };\n\n const $el = $(this.nativeElement);\n this.$ulEle = $el.find('.app-livelist-container');\n\n configureDnD(this.$ulEle, options, this.onReorderStart.bind(this), this.onUpdate.bind(this), this.onSort.bind(this));\n\n this.$ulEle.droppable({'accept': '.app-list-item'});\n\n\n\n }\n\n // returns true if the selection limit is reached.\n private checkSelectionLimit(count: number) {\n return (!this.selectionlimit || count < this.selectionlimit);\n }\n\n // returns listitem reference by index value.\n private getListItemByIndex(index: number): ListItemDirective {\n return this.listItems.toArray()[index];\n }\n\n /**\n * return index of an (listItemDirective) in the listItem\n * @param {ListItemDirective} item\n * @returns {number}\n */\n private getListItemIndex(item: ListItemDirective) {\n return this.listItems.toArray().indexOf(item);\n }\n\n /**\n * Returns ListItem Reference based on the input provided.\n * @param val: index | model of the list item.\n * @returns {ListItemDirective}\n */\n private getItemRefByIndexOrModel(val: any): ListItemDirective {\n let listItem: ListItemDirective;\n if (isNumber(val)) {\n listItem = this.getListItemByIndex(val);\n } else {\n listItem = this.getListItemByModel(val);\n }\n return listItem;\n }\n\n private beforePaginationChange($event, $index) {\n this.invokeEventCallback('paginationchange', {$event, $index});\n }\n\n trackByFn($index: number) {\n return $index; // Return a unique identifier for each item\n }\n\n // Invoke the datasource variable by default when pulltorefresh event is not specified.\n private subscribeToPullToRefresh() {\n this._listenerDestroyers.push(this.app.subscribe('pulltorefresh', () => {\n if (this.datasource && this.datasource.listRecords) {\n this.datasource.listRecords();\n }\n }));\n }\n\n private setUpCUDHandlers() {\n const $addItem = document.getElementsByClassName(\"add-list-item\")[0];\n if ($addItem) {\n // Triggered on click of add action\n $addItem.addEventListener('click', evt => {\n this.create();\n });\n }\n }\n}\n","@if (title || subheading || iconclass) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" aria-hidden=\"true\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </h3>\n </div>\n}\n\n@if (navigation === 'Inline' && !noDataFound) {\n <div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\" aria-label=\"Page navigation\">\n <ul class=\"pager\">\n <li class=\"previous\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisablePrevious : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('prev', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\">\n <i class=\"wi wi-chevron-left\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Previous page {{dataNavigator.isDisablePrevious ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n </div>\n}\n@if (navigation === 'Inline' && !noDataFound) {\n <div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\"> {{'Page ' + dataNavigator.dn.currentPage + ' of ' + dataNavigator.pageCount }}</div>\n}\n\n<div>\n @if (enablereorder) {\n <div id={{titleId}} class=\"sr-only\">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n }\n\n @if (listItems && enablereorder && currentIndex) {\n <div aria-live=\"assertive\" class=\"sr-only\" >\n {{ariaText + currentIndex + ' of ' + listItems.length}}\n </div>\n }\n</div>\n\n<ul [attr.tabindex]=\"tabindex\" class=\"app-livelist-container clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}} {{listclass}}\" role=\"list\"\n (keydown.enter)=\"handleKeyDown($event, 'select')\"\n\n (keydown.space)=\"handleKeyDown($event, 'space')\"\n\n (keydown.arrowup)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowdown)=\"handleKeyDown($event, 'focusNext')\"\n (keydown.arrowleft)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowright)=\"handleKeyDown($event, 'focusNext')\"\n\n (keydown.shift.arrowup)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowdown)=\"handleKeyDown($event, 'selectNext')\"\n (keydown.shift.arrowleft)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowright)=\"handleKeyDown($event, 'selectNext')\"\n [hidden]=\"noDataFound && !variableInflight\"\n >\n @if (!groupby) {\n @for (item of fieldDefs; track item) {\n <li class=\"app-list-item {{direction === 'horizontal' ? '' : itemsPerRowClass}}\" [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\"\n #listItemRef=\"listItemRef\"\n [attr.tabindex]=\"tabindex\"\n role=\"listitem\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('falt_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n }\n } @else {\n @for (groupObj of groupedData; track groupObj; let groupIndex = $index) {\n <li class=\"app-list-item-group clearfix\">\n <ul [attr.tabindex]=\"tabindex\" class=\"list-group item-group\" [ngClass]=\"listclass\">\n <li class=\"app-list-item-header list-item list-group-header\" (click)=\"handleHeaderClick($event)\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4>{{groupObj.key}}\n <div class=\"header-action\">\n @if (collapsible) {\n <i class=\"app-icon wi action wi-chevron-up\"></i>\n }\n @if (showcount) {\n <span class=\"label label-default\">{{groupObj.data.length}}</span>\n }\n </div>\n </h4>\n </li>\n <li class=\"list-group-container\">\n <ul class=\"list-group clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}}\">\n @for (item of groupObj.data; track trackByFn($index, item)) {\n <li [attr.tabindex]=\"tabindex\"\n class=\"app-list-item group-list-item {{itemsPerRowClass}}\"\n [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\" #listItemRef=\"listItemRef\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('group_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n }\n </ul>\n </li>\n </ul>\n </li>\n }\n }\n <ng-container [ngTemplateOutlet]=\"listLeftActionTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listRightActionTemplate\"></ng-container>\n</ul>\n\n@if (noDataFound && !variableInflight) {\n <div class=\"no-data-msg\" [textContent]=\"nodatamessage\"></div>\n}\n\n@if (variableInflight && !pulltorefresh) {\n <div class=\"loading-data-msg\">\n <span>\n <i class=\"app-icon panel-icon fa-spin\" aria-hidden=\"true\" [ngClass]=\"loadingicon\"></i>\n <span class=\"sr-only\">Loading</span>\n <span class=\"loading-text\" [textContent]=\"loadingdatamsg\"></span>\n </span>\n </div>\n}\n\n@if (navigation === 'Inline' && !noDataFound) {\n <div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisableNext\">\n <ul class=\"pager\">\n <li class=\"next\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisableNext : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('next', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisableNext\">\n <i class=\"wi wi-chevron-right\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Next page {{dataNavigator.isDisableNext ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n </div>\n}\n\n@if (navigation !== 'None') {\n <div class=\"panel-footer\" [hidden]=\"!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator?.dataSize <= pagesize && !allowpagesizechange) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)\">\n <nav wmPagination\n navigationalign.bind=\"navigationalign\"\n navigation.bind=\"navControls\"\n showrecordcount.bind=\"showrecordcount\"\n maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\"\n directionlinks.bind=\"directionlinks\"\n show.bind=\"!onDemandLoad\"\n paginationchange.event=\"beforePaginationChange($event, $index)\"\n ></nav>\n @if (onDemandLoad) {\n <a href=\"javascript:void(0);\"\n (click)=\"dataNavigator.navigatePage('next', $event)\"\n class=\"app-button btn btn-block\"\n [ngClass]=\"paginationclass\"\n [textContent]=\"ondemandmessage\"\n ></a>\n }\n </div>\n}\n\n<!--This template will be displayed when groupby is specified-->\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/data/list/src/list.props.ts","../../../../../projects/components/widgets/data/list/src/list-item.directive.ts","../../../../../projects/components/widgets/data/list/src/list.component.ts","../../../../../projects/components/widgets/data/list/src/list.component.html","../../../../../projects/components/widgets/data/list/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-list',\n new Map(\n [\n ['boundarylinks', {value: false, ...PROP_BOOLEAN}],\n ['class', PROP_STRING],\n ['collapsible', PROP_BOOLEAN],\n ['dateformat', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datasource', PROP_ANY],\n ['direction', {value: 'vertical', ...PROP_STRING}],\n ['directionlinks', {value: true, ...PROP_BOOLEAN}],\n ['disableitem', PROP_BOOLEAN],\n ['enablereorder', PROP_BOOLEAN],\n ['forceellipses', {value: true, ...PROP_BOOLEAN}],\n ['groupby', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['itemclass', {value: '', ...PROP_STRING}],\n ['itemsperrow', PROP_STRING],\n ['listclass', {value: 'list-group', ...PROP_STRING}],\n ['multiselect', PROP_BOOLEAN],\n ['loadingdatamsg', {value : 'Loading...', ...PROP_STRING}],\n ['loadingicon', {value : 'fa fa-circle-o-notch', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['maxsize', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navigation', PROP_STRING],\n ['navigationalign', {value: 'left', ...PROP_STRING}],\n ['nodatamessage', {value : 'No data found', ...PROP_STRING}],\n ['ondemandmessage', {value : 'Load More', ...PROP_STRING}],\n ['orderby', PROP_STRING],\n ['paginationclass', PROP_STRING],\n ['pagesize', PROP_NUMBER],\n ['pulltorefresh', {value: false, ...PROP_BOOLEAN}],\n ['selectfirstitem', PROP_BOOLEAN],\n ['selectionlimit', PROP_NUMBER],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcount', PROP_BOOLEAN],\n ['showrecordcount', PROP_BOOLEAN],\n ['statehandler', {value: 'none', ...PROP_STRING}],\n ['subheading', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['allowpagesizechange', {value: false, ...PROP_BOOLEAN}],\n ['pagesizeoptions', {value : '5,10,20,50,100', ...PROP_STRING}]\n\n ]\n )\n );\n};\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n Injector,\n Input,\n OnInit,\n Optional,\n ViewContainerRef\n} from '@angular/core';\n\nimport {Observable, Subject} from 'rxjs';\n\nimport {$watch, App} from '@wm/core';\n\nimport {ListComponent} from './list.component';\nimport {widgetIdGenerator} from \"@wm/components/base\";\nimport {BaseFormComponent} from \"@wm/components/input/base-form\";\n\ndeclare const $;\n\n@Directive({\n standalone: true,\n selector: '[wmListItem]',\n exportAs: 'listItemRef'\n})\nexport class ListItemDirective implements OnInit, AfterViewInit {\n\n public item;\n public context;\n public destroy: Subject<any> = new Subject();\n public destroy$: Observable<any> = this.destroy.asObservable();\n public nativeElement: HTMLElement;\n public readonly listComponent: ListComponent;\n\n private itemClass = '';\n private _currentItemWidgets = {};\n private viewContainerRef: ViewContainerRef;\n /**\n * To avoid re-rendering of widget, passing unique id as contextKey to createCustomInjector\n */\n protected trackId = widgetIdGenerator.nextUid();\n\n @HostBinding('class.active') isActive = false;\n @HostBinding('class.disable-item') disableItem = false;\n\n @HostListener('focus')\n onFocus() {\n // maintains which element is focused/selected most recently.\n this.listComponent.lastSelectedItem = this;\n }\n\n get $index() {\n return this.context.$index;\n }\n\n get $even() {\n return this.context.even;\n }\n\n get $odd() {\n return this.context.odd;\n }\n\n get $first() {\n return this.context.first;\n }\n\n get $last() {\n return this.context.last;\n }\n\n get currentItemWidgets () {\n const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));\n return Object.assign(this._currentItemWidgets, componentElements.reduce((result, comp: any) => {\n result[comp.widget.name] = comp.widget;\n return result;\n }, {}));\n }\n\n @Input() set wmListItem(val) {\n this.item = val;\n }\n private _viewParent = inject(ListComponent, {optional: true});\n constructor(private inj: Injector, elRef: ElementRef, private app: App) {\n this.viewContainerRef = inj.get(ViewContainerRef);\n this.nativeElement = elRef.nativeElement;\n this.listComponent = this._viewParent;\n // this.context = (<NgForOfContext<ListItemDirective>>(<any>inj).view.context);\n this.context = (this.inj as any)._lView[8];\n //this.context = (this.viewContainerRef as any)._hostLView.find(t => t && !!t.$implicit);\n this.itemClassWatcher(this.listComponent);\n this.disableItemWatcher(this.listComponent);\n $(this.nativeElement).data('listItemContext', this);\n }\n\n private registerWatch(expression: string, callback: Function) {\n // Removing ngFor context as the same properties are availble on listitem scope.\n // passing viewparent context for accessing varibales and widgets.\n //[CSP]: expression will be generated in the component as e.g. 'item.className'\n this.destroy$.subscribe($watch(expression, (this.listComponent as any).viewParent, this, callback));\n }\n\n private itemClassWatcher(listComponent: ListComponent) {\n if (listComponent.binditemclass) {\n this.registerWatch(listComponent.binditemclass, nv => this.itemClass = nv || '');\n } else {\n this.itemClass = listComponent.itemclass;\n }\n }\n\n private disableItemWatcher($list: ListComponent) {\n if ($list.binddisableitem) {\n this.registerWatch($list.binddisableitem, nv => this.disableItem = nv || false);\n } else {\n this.disableItem = $list.disableitem || false;\n }\n }\n\n private setUpCUDHandlers() {\n const $editItem = this.nativeElement.querySelector('.edit-list-item');\n const $deleteItem = this.nativeElement.querySelector('.delete-list-item');\n\n if ($editItem) {\n // Triggered on click of edit action\n $editItem.addEventListener('click', evt => {\n this.listComponent.update();\n });\n }\n\n if ($deleteItem) {\n // Triggered on click of delete action\n $deleteItem.addEventListener('click', evt => {\n this.listComponent.delete();\n });\n }\n }\n ngOnInit() {\n if (this.listComponent.mouseEnterCB) {\n this.nativeElement.addEventListener('mouseenter', ($event) => {\n this.listComponent.invokeEventCallback('mouseenter', {widget: this, $event});\n });\n }\n if (this.listComponent.mouseLeaveCB) {\n this.nativeElement.addEventListener('mouseleave', ($event) => {\n this.listComponent.invokeEventCallback('mouseleave', {widget: this, $event});\n });\n }\n // adding item attribute on every list item\n $(this.nativeElement).attr('listitemindex', this.$index);\n }\n\n ngAfterViewInit() {\n this.setUpCUDHandlers();\n const componentElements = Array.from(this.nativeElement.querySelectorAll('[widget-id]'));\n componentElements.forEach((component: any) => {\n if(component.widget instanceof BaseFormComponent) {\n if(!component.widget.$attrs.get('datavaluesource.bind')) {\n component.widget.datavaluesource = this.listComponent['datasource'];\n }\n }\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {\n APPLY_STYLES_TYPE,\n configureDnD,\n DEBOUNCE_TIMES,\n extractDataSourceName,\n getOrderedDataset,\n groupData,\n handleHeaderClick,\n NAVIGATION_TYPE,\n provideAsWidgetRef,\n StylableComponent,\n styler,\n TextContentDirective,\n ToDatePipe,\n toggleAllHeaders,\n unsupportedStatePersistenceTypes,\n WidgetRef\n} from \"@wm/components/base\";\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n Inject,\n Injector,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren\n} from '@angular/core';\n\nimport {Subscription} from 'rxjs';\n\nimport {\n $appDigest,\n $invokeWatchers,\n App,\n AppDefaults,\n DataSource,\n generateGUId,\n getClonedObject,\n isDataSourceEqual,\n isDefined,\n isMobile,\n isObject,\n noop,\n PaginationService,\n setListClass,\n StatePersistence,\n switchClass\n} from '@wm/core';\nimport {PaginationComponent} from '@wm/components/data/pagination';\nimport {ButtonComponent} from '@wm/components/input/button';\n\nimport {registerProps} from './list.props';\nimport {ListItemDirective} from './list-item.directive';\nimport {ListAnimator} from './list.animator';\nimport {\n clone,\n cloneDeep,\n forEach,\n get,\n has,\n includes,\n isArray,\n isEmpty,\n isEqual,\n isNumber,\n isString,\n isUndefined,\n last,\n max,\n min,\n pullAllWith,\n pullAt,\n remove,\n some,\n toNumber\n} from \"lodash-es\";\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-livelist app-panel';\nconst WIDGET_CONFIG = {widgetType: 'wm-list', hostClass: DEFAULT_CLS};\n\n@Component({\n standalone: true,\n imports: [CommonModule, TextContentDirective, PaginationComponent, ListItemDirective],\n selector: 'div[wmList]',\n templateUrl: './list.component.html',\n providers: [\n provideAsWidgetRef(ListComponent)\n ]\n})\nexport class ListComponent extends StylableComponent implements OnInit, AfterViewInit, OnDestroy {\n static initializeProps = registerProps();\n\n @ContentChild('listTemplate') listTemplate: TemplateRef<ElementRef>;\n\n @ContentChild('listLeftActionTemplate') listLeftActionTemplate: TemplateRef<ElementRef>;\n @ContentChild('listRightActionTemplate') listRightActionTemplate: TemplateRef<ElementRef>;\n @ContentChildren(ButtonComponent) btnComponents;\n\n @ViewChild(PaginationComponent) dataNavigator;\n @ViewChildren(ListItemDirective) listItems: QueryList<ListItemDirective>;\n public noDataFound: boolean;\n public lastSelectedItem: ListItemDirective;\n public fieldDefs: Array<any>;\n public disableitem;\n public navigation: string;\n public navigationalign: string;\n public pagesize: number;\n public dataset: any;\n public multiselect: boolean;\n public selectfirstitem: boolean;\n public orderby: string;\n public loadingicon: string;\n public paginationclass: string;\n public ondemandmessage: string;\n public loadingdatamsg: string;\n public selectionlimit: number;\n public infScroll: boolean;\n public enablereorder: boolean;\n public itemsperrow: string;\n public itemclass: string;\n public selectedItemWidgets: Array<WidgetRef> | WidgetRef;\n public variableInflight;\n public name;\n public currentPage;\n public direction;\n public tabindex;\n public handleHeaderClick: Function;\n public toggleAllHeaders: void;\n public groupby: string;\n public collapsible: string;\n public datePipe: ToDatePipe;\n public binditemclass: string;\n public binddisableitem: string;\n public binddataset: string;\n public mouseEnterCB: string;\n public mouseLeaveCB: string;\n public pulltorefresh: boolean;\n public title: string;\n public subheading: string;\n public iconclass: string;\n public listclass: any;\n public statehandler: any;\n public currentIndex: number;\n public titleId: string;\n public allowpagesizechange: boolean = false;\n public pagesizeoptions: string;\n private prevPagesizeoptions: string;\n public updatedPageSize;\n public actualPageSize;\n _isDependent;\n private itemsPerRowClass: string;\n private firstSelectedItem: ListItemDirective;\n private navigatorMaxResultWatch: Subscription;\n private navigatorResultWatch: Subscription;\n private navControls: string;\n private onDemandLoad: boolean;\n private _items: Array<any>;\n private dataNavigatorWatched: boolean;\n private datasource: any;\n private showNavigation: boolean;\n private reorderProps: any;\n private app: any;\n private appDefaults: any;\n private ngZone: NgZone;\n private statePersistence: StatePersistence;\n private paginationService: PaginationService;\n private binddatasource: string;\n private match: string;\n private dateformat: string;\n private groupedData: any;\n private cdRef: ChangeDetectorRef;\n private promiseResolverFn: Function;\n private propsInitPromise: Promise<any>;\n private $ulEle: any;\n private _listAnimator: ListAnimator;\n private _listenerDestroyers: Array<any>;\n private debouncedFetchNextDatasetOnScroll: Function;\n private isDataChanged: boolean;\n private isListElementMovable: boolean;\n private ariaText: String;\n private _pageLoad;\n private _selectedItemsExist;\n\n private touching;\n private touched;\n\n constructor(\n inj: Injector,\n cdRef: ChangeDetectorRef,\n datePipe: ToDatePipe,\n app: App,\n appDefaults: AppDefaults,\n ngZone: NgZone,\n @Attribute('itemclass.bind') binditemclass: string,\n @Attribute('disableitem.bind') binddisableitem: string,\n @Attribute('dataset.bind') binddataset: string,\n @Attribute('datasource.bind') binddatasource: string,\n @Attribute('mouseenter.event') mouseEnterCB: string,\n @Attribute('mouseleave.event') mouseLeaveCB: string,\n statePersistence: StatePersistence,\n paginationService: PaginationService,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n let resolveFn: Function = noop;\n const propsInitPromise = new Promise(res => resolveFn = res);\n super(inj, WIDGET_CONFIG, explicitContext, propsInitPromise);\n this.propsInitPromise = propsInitPromise;\n this.promiseResolverFn = resolveFn;\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.SHELL);\n this.cdRef = cdRef;\n this.ngZone = ngZone;\n this.datePipe = datePipe;\n this.statePersistence = statePersistence;\n this.paginationService = paginationService;\n this._pageLoad = true;\n\n this.binditemclass = binditemclass;\n this.binddisableitem = binddisableitem;\n this.binddataset = binddataset;\n this.mouseEnterCB = mouseEnterCB;\n this.mouseLeaveCB = mouseLeaveCB;\n this.binddatasource = binddatasource;\n\n this.app = app;\n this.appDefaults = appDefaults;\n this.variableInflight = false;\n\n this.noDataFound = !binddataset;\n this.titleId = 'wmlist-' + generateGUId();\n\n // Updates pagination, filter, sort etc options for service and crud variables\n this._listenerDestroyers = [\n this.app.subscribe('check-state-persistence-options', options => {\n let dataSourceName = get(this.datasource, 'name');\n // in Prefabs, this.datasource is not resolved at the time of variable invocation, so additional check is required.\n if (!dataSourceName) {\n dataSourceName = extractDataSourceName(this.binddatasource);\n }\n if (get(options, 'variable.name') !== dataSourceName) {\n return;\n }\n this.handleStateParams(options);\n }),\n // Show loading status based on the variable life cycle\n this.app.subscribe('toggle-variable-state', this.handleLoading.bind(this)),\n this.app.subscribe('setup-cud-listener', param => {\n if (this.nativeElement.getAttribute('name') !== param) {\n return;\n }\n this._isDependent = true;\n })\n ];\n }\n\n public get selecteditem() {\n if (this.multiselect) {\n return getClonedObject(this._items);\n }\n if (isEmpty(this._items)) {\n return {};\n }\n return getClonedObject(this._items[0]);\n }\n\n public set selecteditem(items) {\n this._items.length = 0;\n this.deselectListItems();\n\n if (isArray(items)) {\n items.forEach(item => this.selectItem(item));\n } else {\n this.selectItem(items);\n }\n $appDigest();\n }\n\n /**\n * Returns list of widgets present on list item by considering name and index of the widget.\n * If we did'nt pass index, it returns array of all the widgets which are matching to widget name\n * @param widgteName: Name of the widget\n * @param index: Index of the widget\n */\n public getWidgets(widgteName: string, index?: number) {\n let $target;\n const retVal = [];\n\n if (!widgteName) {\n return;\n }\n\n if (!isDefined(index)) {\n forEach(this.listItems.toArray(), (el) => {\n $target = get(el.currentItemWidgets, widgteName);\n if ($target) {\n retVal.push($target);\n }\n });\n\n return retVal;\n }\n index = +index || 0;\n\n $target = get(this.listItems.toArray(), index);\n\n if ($target) {\n return [get($target.currentItemWidgets, widgteName)];\n }\n }\n\n // returns listitem reference by index value. This refers to the same method getListItemByIndex.\n public getItem(index: number) {\n return this.getListItemByIndex(index);\n }\n\n /**\n * Returns index of listItem(listItemDirective / listItemObject)\n * If item is a directive, index is fetched from listItems\n * If item is an object, index is fetched from fieldDefs\n */\n public getIndex(item: any) {\n if (item instanceof ListItemDirective) {\n return this.getListItemIndex(item);\n } else if (item) {\n return this.fieldDefs.findIndex((obj) => isEqual(obj, item));\n }\n }\n public getUpdatedPageSize() {\n return this.updatedPageSize;\n }\n\n create() {\n if (this._isDependent) {\n this.triggerWMEvent('insert');\n }\n }\n\n editRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('update', listItem);\n }\n }\n\n update(item?) {\n this.editRow(item);\n }\n\n deleteRow(item?) {\n if (this._isDependent) {\n let listItem;\n if (item) {\n listItem = this.getItemRefByIndexOrModel(item).item;\n }\n this.triggerWMEvent('delete', listItem);\n }\n }\n\n delete(item?) {\n this.deleteRow(item);\n }\n\n handleLoading(data) {\n const dataSource = this.datasource;\n if (dataSource && dataSource.execute(DataSource.Operation.IS_API_AWARE) && isDataSourceEqual(data.variable, dataSource)) {\n this.ngZone.run(() => {\n this.handleStateParams(data);\n this.variableInflight = data.active;\n // Fix for [WMS-23772] Update nodatafound flag once the response is recieved from the server\n const totalEle = data.data?.pagination?.totalElements;\n if (!isUndefined(totalEle)) {\n this.noDataFound = totalEle === 0 ? true : false;\n } else { // totalelements is undefined\n this.noDataFound = isEmpty(data.data?.data);\n }\n });\n }\n }\n\n public triggerListItemSelection($el: JQuery<HTMLElement>, $event: Event) {\n if ($el && $el[0]) {\n const listItemContext = $el.data('listItemContext');\n // Trigger click event only if the list item is from the corresponding list.\n if (listItemContext.listComponent === this) {\n this.onItemClick($event, listItemContext);\n }\n }\n }\n\n // this method is called form other data widgets like table.\n public execute(operation, options) {\n if ([DataSource.Operation.IS_API_AWARE, DataSource.Operation.IS_PAGEABLE, DataSource.Operation.SUPPORTS_SERVER_FILTER].includes(operation)) {\n return false;\n }\n return this.datasource.execute(operation, options);\n }\n\n public handleKeyDown($event, action: string) {\n $event.stopPropagation();\n if ($event.keyCode !== 13 && $event.keyCode !== 9 && !(($event.target.classList.contains('form-control') || $event.target.classList.contains('note-editable')) && $event.keyCode === 32)) {\n $event.preventDefault();\n }\n\n const listItems: QueryList<ListItemDirective> = this.listItems;\n\n let presentIndex: number = this.getListItemIndex(this.lastSelectedItem);\n\n if (this.multiselect) {\n const firstIndex: number = this.getListItemIndex(this.firstSelectedItem);\n const selectCount: number = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n if (action === 'selectPrev') {\n if (presentIndex > 0) {\n if ((presentIndex <= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex > firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex - 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n } else if (action === 'selectNext') {\n if (presentIndex < listItems.length - 1) {\n if ((presentIndex >= firstIndex) && this.checkSelectionLimit(selectCount)) {\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n this.toggleListItemSelection(this.lastSelectedItem);\n } else if (presentIndex < firstIndex) {\n this.toggleListItemSelection(this.getListItemByIndex(presentIndex));\n this.lastSelectedItem = this.getListItemByIndex(presentIndex + 1);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event});\n }\n }\n }\n }\n if (action === 'focusPrev') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex);\n if (presentIndex === 0) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const prevElt = this.getListItemByIndex(presentIndex - 1);\n prevElt.nativeElement.before(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex - 1], arr[presentIndex]] = [arr[presentIndex], arr[presentIndex - 1]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex <= 0 ? 0 : (presentIndex - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'focusNext') {\n if (this.isListElementMovable) {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex) : (listItems.length - 1);\n if (presentIndex === this.listItems.length - 1) {\n return;\n }\n\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n const nextElt = this.getListItemByIndex(presentIndex + 1);\n nextElt.nativeElement.after(this.lastSelectedItem.nativeElement);\n this.lastSelectedItem.nativeElement.focus();\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n const arr = this.listItems.toArray();\n [arr[presentIndex], arr[presentIndex + 1]] = [arr[presentIndex + 1], arr[presentIndex]];\n this.listItems.reset(arr);\n this.currentIndex = presentIndex + 2;\n this.ariaText = \"selected \";\n } else {\n presentIndex = presentIndex < (listItems.length - 1) ? (presentIndex + 1) : (listItems.length - 1);\n this.lastSelectedItem = this.getListItemByIndex(presentIndex);\n this.lastSelectedItem.nativeElement.focus();\n this.currentIndex = presentIndex + 1;\n this.ariaText = \"selected \";\n }\n } else if (action === 'select') {\n // if the enter click is pressed on the item which is not the last selected item, the find the item from which the event is originated.\n if (presentIndex === -1 || !$($event.target).closest(this.lastSelectedItem.nativeElement)) {\n const $li = $($event.target).closest('li.app-list-item');\n const $ul = $li.closest('ul.app-livelist-container');\n presentIndex = $ul.find('li.app-list-item').index($li);\n }\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n } else if (action === 'space') {\n if (!this.enablereorder) {\n return;\n }\n this.isListElementMovable = !this.isListElementMovable;\n this.onItemClick($event, this.getListItemByIndex(presentIndex));\n this.currentIndex = presentIndex + 1;\n if (this.isListElementMovable) {\n this.ariaText = `Item ${this.currentIndex} grabbed, current position `;\n this.$ulEle.data('oldIndex', presentIndex);\n } else {\n this.ariaText = `Item ${this.currentIndex} dropped, final position `;\n this.onUpdate($event, undefined, presentIndex);\n }\n }\n }\n getActualPageSize() {\n return this.actualPageSize || 20;\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'dataset') {\n if (!nv && this.binddatasource && !this.datasource) {\n return;\n }\n this.onDataSetChange(nv);\n } else if (key === 'datasource') {\n if(this.allowpagesizechange){\n this.datasource.maxResults = this.pagesize || this.datasource.maxResults\n }\n if (this.dataset) {\n this.onDataSetChange(this.dataset);\n }\n } else if (key === 'navigation') {\n // Support for older projects where navigation type was advanced instead of classic\n if (nv === 'Advanced') {\n this.navigation = 'Classic';\n return;\n }\n switchClass(this.nativeElement, nv, ov);\n this.onNavigationTypeChange(nv);\n if (this.dataNavigator) {\n this.dataNavigator.navigationClass = this.paginationclass;\n }\n } else if (key === 'itemsperrow') {\n setListClass(this);\n } else if (key === 'tabindex') {\n return;\n } else if (key === 'pulltorefresh' && nv) {\n this.app.notify('pullToRefresh:enable');\n this.subscribeToPullToRefresh();\n } else if (key === 'paginationclass') {\n if (this.dataNavigator) {\n // Adding setTimeout because in pagination component updateNavSize method is overriding navigationclass\n setTimeout(() => this.dataNavigator.navigationClass = nv);\n }\n } else if (key === 'pagesize') {\n this.actualPageSize = nv; // maintain default page size to calculate pagesize options\n this.setDefaultPageSize(nv)\n } else if (key === 'enablereorder') {\n if (nv && this.$ulEle) {\n this.$ulEle.attr('aria-describedby', this.titleId);\n this.configureDnD();\n this.$ulEle.sortable('enable');\n } else if (this.$ulEle && !nv) {\n this.$ulEle.removeAttr('aria-describedby');\n this.$ulEle.sortable('disable');\n }\n } else if (key === 'allowpagesizechange') {\n this.allowpagesizechange = nv;\n } else if(key === 'pagesizeoptions') {\n this.prevPagesizeoptions = this.sanitizeCommaSeparatedIntegers(ov);\n this.pagesizeoptions = this.sanitizeCommaSeparatedIntegers(nv);\n if(this.allowpagesizechange) this.setDefaultPageSize(nv)\n }else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n setDefaultPageSize(nv: any){\n if (this.allowpagesizechange) {\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'pagesize')) {\n nv = get(widgetState, 'pagesize');\n this.pagesize = nv; // updating the default pagesize to user selected pagesize\n } else if (this.pagesizeoptions) {\n nv = this.pagesizeoptions?.split(',').map(Number).sort((a, b) => a - b)[0]\n this.pagesize = nv;\n }\n if(this.isPageSizeOptionsChanged()) {\n this.dataNavigator.defaultPageSizeOptions = this.pagesizeoptions?.split(',').map(Number).sort((a, b) => a - b) || [];\n this.dataNavigator.pageSizeOptions = [...this.dataNavigator.defaultPageSizeOptions];\n }\n }\n this.updatedPageSize = nv;\n this.dataNavigator.updatedPageSize = nv;\n\n this.dataNavigator.options = {\n maxResults: nv\n };\n this.dataNavigator.widget.maxResults = nv;\n this.dataNavigator.maxResults = nv;\n if(this.datasource){\n this.datasource.maxResults = this.pagesize || this.datasource.maxResults;\n }\n }\n\n isPageSizeOptionsChanged() {\n return !isEqual(this.prevPagesizeoptions, this.pagesizeoptions);\n }\n\n selectPageSize(pagesize: number) {\n if(!this.allowpagesizechange && !pagesize) return;\n\n if(pagesize < this.dataNavigator.pageSizeOptions[0] || pagesize > this.dataNavigator.pageSizeOptions[this.dataNavigator.pageSizeOptions.length - 1]\n || !this.dataNavigator.pageSizeOptions.includes(Number(pagesize))) {\n pagesize = this.dataNavigator.pageSizeOptions[0];\n }\n this.dataNavigator.onPageSizeChange(undefined, pagesize);\n }\n\n sanitizeCommaSeparatedIntegers(input: string): string {\n if (!input) return \"\";\n const uniqueNumbers = Array.from(\n new Set(\n input\n .split(\",\")\n .map(v => v.trim())\n .filter(v => /^-?\\d+$/.test(v))\n .map(v => Math.abs(parseInt(v, 10)))\n )\n );\n return uniqueNumbers.join(\",\");\n }\n\n public onItemClick(evt: any, $listItem: ListItemDirective) {\n let selectCount: number;\n\n if (!$listItem.disableItem) {\n this.firstSelectedItem = this.firstSelectedItem || $listItem;\n // Setting selectCount value based number of items selected.\n selectCount = isArray(this.selecteditem) ? this.selecteditem.length : (isObject(this.selecteditem) ? 1 : 0);\n\n // Handling multiselect for mobile device\n if (this.multiselect && isMobile()) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if ((evt.ctrlKey || evt.metaKey) && this.multiselect) {\n if (this.checkSelectionLimit(selectCount) || $listItem.isActive) {\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n this.toggleListItemSelection($listItem);\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n } else if (evt.shiftKey && this.multiselect) {\n let first = $listItem.context.index;\n let last = this.firstSelectedItem.context.index;\n\n // if first is greater than last, then swap values\n if (first > last) {\n last = [first, first = last][0];\n }\n if (this.checkSelectionLimit(last - first)) {\n this.clearSelectedItems();\n this.listItems.forEach(($liItem: ListItemDirective) => {\n const index = $liItem.context.index;\n if (index >= first && index <= last) {\n this.toggleListItemSelection($liItem);\n }\n });\n this.lastSelectedItem = $listItem;\n } else {\n this.invokeEventCallback('selectionlimitexceed', {$event: evt});\n }\n\n } else {\n if (!$listItem.isActive || selectCount > 1) {\n this.clearSelectedItems();\n this.toggleListItemSelection($listItem);\n this.firstSelectedItem = this.lastSelectedItem = $listItem;\n }\n }\n $appDigest();\n }\n }\n\n // Empty the list content on clear\n public clear() {\n this.updateFieldDefs([]);\n }\n\n /**\n * deselects item in the list.\n * @param val: index | model of the list item.\n */\n public deselectItem(val: any) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (listItem && listItem.isActive) {\n this.toggleListItemSelection(listItem);\n }\n }\n\n /**\n * selects item in the list.\n * @param val: index | model of the list item.\n */\n public selectItem(val, statePersistenceTriggered?) {\n const listItem = this.getItemRefByIndexOrModel(val);\n if (!listItem) {\n return;\n }\n if (!listItem.isActive) {\n this.toggleListItemSelection(listItem, statePersistenceTriggered);\n }\n // focus the element.\n listItem.nativeElement.focus();\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.handleHeaderClick = noop;\n setTimeout(() => {\n this.debouncedFetchNextDatasetOnScroll = this.paginationService.debouncedFetchNextDatasetOnScroll(this.dataNavigator, DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME, this);\n }, 0);\n this._items = [];\n this.fieldDefs = [];\n this.reorderProps = {\n minIndex: null,\n maxIndex: null\n };\n }\n\n ngAfterViewInit() {\n this.promiseResolverFn();\n this.propsInitPromise.then(() => {\n super.ngAfterViewInit();\n this.setUpCUDHandlers();\n this.selectedItemWidgets = this.multiselect ? [] : {};\n var ele = $(this.nativeElement).find('.app-livelist-container');\n\n if (this.enablereorder && !this.groupby) {\n if (ele) {\n ele.attr('aria-describedby', this.titleId);\n }\n this.configureDnD();\n }\n if (!this.enablereorder) {\n if (ele) {\n ele.removeAttr('aria-describedby');\n }\n }\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n setListClass(this);\n });\n this.setupHandlers();\n const $ul = this.nativeElement.querySelector('ul.app-livelist-container');\n styler($ul as HTMLElement, this, APPLY_STYLES_TYPE.SCROLLABLE_CONTAINER);\n if (this.enablereorder) {\n if ($ul) {\n $ul.setAttribute('aria-describedby', this.titleId);\n }\n }\n if (!this.enablereorder) {\n if ($ul) {\n $ul.removeAttribute('aria-describedby');\n }\n }\n }\n\n ngOnDestroy() {\n if (this._listAnimator && this._listAnimator.$btnSubscription) {\n this._listAnimator.$btnSubscription.unsubscribe();\n }\n this._listenerDestroyers.forEach(d => d && d());\n super.ngOnDestroy();\n }\n\n ngOnDetach() {\n super.ngOnDetach();\n this._pageLoad = true;\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n // tap and doubleTap events are not getting propagated.So, using mouse events instead.\n const touchToMouse = {\n tap: 'click',\n doubletap: 'dblclick'\n };\n if (includes(['click', 'tap', 'dblclick', 'doubletap'], eventName)) {\n this.eventManager.addEventListener(\n this.nativeElement,\n touchToMouse[eventName] || eventName,\n (evt) => {\n const target = $(evt.target).closest('.app-list-item');\n if (target.length) {\n const listItemContext: ListItemDirective = target.data('listItemContext');\n if (!listItemContext.disableItem) {\n this.invokeEventCallback(eventName, {\n widget: listItemContext,\n $event: evt,\n item: listItemContext.item\n });\n }\n }\n }\n );\n }\n }\n\n private getConfiguredState() {\n const mode = this.statePersistence.computeMode(this.statehandler);\n return mode && mode.toLowerCase();\n }\n\n private handleStateParams(options) {\n if (this._pageLoad && this.getConfiguredState() !== 'none') {\n this._pageLoad = false;\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'pagination')) {\n options.options = options.options || {};\n options.options.page = widgetState.pagination;\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n }\n\n private triggerWMEvent(eventName, item?) {\n $invokeWatchers(true);\n // If we have multiselect for the livelist(List with form template), in run mode deleting a record is getting failed. Becuase the selecteditem will be array of objects. So consider the last object.\n let row = this.multiselect ? last(this.selecteditem) : this.selecteditem;\n if (item) {\n row = item;\n }\n this.app.notify('wm-event', {eventName, widgetName: this.name, row: row});\n }\n\n private resetNavigation() {\n this.showNavigation = false;\n this.navControls = undefined;\n this.infScroll = false;\n this.onDemandLoad = false;\n }\n\n private enableBasicNavigation() {\n this.navControls = NAVIGATION_TYPE.BASIC;\n this.showNavigation = true;\n }\n\n private enableInlineNavigation() {\n this.navControls = NAVIGATION_TYPE.INLINE;\n }\n\n private enableClassicNavigation() {\n this.navControls = NAVIGATION_TYPE.CLASSIC;\n this.showNavigation = true;\n }\n\n private enablePagerNavigation() {\n this.navControls = NAVIGATION_TYPE.PAGER;\n this.showNavigation = true;\n }\n\n private setNavigationTypeNone() {\n this.navControls = NAVIGATION_TYPE.NONE;\n this.showNavigation = false;\n }\n\n private enableInfiniteScroll() {\n this.infScroll = true;\n }\n\n private enableOnDemandLoad() {\n this.onDemandLoad = true;\n this.showNavigation = true;\n }\n\n /**\n * Sets Navigation type for the list.\n * @param type\n */\n private onNavigationTypeChange(type) {\n this.resetNavigation();\n switch (type) {\n case NAVIGATION_TYPE.BASIC:\n this.enableBasicNavigation();\n break;\n case NAVIGATION_TYPE.INLINE:\n this.enableInlineNavigation();\n break;\n case NAVIGATION_TYPE.ADVANCED:\n case NAVIGATION_TYPE.CLASSIC:\n this.enableClassicNavigation();\n break;\n case NAVIGATION_TYPE.PAGER:\n this.enablePagerNavigation();\n break;\n case NAVIGATION_TYPE.NONE :\n this.setNavigationTypeNone();\n break;\n case NAVIGATION_TYPE.SCROLL:\n this.enableInfiniteScroll();\n break;\n case NAVIGATION_TYPE.ONDEMAND:\n this.enableOnDemandLoad();\n break;\n }\n }\n\n /**\n * Update fieldDefs property, fieldDefs is the model of the List Component.\n * fieldDefs is an Array type.\n * @param newVal\n */\n private updateFieldDefs(newVal: Array<any>) {\n if (this.infScroll || this.onDemandLoad) {\n [this.fieldDefs, this.currentPage] = this.paginationService.updateFieldsOnPagination(this, newVal);\n } else {\n this.fieldDefs = newVal;\n }\n\n if (this.orderby) {\n this.fieldDefs = getOrderedDataset(this.fieldDefs, this.orderby);\n }\n if (this.groupby) {\n this.groupedData = groupData(this, this.fieldDefs, this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, undefined, this.appDefaults);\n }\n\n if (!this.fieldDefs.length) {\n this.noDataFound = true;\n this.selecteditem = undefined;\n }\n $appDigest();\n this.listItems.setDirty();\n }\n\n private onDataChange(newVal) {\n // Check for newVal is not empty\n if (!isEmpty(newVal)) {\n\n this.noDataFound = false;\n this.isDataChanged = true;\n\n if (this.datasource && this.datasource.execute(DataSource.Operation.IS_API_AWARE)) {\n // clone the the data in case of live and service variables to prevent the two-way binding for these variables.\n newVal = cloneDeep(newVal);\n }\n\n if (isObject(newVal) && !isArray(newVal)) {\n newVal = isEmpty(newVal) ? [] : [newVal];\n }\n\n if (isString(newVal)) {\n newVal = newVal.split(',');\n }\n\n // if the page number is greater than 1 on initial load then we render the first page.\n if (this.datasource && this.datasource.owner === 'App' && (this.infScroll || this.onDemandLoad) && !this.currentPage && this.datasource.execute(DataSource.Operation.GET_PAGING_OPTIONS).number > 0) {\n newVal = this.datasource.execute(DataSource.Operation.LIST_RECORDS, {\n 'page': 1\n });\n }\n\n if (isArray(newVal)) {\n if (newVal.length) {\n this.invokeEventCallback('beforedatarender', {$data: newVal});\n }\n this.updateFieldDefs(newVal);\n }\n } else {\n this.updateFieldDefs([]);\n }\n }\n\n // Updates the dataSource when pagination is enabled for the Component.\n private setupDataSource() {\n const dataNavigator = this.dataNavigator;\n\n dataNavigator.options = {\n maxResults: this.pagesize || 20\n };\n\n this.dataNavigatorWatched = true;\n\n if (this.navigatorResultWatch) {\n this.navigatorResultWatch.unsubscribe();\n }\n /*Register a watch on the \"result\" property of the \"dataNavigator\" so that the paginated data is displayed in the live-list.*/\n this.navigatorResultWatch = dataNavigator.resultEmitter.subscribe((newVal: any) => {\n this.onDataChange(newVal);\n }, true);\n /*De-register the watch if it is exists */\n if (this.navigatorMaxResultWatch) {\n this.navigatorMaxResultWatch.unsubscribe();\n }\n /*Register a watch on the \"maxResults\" property of the \"dataNavigator\" so that the \"pageSize\" is displayed in the live-list.*/\n this.navigatorMaxResultWatch = dataNavigator.maxResultsEmitter.subscribe((val) => {\n this.pagesize = val;\n });\n\n dataNavigator.maxResults = this.pagesize || 20;\n this.removePropertyBinding('dataset');\n // when list having \"datasetboundexpr\" attr indicates that list is bound to item context\n // when dataset is bound to \"item.FIELD\" then item context is passed as the datasource.\n const datasetBoundExpr = this.getAttr('datasetboundexpr');\n this.dataNavigator.setBindDataSet(\n this.binddataset,\n this.viewParent,\n datasetBoundExpr ? this.context : this.datasource,\n this.dataset,\n this.binddatasource,\n datasetBoundExpr,\n this.statehandler\n );\n }\n\n private onDataSetChange(newVal) {\n if (get(this.datasource, 'category') === 'wm.Variable' && this.getConfiguredState() !== 'none' && this._pageLoad) {\n const widgetState = this.statePersistence.getWidgetState(this);\n this._pageLoad = false;\n if (this.allowpagesizechange) { // maintain updated page size in the statePersistence\n if (get(widgetState, 'pagination') || get(widgetState, 'pagesize')) {\n this.dataNavigator.pageChanged({page: widgetState.pagination || 1, pagesize: widgetState.pagesize}, true);\n }\n } else {\n if (get(widgetState, 'pagination')) {\n this.dataNavigator.pageChanged({page: widgetState.pagination}, true);\n }\n }\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = true;\n }\n }\n if (!this.dataNavigatorWatched) {\n if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n this.setupDataSource();\n } else {\n this.onDataChange(newVal);\n }\n } else if (this.navigation && this.navigation !== NAVIGATION_TYPE.NONE) {\n // If navigation is already setup and datasource is changed, update the datasource on navigation\n this.dataNavigator.setDataSource(this.datasource);\n }\n }\n\n // All the ListItem's Active state is set to false.\n private deselectListItems() {\n this.listItems.forEach(item => item.isActive = false);\n }\n\n // Deselect all the ListItems and clear the selecteditem(InOutBound Property model)\n private clearSelectedItems() {\n this.deselectListItems();\n this._items.length = 0;\n $appDigest();\n }\n\n /**\n * return the ListItemDirective instance by checking the equality of the model.\n * @param listModel: model to be searched for\n * @returns ListItem if the model is matched else return null.\n */\n private getListItemByModel(listModel): ListItemDirective {\n return this.listItems.find((listItem) => {\n let itemObj = listItem.item;\n if (this.groupby && !has(listModel, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded while comparing model.\n itemObj = clone(itemObj);\n delete itemObj._groupIndex;\n }\n if (isEqual(itemObj, listModel)) {\n return true;\n }\n }) || null;\n }\n\n private updateSelectedItemsWidgets(statePersistenceTriggered?) {\n let obj = {}, widgetState;\n const pageNum = get(this.dataNavigator, 'dn.currentPage') || 1;\n if (this.getConfiguredState() !== 'none') {\n // remove previously configured selected items for current page and construct new ones later below.\n widgetState = this.statePersistence.getWidgetState(this) || {};\n if (get(widgetState, 'selectedItem')) {\n // when multiselect is on and an item is selected without pressing CTRL, previously selected items in state should be empty.\n if (this.multiselect && this.selecteditem.length === 1) {\n widgetState.selectedItem = [];\n } else {\n remove(widgetState.selectedItem, function (selectedItem: any) {\n return selectedItem.page === pageNum;\n });\n }\n }\n }\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).length = 0;\n }\n this.listItems.forEach((item: ListItemDirective, index) => {\n if (item.isActive) {\n if (this.multiselect) {\n (this.selectedItemWidgets as Array<WidgetRef>).push(item.currentItemWidgets);\n } else {\n this.selectedItemWidgets = item.currentItemWidgets;\n }\n obj = {page: pageNum, index: index};\n if (get(widgetState, 'selectedItem') && this.multiselect) {\n if (!some(widgetState.selectedItem, obj)) {\n widgetState.selectedItem.push(obj);\n }\n } else {\n widgetState.selectedItem = [obj];\n }\n }\n });\n if (this.getConfiguredState() !== 'none' && !statePersistenceTriggered) {\n if (unsupportedStatePersistenceTypes.indexOf(this.navigation) < 0) {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n this.statePersistence.setWidgetState(this, {'selectedItem': widgetState.selectedItem});\n } else {\n console.warn('Retain State handling on Widget ' + this.name + ' is not supported for current pagination type.');\n }\n }\n }\n\n /**\n * Selects the listItem and updates selecteditem property.\n * If the listItem is already a selected item then deselects the item.\n * @param {ListItemDirective} $listItem: Item to be selected of deselected.\n */\n private toggleListItemSelection($listItem: ListItemDirective, statePersistenceTriggered?) {\n // item is not allowed to get selected if it is disabled.\n if ($listItem && !$listItem.disableItem) {\n let item = $listItem.item;\n if (this.groupby && has(item, '_groupIndex')) {\n // If groupby is enabled, item contains _groupIndex property which should be excluded from selecteditem.\n item = clone(item);\n delete item._groupIndex;\n }\n if ($listItem.isActive) {\n this._items = pullAllWith(this._items, [item], isEqual);\n $listItem.isActive = false;\n } else {\n // if multiselect is false, clear the selectItem list before adding an item to the selectItem list.\n if (!this.multiselect) {\n this.clearSelectedItems();\n }\n this._items.push(item);\n this.invokeEventCallback('select', {widget: $listItem, $data: item});\n $listItem.isActive = true;\n }\n this.updateSelectedItemsWidgets(statePersistenceTriggered);\n }\n }\n\n /**\n * Method is Invoked when the model for the List Widget is changed.\n * @param {QueryList<ListItemDirective>} listItems\n */\n private onListRender(listItems: QueryList<ListItemDirective>) {\n // Added render callback event. This method(onListRender) is calling multiple times so checking isDatachanged flag because this falg is changed whenever new data is rendered.\n if (this.isDataChanged) {\n // Whenever dataset is changed, trigger watchers to evaluate listitem bind expressions.\n $invokeWatchers(true);\n this.invokeEventCallback('render', {$data: this.fieldDefs});\n }\n if (this.isDataChanged && this.getConfiguredState() !== 'none' && listItems.length && this._selectedItemsExist) {\n const widgetState = this.statePersistence.getWidgetState(this);\n if (get(widgetState, 'selectedItem')) {\n this._selectedItemsExist = false;\n const selectedItemsLength = isArray(this.selecteditem) ? this.selecteditem.length : toNumber(!isEmpty(this.selecteditem));\n const currentPage = get(this.dataNavigator, 'dn.currentPage') || 1;\n widgetState.pagination = widgetState.pagination || 1;\n // to prevent item selection from being triggered more than once\n if (selectedItemsLength !== widgetState.selectedItem.length && widgetState.pagination === currentPage) {\n widgetState.selectedItem.forEach((item) => {\n if (item.page === currentPage) {\n this.selectItem(item.index, true);\n }\n });\n }\n }\n }\n const selectedItems = isArray(this.selecteditem) ? this.selecteditem : [this.selecteditem];\n\n this.firstSelectedItem = this.lastSelectedItem = null;\n\n // don't select first item if multi-select is enabled and at least item is already selected in the list.\n // don't select first item if state information has selected items\n if (listItems.length && this.selectfirstitem && !(this._items.length && this.multiselect) && this._selectedItemsExist !== false) {\n const $firstItem: ListItemDirective = listItems.first;\n\n if (\n !$firstItem.disableItem &&\n this.isDataChanged &&\n // \"infinite scroll\" or \"load on demand\" is enabled and at least one item is selected then dont alter the selected list items.\n !(\n (this.infScroll || this.onDemandLoad) &&\n this._items.length\n )\n ) {\n this.clearSelectedItems();\n this.firstSelectedItem = this.lastSelectedItem = $firstItem;\n // selecting the first record\n this.selectItem(0);\n }\n } else {\n this.deselectListItems();\n selectedItems.forEach(selecteditem => {\n const listItem: ListItemDirective = this.getListItemByModel(selecteditem);\n if (listItem) {\n listItem.isActive = true;\n this.lastSelectedItem = listItem;\n // focus the active element\n listItem.nativeElement.focus();\n }\n });\n }\n\n if (this.fieldDefs.length && this.infScroll) {\n const smoothScrollEl = this.$element.closest('[wmsmoothscroll]');\n // In case of mobile app when modal exists, and list items height is greater than the modal content provide ccontainer a scrollable height\n const modalBody = this.$element.closest('.modal-body');\n const listHt = this.$element.find('ul').height();\n const modalHt = window.innerHeight - 140;\n if (isMobile() && modalBody.length && listHt > modalHt) {\n this.$element.css('height', modalHt + 'px');\n }\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n\n }\n\n this.isDataChanged = false;\n }\n\n private setupHandlers() {\n this.listItems.changes.subscribe(listItems => {\n this.onListRender(listItems);\n this.cdRef.detectChanges();\n });\n // handle click event in capturing phase.\n this.nativeElement.querySelector('ul.app-livelist-container').addEventListener('click', ($event) => {\n let target = $($event.target).closest('.app-list-item');\n // Recursively find the current list item\n while (target.get(0) && (target.closest('ul.app-livelist-container').get(0) !== $event.currentTarget)) {\n target = target.parent().closest('.app-list-item');\n }\n this.triggerListItemSelection(target, $event);\n }, true);\n }\n\n // Triggers on drag start while reordering.\n private onReorderStart(evt, ui) {\n ui.placeholder.height(ui.item.height());\n this.$ulEle.data('oldIndex', ui.item.index());\n }\n\n // Triggers during sorting\n private onSort(evt, ui) {\n // In case of infinite scroll, when the element doesn't have scroll enabled\n // on dragging the element to last item's position manually trigger loading of next items\n if (this.infScroll) {\n const lastItemOffset = this.$ulEle.find(`[listitemindex=${this.fieldDefs.length - 1}]`).offset();\n if (lastItemOffset && lastItemOffset.top < ui.offset.top) {\n this.paginationService.bindScrollEvt(this, '> ul', DEBOUNCE_TIMES.PAGINATION_DEBOUNCE_TIME);\n this.debouncedFetchNextDatasetOnScroll();\n }\n }\n }\n\n // Triggers after the sorting.\n private onUpdate(evt, ui, presentIndex?) {\n const data = this.fieldDefs;\n // If ui is not present then it is called from drag and drop using keyboard\n const newIndex = ui === undefined ? presentIndex : ui.item.index();\n const oldIndex = this.$ulEle.data('oldIndex');\n\n const minIndex = min([newIndex, oldIndex]);\n const maxIndex = max([newIndex, oldIndex]);\n\n const draggedItem = pullAt(data, oldIndex)[0];\n // Modify the data list only if we find a draggedItem\n if (draggedItem) {\n if (this.getConfiguredState() !== 'none') {\n this.statePersistence.removeWidgetState(this, 'selectedItem');\n }\n\n this.reorderProps.minIndex = min([minIndex, this.reorderProps.minIndex]);\n this.reorderProps.maxIndex = max([maxIndex, this.reorderProps.maxIndex]);\n\n data.splice(newIndex, 0, draggedItem);\n\n this.cdRef.markForCheck();\n this.cdRef.detectChanges();\n const $changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: data[newIndex]\n };\n this.invokeEventCallback('reorder', {$event: evt, $data: data, $changedItem});\n this.$ulEle.removeData('oldIndex');\n }\n }\n\n // configures reordering the list items.\n private configureDnD() {\n let appendTo;\n const modalEl = $(document).find('.modal');\n if (this.getAttr('height')) { // when height is applied to the list, append should be the ul's parent as scroll is applied to the parent\n appendTo = 'parent';\n } else if (modalEl.length) { // In case of dialog, appendTo should be the modal ele\n appendTo = modalEl[modalEl.length - 1];\n } else { // As default append to should be body\n appendTo = 'body';\n }\n\n const options = {\n appendTo: appendTo,\n };\n\n const $el = $(this.nativeElement);\n this.$ulEle = $el.find('.app-livelist-container');\n\n configureDnD(this.$ulEle, options, this.onReorderStart.bind(this), this.onUpdate.bind(this), this.onSort.bind(this));\n\n this.$ulEle.droppable({'accept': '.app-list-item'});\n\n\n\n }\n\n // returns true if the selection limit is reached.\n private checkSelectionLimit(count: number) {\n return (!this.selectionlimit || count < this.selectionlimit);\n }\n\n // returns listitem reference by index value.\n private getListItemByIndex(index: number): ListItemDirective {\n return this.listItems.toArray()[index];\n }\n\n /**\n * return index of an (listItemDirective) in the listItem\n * @param {ListItemDirective} item\n * @returns {number}\n */\n private getListItemIndex(item: ListItemDirective) {\n return this.listItems.toArray().indexOf(item);\n }\n\n /**\n * Returns ListItem Reference based on the input provided.\n * @param val: index | model of the list item.\n * @returns {ListItemDirective}\n */\n private getItemRefByIndexOrModel(val: any): ListItemDirective {\n let listItem: ListItemDirective;\n if (isNumber(val)) {\n listItem = this.getListItemByIndex(val);\n } else {\n listItem = this.getListItemByModel(val);\n }\n return listItem;\n }\n\n private beforePaginationChange($event, $index) {\n this.invokeEventCallback('paginationchange', {$event, $index});\n }\n\n trackByFn($index: number) {\n return $index; // Return a unique identifier for each item\n }\n\n // Invoke the datasource variable by default when pulltorefresh event is not specified.\n private subscribeToPullToRefresh() {\n this._listenerDestroyers.push(this.app.subscribe('pulltorefresh', () => {\n if (this.datasource && this.datasource.listRecords) {\n this.datasource.listRecords();\n }\n }));\n }\n\n private setUpCUDHandlers() {\n const $addItem = document.getElementsByClassName(\"add-list-item\")[0];\n if ($addItem) {\n // Triggered on click of add action\n $addItem.addEventListener('click', evt => {\n this.create();\n });\n }\n }\n}\n","@if (title || subheading || iconclass) {\n <div class=\"panel-heading\">\n <h3 class=\"panel-title\">\n <div class=\"pull-left\">\n <i class=\"app-icon panel-icon {{iconclass}}\" aria-hidden=\"true\" [hidden]=\"!iconclass\"></i>\n </div>\n <div class=\"pull-left\">\n <div class=\"heading\" [innerHTML]=\"title\"></div>\n <div class=\"description\" [innerHTML]=\"subheading\"></div>\n </div>\n </h3>\n </div>\n}\n\n@if (navigation === 'Inline' && !noDataFound) {\n <div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\" aria-label=\"Page navigation\">\n <ul class=\"pager\">\n <li class=\"previous\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisablePrevious : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('prev', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisablePrevious\">\n <i class=\"wi wi-chevron-left\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Previous page {{dataNavigator.isDisablePrevious ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n </div>\n}\n@if (navigation === 'Inline' && !noDataFound) {\n <div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\"> {{'Page ' + dataNavigator.dn.currentPage + ' of ' + dataNavigator.pageCount }}</div>\n}\n\n<div>\n @if (enablereorder) {\n <div id={{titleId}} class=\"sr-only\">\n Press space bar to toggle drag drop mode, use arrow keys to move selected elements.\n </div>\n }\n\n @if (listItems && enablereorder && currentIndex) {\n <div aria-live=\"assertive\" class=\"sr-only\" >\n {{ariaText + currentIndex + ' of ' + listItems.length}}\n </div>\n }\n</div>\n\n<ul [attr.tabindex]=\"tabindex\" class=\"app-livelist-container clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}} {{listclass}}\" role=\"list\"\n (keydown.enter)=\"handleKeyDown($event, 'select')\"\n\n (keydown.space)=\"handleKeyDown($event, 'space')\"\n\n (keydown.arrowup)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowdown)=\"handleKeyDown($event, 'focusNext')\"\n (keydown.arrowleft)=\"handleKeyDown($event, 'focusPrev')\"\n (keydown.arrowright)=\"handleKeyDown($event, 'focusNext')\"\n\n (keydown.shift.arrowup)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowdown)=\"handleKeyDown($event, 'selectNext')\"\n (keydown.shift.arrowleft)=\"handleKeyDown($event, 'selectPrev')\"\n (keydown.shift.arrowright)=\"handleKeyDown($event, 'selectNext')\"\n [hidden]=\"noDataFound && !variableInflight\"\n >\n @if (!groupby) {\n @for (item of fieldDefs; track item) {\n <li class=\"app-list-item {{direction === 'horizontal' ? '' : itemsPerRowClass}}\" [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\"\n #listItemRef=\"listItemRef\"\n [attr.tabindex]=\"tabindex\"\n role=\"listitem\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('falt_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n }\n } @else {\n @for (groupObj of groupedData; track groupObj; let groupIndex = $index) {\n <li class=\"app-list-item-group clearfix\">\n <ul [attr.tabindex]=\"tabindex\" class=\"list-group item-group\" [ngClass]=\"listclass\">\n <li class=\"app-list-item-header list-item list-group-header\" (click)=\"handleHeaderClick($event)\" [ngClass]=\"{'collapsible-content': collapsible}\">\n <h4>{{groupObj.key}}\n <div class=\"header-action\">\n @if (collapsible) {\n <i class=\"app-icon wi action wi-chevron-up\"></i>\n }\n @if (showcount) {\n <span class=\"label label-default\">{{groupObj.data.length}}</span>\n }\n </div>\n </h4>\n </li>\n <li class=\"list-group-container\">\n <ul class=\"list-group clearfix {{direction === 'horizontal' ? 'app-horizontal-list': ''}}\">\n @for (item of groupObj.data; track trackByFn($index, item)) {\n <li [attr.tabindex]=\"tabindex\"\n class=\"app-list-item group-list-item {{itemsPerRowClass}}\"\n [ngClass]=\"listItemRef.itemClass\"\n [wmListItem]=\"item\" #listItemRef=\"listItemRef\">\n <ng-container [ngTemplateOutlet]=\"listTemplate\"\n [ngTemplateOutletInjector]=\"createCustomInjector('group_' + listItemRef.trackId, {item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets})\"\n [ngTemplateOutletContext]=\"{item: item, $index: $index, itemRef: listItemRef, $first: $first, $last: $last, currentItemWidgets: listItemRef.currentItemWidgets}\"></ng-container>\n </li>\n }\n </ul>\n </li>\n </ul>\n </li>\n }\n }\n <ng-container [ngTemplateOutlet]=\"listLeftActionTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listRightActionTemplate\"></ng-container>\n</ul>\n\n@if (noDataFound && !variableInflight) {\n <div class=\"no-data-msg\" [textContent]=\"nodatamessage\"></div>\n}\n\n@if (variableInflight && !pulltorefresh) {\n <div class=\"loading-data-msg\">\n <span>\n <i class=\"app-icon panel-icon fa-spin\" aria-hidden=\"true\" [ngClass]=\"loadingicon\"></i>\n <span class=\"sr-only\">Loading</span>\n <span class=\"loading-text\" [textContent]=\"loadingdatamsg\"></span>\n </span>\n </div>\n}\n\n@if (navigation === 'Inline' && !noDataFound) {\n <div class=\"app-datanavigator\" [attr.aria-disabled]=\"dataNavigator.isDisableNext\">\n <ul class=\"pager\">\n <li class=\"next\" [ngClass]=\"{'disabled': (dataNavigator ? dataNavigator.isDisableNext : true)}\">\n <a href=\"javascript:void(0);\" (click)=\"dataNavigator.navigatePage('next', $event)\"\n [attr.aria-disabled]=\"dataNavigator.isDisableNext\">\n <i class=\"wi wi-chevron-right\" aria-hidden=\"true\"></i>\n <span class=\"sr-only\">Go to Next page {{dataNavigator.isDisableNext ? ', Disabled' : ''}}</span>\n </a>\n </li>\n </ul>\n </div>\n}\n\n@if (navigation !== 'None') {\n <div class=\"panel-footer\" [hidden]=\"!showNavigation || (onDemandLoad && dataNavigator.isDisableNext) || (dataNavigator?.dataSize <= pagesize && !allowpagesizechange) || (!dataNavigator.dataSize && !dataNavigator.datasource?.pagination?.next)\">\n <nav wmPagination\n navigationalign.bind=\"navigationalign\"\n navigation.bind=\"navControls\"\n showrecordcount.bind=\"showrecordcount\"\n maxsize.bind=\"maxsize\"\n boundarylinks.bind=\"boundarylinks\"\n forceellipses.bind=\"forceellipses\"\n directionlinks.bind=\"directionlinks\"\n show.bind=\"!onDemandLoad\"\n paginationchange.event=\"beforePaginationChange($event, $index)\"\n ></nav>\n @if (onDemandLoad) {\n <a href=\"javascript:void(0);\"\n (click)=\"dataNavigator.navigatePage('next', $event)\"\n class=\"app-button btn btn-block\"\n [ngClass]=\"paginationclass\"\n [textContent]=\"ondemandmessage\"\n ></a>\n }\n </div>\n}\n\n<!--This template will be displayed when groupby is specified-->\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -57,6 +57,7 @@ export declare class ListComponent extends StylableComponent implements OnInit,
|
|
|
57
57
|
titleId: string;
|
|
58
58
|
allowpagesizechange: boolean;
|
|
59
59
|
pagesizeoptions: string;
|
|
60
|
+
private prevPagesizeoptions;
|
|
60
61
|
updatedPageSize: any;
|
|
61
62
|
actualPageSize: any;
|
|
62
63
|
_isDependent: any;
|
|
@@ -124,6 +125,9 @@ export declare class ListComponent extends StylableComponent implements OnInit,
|
|
|
124
125
|
getActualPageSize(): any;
|
|
125
126
|
onPropertyChange(key: string, nv: any, ov?: any): void;
|
|
126
127
|
setDefaultPageSize(nv: any): void;
|
|
128
|
+
isPageSizeOptionsChanged(): boolean;
|
|
129
|
+
selectPageSize(pagesize: number): void;
|
|
130
|
+
sanitizeCommaSeparatedIntegers(input: string): string;
|
|
127
131
|
onItemClick(evt: any, $listItem: ListItemDirective): void;
|
|
128
132
|
clear(): void;
|
|
129
133
|
/**
|