primeng
Version:
PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,
1 lines • 43.7 kB
Source Map (JSON)
{"version":3,"file":"primeng-dataview.mjs","sources":["../../src/dataview/style/dataviewstyle.ts","../../src/dataview/dataview.ts","../../src/dataview/primeng-dataview.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/dataview';\nimport { BaseStyle } from 'primeng/base';\n\nconst classes = {\n root: ({ instance }) => {\n const layout = instance.layout();\n return [\n 'p-dataview p-component',\n {\n 'p-dataview-list': layout === 'list',\n 'p-dataview-grid': layout === 'grid'\n }\n ];\n },\n header: 'p-dataview-header',\n loading: 'p-dataview-loading',\n loadingOverlay: 'p-dataview-loading-overlay p-overlay-mask',\n loadingIcon: 'p-dataview-loading-icon',\n pcPaginator: ({ position }) => 'p-dataview-paginator-' + position,\n content: 'p-dataview-content',\n emptyMessage: 'p-dataview-empty-message',\n footer: 'p-dataview-footer'\n};\n\n@Injectable()\nexport class DataViewStyle extends BaseStyle {\n name = 'dataview';\n\n style = style;\n\n classes = classes;\n}\n\n/**\n *\n * DataView displays data in grid or list layout with pagination and sorting features.\n *\n * [Live Demo](https://www.primeng.org/dataview/)\n *\n * @module dataviewstyle\n *\n */\nexport enum DataViewClasses {\n /**\n * Class name of the root element\n */\n root = 'p-dataview',\n /**\n * Class name of the header element\n */\n header = 'p-dataview-header',\n /**\n * Class name of the loading element\n */\n loading = 'p-dataview-loading',\n /**\n * Class name of the loading overlay element\n */\n loadingOverlay = 'p-dataview-loading-overlay',\n /**\n * Class name of the loading icon element\n */\n loadingIcon = 'p-dataview-loading-icon',\n /**\n * Class name of the paginator element\n */\n pcPaginator = 'p-dataview-paginator-[position]',\n /**\n * Class name of the content element\n */\n content = 'p-dataview-content',\n /**\n * Class name of the empty message element\n */\n emptyMessage = 'p-dataview-empty-message',\n /**\n * Class name of the footer element\n */\n footer = 'p-dataview-footer'\n}\n\nexport interface DataViewStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, effect, inject, InjectionToken, input, model, NgModule, numberAttribute, output, signal, TemplateRef, untracked, ViewEncapsulation } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { resolveFieldData } from '@primeuix/utils';\nimport { BlockableUI, FilterService, Footer, Header, TranslationKeys } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind } from 'primeng/bind';\nimport { Spinner as SpinnerIcon } from '@primeicons/angular/spinner';\nimport { PaginatorModule } from 'primeng/paginator';\nimport {\n DataViewGridTemplateContext,\n DataViewLayout,\n DataViewLayoutChangeEvent,\n DataViewLazyLoadEvent,\n DataViewListTemplateContext,\n DataViewPageEvent,\n DataViewPaginatorDropdownItemTemplateContext,\n DataViewPaginatorLeftTemplateContext,\n DataViewPaginatorPosition,\n DataViewPaginatorRightTemplateContext,\n DataViewPaginatorState,\n DataViewPassThrough,\n DataViewSortEvent\n} from 'primeng/types/dataview';\nimport type { AppendTo } from 'primeng/types/shared';\nimport { DataViewStyle } from './style/dataviewstyle';\n\nconst DATAVIEW_INSTANCE = new InjectionToken<DataView>('DATAVIEW_INSTANCE');\n\n/**\n * DataView displays data in grid or list layout with pagination and sorting features.\n * @group Components\n */\n@Component({\n selector: 'p-dataview, p-data-view',\n standalone: true,\n imports: [NgTemplateOutlet, PaginatorModule, SpinnerIcon, Bind],\n template: `\n @if (loading()) {\n <div [pBind]=\"ptm('loading')\" [class]=\"cx('loading')\">\n <div [pBind]=\"ptm('loadingOverlay')\" [class]=\"cx('loadingOverlay')\">\n @if (loadingIcon()) {\n <i [class]=\"cn(cx('loadingIcon'), 'pi-spin' + loadingIcon())\"></i>\n } @else {\n <ng-container>\n <svg [pBind]=\"ptm('loadingIcon')\" data-p-icon=\"spinner\" [class]=\"cx('loadingIcon')\" [spin]=\"true\" />\n <ng-template *ngTemplateOutlet=\"loadingicon()\"></ng-template>\n </ng-container>\n }\n </div>\n </div>\n }\n @if (showHeader()) {\n <div [pBind]=\"ptm('header')\" [class]=\"cx('header')\">\n <ng-content select=\"p-header\" />\n <ng-container *ngTemplateOutlet=\"headerTemplate()\"></ng-container>\n </div>\n }\n @if (showTopPaginator()) {\n <p-paginator\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"paginate($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight()\"\n [templateLeft]=\"paginatorleft()\"\n [templateRight]=\"paginatorright()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatordropdownitem()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [class]=\"cn(cx('pcPaginator', { position: 'top' }), paginatorStyleClass())\"\n [pt]=\"ptm('pcPaginator')\"\n [unstyled]=\"unstyled()\"\n ></p-paginator>\n }\n <div [pBind]=\"ptm('content')\" [class]=\"cx('content')\">\n @if (isListLayout()) {\n <ng-container\n *ngTemplateOutlet=\"\n listTemplate();\n context: {\n $implicit: displayedItems()\n }\n \"\n ></ng-container>\n }\n @if (isGridLayout()) {\n <ng-container\n *ngTemplateOutlet=\"\n gridTemplate();\n context: {\n $implicit: displayedItems()\n }\n \"\n ></ng-container>\n }\n @if (showEmptyMessage()) {\n <div [pBind]=\"ptm('emptyMessage')\" [class]=\"cx('emptyMessage')\">\n @if (!emptymessageTemplate()) {\n {{ emptyMessageLabel() }}\n } @else {\n <ng-container *ngTemplateOutlet=\"emptymessageTemplate()\"></ng-container>\n }\n </div>\n }\n </div>\n @if (showBottomPaginator()) {\n <p-paginator\n [rows]=\"rows()\"\n [first]=\"first()\"\n [totalRecords]=\"totalRecords()\"\n [pageLinkSize]=\"pageLinks()\"\n [alwaysShow]=\"alwaysShowPaginator()\"\n (onPageChange)=\"paginate($event)\"\n [rowsPerPageOptions]=\"rowsPerPageOptions()\"\n [appendTo]=\"paginatorDropdownAppendTo()\"\n [dropdownScrollHeight]=\"paginatorDropdownScrollHeight()\"\n [templateLeft]=\"paginatorleft()\"\n [templateRight]=\"paginatorright()\"\n [currentPageReportTemplate]=\"currentPageReportTemplate()\"\n [showFirstLastIcon]=\"showFirstLastIcon()\"\n [dropdownItemTemplate]=\"paginatordropdownitem()\"\n [showCurrentPageReport]=\"showCurrentPageReport()\"\n [showJumpToPageDropdown]=\"showJumpToPageDropdown()\"\n [showPageLinks]=\"showPageLinks()\"\n [class]=\"cn(cx('pcPaginator', { position: 'bottom' }), paginatorStyleClass())\"\n [pt]=\"ptm('pcPaginator')\"\n [unstyled]=\"unstyled()\"\n ></p-paginator>\n }\n @if (showFooter()) {\n <div [pBind]=\"ptm('footer')\" [class]=\"cx('footer')\">\n <ng-content select=\"p-footer\" />\n <ng-container *ngTemplateOutlet=\"footerTemplate()\"></ng-container>\n </div>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [DataViewStyle, { provide: DATAVIEW_INSTANCE, useExisting: DataView }, { provide: PARENT_INSTANCE, useExisting: DataView }],\n host: {\n '[class]': \"cx('root')\"\n },\n hostDirectives: [Bind]\n})\nexport class DataView extends BaseComponent<DataViewPassThrough> implements BlockableUI {\n componentName = 'DataView';\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n $pcDataView: DataView | undefined = inject(DATAVIEW_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n /**\n * When specified as true, enables the pagination.\n * @group Props\n */\n paginator = input(false, { transform: booleanAttribute });\n /**\n * Number of rows to display per page.\n * @group Props\n */\n rows = model<number>();\n /**\n * Number of total records, defaults to length of value when not defined.\n * @group Props\n */\n totalRecords = model<number>();\n /**\n * Number of page links to display in paginator.\n * @group Props\n */\n pageLinks = input(5, { transform: numberAttribute });\n /**\n * Array of integer/object values to display inside rows per page dropdown of paginator\n * @group Props\n */\n rowsPerPageOptions = input<number[] | any[]>();\n /**\n * Position of the paginator.\n * @group Props\n */\n paginatorPosition = input<DataViewPaginatorPosition>('bottom');\n /**\n * Custom style class for paginator\n * @group Props\n */\n paginatorStyleClass = input<string>();\n /**\n * Whether to show it even there is only one page.\n * @group Props\n */\n alwaysShowPaginator = input(true, { transform: booleanAttribute });\n /**\n * Target element to attach the paginator dropdown overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n * @group Props\n */\n paginatorDropdownAppendTo = input<AppendTo>();\n /**\n * Paginator dropdown height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value.\n * @group Props\n */\n paginatorDropdownScrollHeight = input('200px');\n /**\n * Template of the current page report element. Available placeholders are {currentPage},{totalPages},{rows},{first},{last} and {totalRecords}\n * @group Props\n */\n currentPageReportTemplate = input('{currentPage} of {totalPages}');\n /**\n * Whether to display current page report.\n * @group Props\n */\n showCurrentPageReport = input(false, { transform: booleanAttribute });\n /**\n * Whether to display a dropdown to navigate to any page.\n * @group Props\n */\n showJumpToPageDropdown = input(false, { transform: booleanAttribute });\n /**\n * When enabled, icons are displayed on paginator to go first and last page.\n * @group Props\n */\n showFirstLastIcon = input(true, { transform: booleanAttribute });\n /**\n * Whether to show page links.\n * @group Props\n */\n showPageLinks = input(true, { transform: booleanAttribute });\n /**\n * Defines if data is loaded and interacted with in lazy manner.\n * @group Props\n */\n lazy = input(false, { transform: booleanAttribute });\n /**\n * Whether to call lazy loading on initialization.\n * @group Props\n */\n lazyLoadOnInit = input(true, { transform: booleanAttribute });\n /**\n * Text to display when there is no data. Defaults to global value in i18n translation configuration.\n * @group Props\n */\n emptyMessage = input('');\n /**\n * Style class of the grid.\n * @group Props\n */\n gridStyleClass = input('');\n /**\n * Function to optimize the dom operations by delegating to ngForTrackBy, default algorithm checks for object identity.\n * @group Props\n */\n trackBy = input<Function>((_index: number, item: any) => item);\n /**\n * Comma separated list of fields in the object graph to search against.\n * @group Props\n */\n filterBy = input<string>();\n /**\n * Locale to use in filtering. The default locale is the host environment's current locale.\n * @group Props\n */\n filterLocale = input<string>();\n /**\n * Displays a loader to indicate data load is in progress.\n * @group Props\n */\n loading = input(false, { transform: booleanAttribute });\n /**\n * The icon to show while indicating data load is in progress.\n * @group Props\n */\n loadingIcon = input<string>();\n /**\n * Index of the first row to be displayed.\n * @group Props\n */\n first = model(0);\n /**\n * Property name of data to use in sorting by default.\n * @group Props\n */\n sortField = input<string>();\n /**\n * Order to sort the data by default.\n * @group Props\n */\n sortOrder = input<number>();\n /**\n * An array of objects to display.\n * @group Props\n */\n value = model<any[]>();\n /**\n * Defines the layout mode.\n * @group Props\n */\n layout = input<DataViewLayout>('list');\n /**\n * Callback to invoke when paging, sorting or filtering happens in lazy mode.\n * @param {DataViewLazyLoadEvent} event - Custom lazy load event.\n * @group Emits\n */\n onLazyLoad = output<DataViewLazyLoadEvent>();\n /**\n * Callback to invoke when pagination occurs.\n * @param {DataViewPageEvent} event - Custom page event.\n * @group Emits\n */\n onPage = output<DataViewPageEvent>();\n /**\n * Callback to invoke when sorting occurs.\n * @param {DataViewSortEvent} event - Custom sort event.\n * @group Emits\n */\n onSort = output<DataViewSortEvent>();\n /**\n * Callback to invoke when changing layout.\n * @param {DataViewLayoutChangeEvent} event - Custom layout change event.\n * @group Emits\n */\n onChangeLayout = output<DataViewLayoutChangeEvent>();\n /**\n * Template for the list layout.\n * @param {DataViewListTemplateContext} context - list template context.\n * @group Templates\n */\n listTemplate = contentChild<TemplateRef<DataViewListTemplateContext>>('list', { descendants: false });\n /**\n * Template for grid layout.\n * @param {DataViewGridTemplateContext} context - grid template context.\n * @group Templates\n */\n gridTemplate = contentChild<TemplateRef<DataViewGridTemplateContext>>('grid', { descendants: false });\n /**\n * Template for the header section.\n * @group Templates\n */\n headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n /**\n * Template for the empty message section.\n * @group Templates\n */\n emptymessageTemplate = contentChild<TemplateRef<void>>('emptymessage', { descendants: false });\n /**\n * Template for the footer section.\n * @group Templates\n */\n footerTemplate = contentChild<TemplateRef<void>>('footer', { descendants: false });\n /**\n * Template for the left side of paginator.\n * @param {DataViewPaginatorLeftTemplateContext} context - paginator left template context.\n * @group Templates\n */\n paginatorleft = contentChild<TemplateRef<DataViewPaginatorLeftTemplateContext>>('paginatorleft', { descendants: false });\n /**\n * Template for the right side of paginator.\n * @param {DataViewPaginatorRightTemplateContext} context - paginator right template context.\n * @group Templates\n */\n paginatorright = contentChild<TemplateRef<DataViewPaginatorRightTemplateContext>>('paginatorright', { descendants: false });\n /**\n * Template for items in paginator dropdown.\n * @param {DataViewPaginatorDropdownItemTemplateContext} context - paginator dropdown item template context.\n * @group Templates\n */\n paginatordropdownitem = contentChild<TemplateRef<DataViewPaginatorDropdownItemTemplateContext>>('paginatordropdownitem', { descendants: false });\n /**\n * Template for loading icon.\n * @group Templates\n */\n loadingicon = contentChild<TemplateRef<void>>('loadingicon', { descendants: false });\n /**\n * Template for list icon.\n * @group Templates\n */\n listicon = contentChild<TemplateRef<void>>('listicon', { descendants: false });\n /**\n * Template for grid icon.\n * @group Templates\n */\n gridicon = contentChild<TemplateRef<void>>('gridicon', { descendants: false });\n\n header = contentChild(Header, { descendants: false });\n\n footer = contentChild(Footer, { descendants: false });\n\n filteredValue = signal<any[] | null>(null);\n\n filterValue = signal<string | null>(null);\n\n initialized = false;\n\n private translation = toSignal(this.config.translationObserver, { initialValue: this.config.translation });\n\n _componentStyle = inject(DataViewStyle);\n\n emptyMessageLabel = computed(() => {\n this.translation();\n return this.emptyMessage() || this.translate(TranslationKeys.EMPTY_MESSAGE);\n });\n\n displayedItems = computed(() => {\n const items = this.filteredValue() || this.value();\n if (!this.paginator()) return items;\n const start = this.lazy() ? 0 : this.first();\n const end = start + (this.rows() ?? 0);\n return items?.slice(start, end) ?? [];\n });\n\n showHeader = computed(() => !!this.header() || !!this.headerTemplate());\n\n showFooter = computed(() => !!this.footer() || !!this.footerTemplate());\n\n showTopPaginator = computed(() => this.paginator() && (this.paginatorPosition() === 'top' || this.paginatorPosition() === 'both'));\n\n showBottomPaginator = computed(() => this.paginator() && (this.paginatorPosition() === 'bottom' || this.paginatorPosition() === 'both'));\n\n isListLayout = computed(() => this.layout() === 'list');\n\n isGridLayout = computed(() => this.layout() === 'grid');\n\n $isEmpty = computed(() => {\n const data = this.filteredValue() || this.value();\n return data == null || data.length == 0;\n });\n\n showEmptyMessage = computed(() => this.$isEmpty() && !this.loading());\n\n filterService = inject(FilterService);\n\n constructor() {\n super();\n\n let layoutInit = false;\n effect(() => {\n const layout = this.layout();\n if (layoutInit) {\n untracked(() => this.onChangeLayout.emit({ layout }));\n }\n layoutInit = true;\n });\n\n effect(() => {\n this.value();\n untracked(() => {\n this.updateTotalRecords();\n if (!this.lazy() && this.hasFilter()) {\n this.filter(this.filterValue() as string);\n }\n });\n });\n\n let sortInit = false;\n effect(() => {\n this.sortField();\n this.sortOrder();\n if (sortInit) {\n untracked(() => this.sort());\n }\n sortInit = true;\n });\n }\n\n onInit() {\n if (this.lazy() && this.lazyLoadOnInit()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n this.initialized = true;\n }\n\n updateTotalRecords() {\n if (!this.lazy()) {\n this.totalRecords.set(this.value()?.length ?? 0);\n }\n }\n\n paginate(event: DataViewPaginatorState) {\n this.first.set(event.first!);\n this.rows.set(event.rows!);\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n }\n\n this.onPage.emit({\n first: this.first(),\n rows: this.rows()!\n });\n }\n\n sort() {\n this.first.set(0);\n\n if (this.lazy()) {\n this.onLazyLoad.emit(this.createLazyLoadMetadata());\n } else if (this.value()) {\n const sorted = [...this.value()!].sort((data1, data2) => {\n let value1 = resolveFieldData(data1, this.sortField());\n let value2 = resolveFieldData(data2, this.sortField());\n let result: number;\n\n if (value1 == null && value2 != null) result = -1;\n else if (value1 != null && value2 == null) result = 1;\n else if (value1 == null && value2 == null) result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2);\n else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n\n return (this.sortOrder() as number) * result;\n });\n\n this.value.set(sorted);\n\n if (this.hasFilter()) {\n this.filter(this.filterValue() as string);\n }\n }\n\n this.onSort.emit({\n sortField: this.sortField() as string,\n sortOrder: this.sortOrder() as number\n });\n }\n\n createLazyLoadMetadata(): DataViewLazyLoadEvent {\n return {\n first: this.first(),\n rows: this.rows()!,\n sortField: this.sortField() as string,\n sortOrder: this.sortOrder() as number\n };\n }\n\n getBlockableElement(): HTMLElement {\n return this.el.nativeElement.children[0];\n }\n\n filter(filter: string, filterMatchMode: string = 'contains') {\n this.filterValue.set(filter);\n\n const val = this.value();\n if (val && val.length) {\n let searchFields = (this.filterBy() as string).split(',');\n const filtered = this.filterService.filter(val, searchFields, filter, filterMatchMode, this.filterLocale());\n\n if (filtered.length === val.length) {\n this.filteredValue.set(null);\n } else {\n this.filteredValue.set(filtered);\n }\n\n if (this.paginator()) {\n this.first.set(0);\n this.totalRecords.set(this.filteredValue() ? this.filteredValue()!.length : val.length);\n }\n\n this.cd.markForCheck();\n }\n }\n\n hasFilter() {\n const fv = this.filterValue();\n return fv && fv.trim().length > 0;\n }\n}\n\n@NgModule({\n imports: [DataView],\n exports: [DataView]\n})\nexport class DataViewModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["SpinnerIcon"],"mappings":"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"}