igniteui-angular 21.0.3 → 21.1.0-alpha.0

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.
Files changed (93) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +5 -6
  3. package/fesm2022/igniteui-angular-action-strip.mjs +39 -34
  4. package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-banner.mjs +64 -59
  6. package/fesm2022/igniteui-angular-banner.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-calendar.mjs +182 -161
  8. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-carousel.mjs +7 -3
  10. package/fesm2022/igniteui-angular-carousel.mjs.map +1 -1
  11. package/fesm2022/igniteui-angular-chips.mjs +140 -136
  12. package/fesm2022/igniteui-angular-chips.mjs.map +1 -1
  13. package/fesm2022/igniteui-angular-combo.mjs +360 -356
  14. package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
  15. package/fesm2022/igniteui-angular-core.mjs +420 -618
  16. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  17. package/fesm2022/igniteui-angular-date-picker.mjs +124 -32
  18. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  19. package/fesm2022/igniteui-angular-directives.mjs +15 -10
  20. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  21. package/fesm2022/igniteui-angular-grids-core.mjs +75 -57
  22. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  23. package/fesm2022/igniteui-angular-grids-grid.mjs +71 -62
  24. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  25. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +51 -6
  26. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  27. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +6 -1
  28. package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
  29. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +8 -8
  30. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  31. package/fesm2022/igniteui-angular-input-group.mjs +8 -4
  32. package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
  33. package/fesm2022/igniteui-angular-list.mjs +24 -19
  34. package/fesm2022/igniteui-angular-list.mjs.map +1 -1
  35. package/fesm2022/igniteui-angular-paginator.mjs +71 -66
  36. package/fesm2022/igniteui-angular-paginator.mjs.map +1 -1
  37. package/fesm2022/igniteui-angular-query-builder.mjs +51 -36
  38. package/fesm2022/igniteui-angular-query-builder.mjs.map +1 -1
  39. package/fesm2022/igniteui-angular-time-picker.mjs +50 -8
  40. package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
  41. package/fesm2022/igniteui-angular-tree.mjs +64 -61
  42. package/fesm2022/igniteui-angular-tree.mjs.map +1 -1
  43. package/lib/core/styles/components/calendar/_calendar-theme.scss +2 -0
  44. package/lib/core/styles/components/grid/_grid-theme.scss +2 -1
  45. package/lib/core/styles/components/slider/_slider-theme.scss +0 -1
  46. package/lib/core/styles/components/tabs/_tabs-theme.scss +2 -1
  47. package/package.json +3 -2
  48. package/schematics/tsconfig.tsbuildinfo +1 -1
  49. package/schematics/utils/dependency-handler.js +1 -0
  50. package/styles/igniteui-angular-dark.css +1 -1
  51. package/styles/igniteui-angular.css +1 -1
  52. package/styles/igniteui-bootstrap-dark.css +1 -1
  53. package/styles/igniteui-bootstrap-light.css +1 -1
  54. package/styles/igniteui-dark-green.css +1 -1
  55. package/styles/igniteui-fluent-dark-excel.css +1 -1
  56. package/styles/igniteui-fluent-dark-word.css +1 -1
  57. package/styles/igniteui-fluent-dark.css +1 -1
  58. package/styles/igniteui-fluent-light-excel.css +1 -1
  59. package/styles/igniteui-fluent-light-word.css +1 -1
  60. package/styles/igniteui-fluent-light.css +1 -1
  61. package/styles/igniteui-indigo-dark.css +1 -1
  62. package/styles/igniteui-indigo-light.css +1 -1
  63. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  64. package/styles/maps/igniteui-angular.css.map +1 -1
  65. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  66. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  67. package/styles/maps/igniteui-dark-green.css.map +1 -1
  68. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  69. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  70. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  71. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  72. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  73. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  74. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  75. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  76. package/types/igniteui-angular-action-strip.d.ts +3 -0
  77. package/types/igniteui-angular-banner.d.ts +3 -0
  78. package/types/igniteui-angular-calendar.d.ts +37 -47
  79. package/types/igniteui-angular-carousel.d.ts +1 -0
  80. package/types/igniteui-angular-chips.d.ts +2 -0
  81. package/types/igniteui-angular-combo.d.ts +4 -2
  82. package/types/igniteui-angular-core.d.ts +152 -397
  83. package/types/igniteui-angular-date-picker.d.ts +22 -4
  84. package/types/igniteui-angular-directives.d.ts +8 -4
  85. package/types/igniteui-angular-grids-core.d.ts +18 -8
  86. package/types/igniteui-angular-grids-grid.d.ts +9 -7
  87. package/types/igniteui-angular-grids-hierarchical-grid.d.ts +20 -3
  88. package/types/igniteui-angular-input-group.d.ts +1 -0
  89. package/types/igniteui-angular-list.d.ts +3 -0
  90. package/types/igniteui-angular-paginator.d.ts +3 -0
  91. package/types/igniteui-angular-query-builder.d.ts +8 -0
  92. package/types/igniteui-angular-time-picker.d.ts +7 -2
  93. package/types/igniteui-angular-tree.d.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-list.mjs","sources":["../../../projects/igniteui-angular/list/src/list/list.common.ts","../../../projects/igniteui-angular/list/src/list/list-item.component.ts","../../../projects/igniteui-angular/list/src/list/list-item.component.html","../../../projects/igniteui-angular/list/src/list/list.component.ts","../../../projects/igniteui-angular/list/src/list/list.component.html","../../../projects/igniteui-angular/list/src/list/public_api.ts","../../../projects/igniteui-angular/list/src/list/list.module.ts","../../../projects/igniteui-angular/list/src/igniteui-angular-list.ts"],"sourcesContent":["import { Directive, TemplateRef, EventEmitter, QueryList, ElementRef, inject } from '@angular/core';\n\nexport interface IListChild {\n index: number;\n}\n\n/** @hidden */\n@Directive({\n selector: '[igxListBase]',\n standalone: true\n})\nexport class IgxListBaseDirective {\n protected el = inject(ElementRef, { optional: true });\n\n public itemClicked: EventEmitter<any>;\n public allowLeftPanning: boolean;\n public allowRightPanning: boolean;\n public panEndTriggeringThreshold: number;\n public leftPan: EventEmitter<any>;\n public rightPan: EventEmitter<any>;\n public startPan: EventEmitter<any>;\n public endPan: EventEmitter<any>;\n public resetPan: EventEmitter<any>;\n public panStateChange: EventEmitter<any>;\n public children: QueryList<any>;\n public listItemLeftPanningTemplate: IgxListItemLeftPanningTemplateDirective;\n public listItemRightPanningTemplate: IgxListItemRightPanningTemplateDirective;\n}\n\nexport enum IgxListPanState { NONE, LEFT, RIGHT }\n\n@Directive({\n selector: '[igxEmptyList]',\n standalone: true\n})\nexport class IgxEmptyListTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({\n selector: '[igxDataLoading]',\n standalone: true\n})\nexport class IgxDataLoadingTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({\n selector: '[igxListItemLeftPanning]',\n standalone: true\n})\nexport class IgxListItemLeftPanningTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({\n selector: '[igxListItemRightPanning]',\n standalone: true\n})\nexport class IgxListItemRightPanningTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Input, Renderer2, ViewChild, booleanAttribute, inject } from '@angular/core';\n\nimport {\n IgxListPanState,\n IListChild,\n IgxListBaseDirective\n} from './list.common';\n\nimport { HammerGesturesManager } from 'igniteui-angular/core';\nimport { rem } from 'igniteui-angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * The Ignite UI List Item component is a container intended for row items in the Ignite UI for Angular List component.\n *\n * Example:\n * ```html\n * <igx-list>\n * <igx-list-item isHeader=\"true\">Contacts</igx-list-item>\n * <igx-list-item *ngFor=\"let contact of contacts\">\n * <span class=\"name\">{{ contact.name }}</span>\n * <span class=\"phone\">{{ contact.phone }}</span>\n * </igx-list-item>\n * </igx-list>\n * ```\n */\n@Component({\n providers: [HammerGesturesManager],\n selector: 'igx-list-item',\n templateUrl: 'list-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class IgxListItemComponent implements IListChild {\n public list = inject(IgxListBaseDirective);\n private elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n\n /**\n * Provides a reference to the template's base element shown when left panning a list item.\n * ```typescript\n * const leftPanTmpl = this.listItem.leftPanningTemplateElement;\n * ```\n */\n @ViewChild('leftPanningTmpl')\n public leftPanningTemplateElement;\n\n /**\n * Provides a reference to the template's base element shown when right panning a list item.\n * ```typescript\n * const rightPanTmpl = this.listItem.rightPanningTemplateElement;\n * ```\n */\n @ViewChild('rightPanningTmpl')\n public rightPanningTemplateElement;\n\n /**\n * Sets/gets whether the `list item` is a header.\n * ```html\n * <igx-list-item [isHeader] = \"true\">Header</igx-list-item>\n * ```\n * ```typescript\n * let isHeader = this.listItem.isHeader;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @Input({ transform: booleanAttribute })\n public isHeader: boolean;\n\n /**\n * Sets/gets whether the `list item` is hidden.\n * By default the `hidden` value is `false`.\n * ```html\n * <igx-list-item [hidden] = \"true\">Hidden Item</igx-list-item>\n * ```\n * ```typescript\n * let isHidden = this.listItem.hidden;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @Input({ transform: booleanAttribute })\n public hidden = false;\n\n /**\n * Sets/gets the `aria-label` attribute of the `list item`.\n * ```typescript\n * this.listItem.ariaLabel = \"Item1\";\n * ```\n * ```typescript\n * let itemAriaLabel = this.listItem.ariaLabel;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('attr.aria-label')\n public ariaLabel: string;\n\n /**\n * Gets the `touch-action` style of the `list item`.\n * ```typescript\n * let touchAction = this.listItem.touchAction;\n * ```\n */\n @HostBinding('style.touch-action')\n public touchAction = 'pan-y';\n\n /**\n * @hidden\n */\n private _panState: IgxListPanState = IgxListPanState.NONE;\n\n /**\n * @hidden\n */\n private panOffset = 0;\n\n /**\n * @hidden\n */\n private _index: number = null;\n\n /**\n * @hidden\n */\n private lastPanDir = IgxListPanState.NONE;\n\n private _role: string = '';\n private _selected = false;;\n\n /**\n * Gets the `panState` of a `list item`.\n * ```typescript\n * let itemPanState = this.listItem.panState;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get panState(): IgxListPanState {\n return this._panState;\n }\n\n /**\n * Gets the `index` of a `list item`.\n * ```typescript\n * let itemIndex = this.listItem.index;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @Input()\n public get index(): number {\n return this._index !== null ? this._index : this.list.children.toArray().indexOf(this);\n }\n\n /**\n * Sets the `index` of the `list item`.\n * ```typescript\n * this.listItem.index = index;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public set index(value: number) {\n this._index = value;\n }\n\n /**\n * Returns an element reference to the list item.\n * ```typescript\n * let listItemElement = this.listItem.element.\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get element() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Returns a reference container which contains the list item's content.\n * ```typescript\n * let listItemContainer = this.listItem.contentElement.\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get contentElement() {\n const candidates = this.element.getElementsByClassName('igx-list__item-content');\n return (candidates && candidates.length > 0) ? candidates[0] : null;\n }\n\n /**\n * Returns the `context` object which represents the `template context` binding into the `list item container`\n * by providing the `$implicit` declaration which is the `IgxListItemComponent` itself.\n * ```typescript\n * let listItemComponent = this.listItem.context;\n * ```\n */\n public get context(): any {\n return {\n $implicit: this\n };\n }\n\n /**\n * Gets the width of a `list item`.\n * ```typescript\n * let itemWidth = this.listItem.width;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get width() {\n if (this.element) {\n return this.element.offsetWidth;\n }\n }\n\n /**\n * Gets the maximum left position of the `list item`.\n * ```typescript\n * let maxLeft = this.listItem.maxLeft;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get maxLeft() {\n return -this.width;\n }\n\n /**\n * Gets the maximum right position of the `list item`.\n * ```typescript\n * let maxRight = this.listItem.maxRight;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get maxRight() {\n return this.width;\n }\n\n /** @hidden @internal */\n public get offsetWidthInRem() {\n return rem(this.element.offsetWidth);\n }\n\n /** @hidden @internal */\n public get offsetHeightInRem() {\n return rem(this.element.offsetHeight);\n }\n\n /**\n * Gets/Sets the `role` attribute of the `list item`.\n * ```typescript\n * let itemRole = this.listItem.role;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('attr.role')\n @Input()\n public get role() {\n return this._role ? this._role : this.isHeader ? 'separator' : 'listitem';\n }\n\n public set role(val: string) {\n this._role = val;\n }\n\n /**\n * Sets/gets whether the `list item` is selected.\n * Selection is only applied to non-header items.\n * When selected, the CSS class 'igx-list__item-base--selected' is added to the item.\n * ```html\n * <igx-list-item [selected]=\"true\">Selected Item</igx-list-item>\n * ```\n * ```typescript\n * let isSelected = this.listItem.selected;\n * this.listItem.selected = true;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('class.igx-list__item-base--selected')\n @Input({ transform: booleanAttribute })\n public get selected() {\n return this._selected && !this.isHeader;\n }\n\n public set selected(value: boolean) {\n this._selected = value;\n }\n\n /**\n * Indicates whether `list item` should have header style.\n * ```typescript\n * let headerStyle = this.listItem.headerStyle;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('class.igx-list__header')\n public get headerStyle(): boolean {\n return this.isHeader;\n }\n\n /**\n * Applies the inner style of the `list item` if the item is not counted as header.\n * ```typescript\n * let innerStyle = this.listItem.innerStyle;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('class.igx-list__item-base')\n public get innerStyle(): boolean {\n return !this.isHeader;\n }\n\n /**\n * Returns string value which describes the display mode of the `list item`.\n * ```typescript\n * let isHidden = this.listItem.display;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('style.display')\n public get display(): string {\n return this.hidden ? 'none' : '';\n }\n\n /**\n * @hidden\n */\n @HostListener('click', ['$event'])\n public clicked(evt) {\n this.list.itemClicked.emit({ item: this, event: evt, direction: this.lastPanDir });\n this.lastPanDir = IgxListPanState.NONE;\n }\n\n /**\n * @hidden\n */\n @HostListener('panstart')\n public panStart() {\n if (this.isTrue(this.isHeader)) {\n return;\n }\n if (!this.isTrue(this.list.allowLeftPanning) && !this.isTrue(this.list.allowRightPanning)) {\n return;\n }\n\n this.list.startPan.emit({ item: this, direction: this.lastPanDir, keepitem: false });\n }\n\n /**\n * @hidden\n */\n @HostListener('pancancel')\n public panCancel() {\n this.resetPanPosition();\n this.list.endPan.emit({ item: this, direction: this.lastPanDir, keepItem: false });\n }\n\n /**\n * @hidden\n */\n @HostListener('panmove', ['$event'])\n public panMove(ev) {\n if (this.isTrue(this.isHeader)) {\n return;\n }\n if (!this.isTrue(this.list.allowLeftPanning) && !this.isTrue(this.list.allowRightPanning)) {\n return;\n }\n const isPanningToLeft = ev.deltaX < 0;\n if (isPanningToLeft && this.isTrue(this.list.allowLeftPanning)) {\n this.showLeftPanTemplate();\n this.setContentElementLeft(Math.max(this.maxLeft, ev.deltaX));\n } else if (!isPanningToLeft && this.isTrue(this.list.allowRightPanning)) {\n this.showRightPanTemplate();\n this.setContentElementLeft(Math.min(this.maxRight, ev.deltaX));\n }\n }\n\n /**\n * @hidden\n */\n @HostListener('panend')\n public panEnd() {\n if (this.isTrue(this.isHeader)) {\n return;\n }\n if (!this.isTrue(this.list.allowLeftPanning) && !this.isTrue(this.list.allowRightPanning)) {\n return;\n }\n\n // the translation offset of the current list item content\n const relativeOffset = this.panOffset;\n const widthTriggeringGrip = this.width * this.list.panEndTriggeringThreshold;\n\n if (relativeOffset === 0) {\n return; // no panning has occured\n }\n\n const dir = relativeOffset > 0 ? IgxListPanState.RIGHT : IgxListPanState.LEFT;\n this.lastPanDir = dir;\n\n const args = { item: this, direction: dir, keepItem: false };\n this.list.endPan.emit(args);\n\n const oldPanState = this._panState;\n if (Math.abs(relativeOffset) < widthTriggeringGrip) {\n this.resetPanPosition();\n this.list.resetPan.emit(this);\n return;\n }\n\n if (dir === IgxListPanState.LEFT) {\n this.list.leftPan.emit(args);\n } else {\n this.list.rightPan.emit(args);\n }\n\n if (args.keepItem === true) {\n this.setContentElementLeft(0);\n this._panState = IgxListPanState.NONE;\n } else {\n if (dir === IgxListPanState.LEFT) {\n this.setContentElementLeft(this.maxLeft);\n this._panState = IgxListPanState.LEFT;\n } else {\n this.setContentElementLeft(this.maxRight);\n this._panState = IgxListPanState.RIGHT;\n }\n }\n\n if (oldPanState !== this._panState) {\n const args2 = { oldState: oldPanState, newState: this._panState, item: this };\n this.list.panStateChange.emit(args2);\n }\n this.hideLeftAndRightPanTemplates();\n }\n\n /**\n * @hidden\n */\n private showLeftPanTemplate() {\n this.setLeftAndRightTemplatesVisibility('visible', 'hidden');\n }\n\n /**\n * @hidden\n */\n private showRightPanTemplate() {\n this.setLeftAndRightTemplatesVisibility('hidden', 'visible');\n }\n\n /**\n * @hidden\n */\n private hideLeftAndRightPanTemplates() {\n setTimeout(() => {\n this.setLeftAndRightTemplatesVisibility('hidden', 'hidden');\n }, 500);\n }\n\n /**\n * @hidden\n */\n private setLeftAndRightTemplatesVisibility(leftVisibility, rightVisibility) {\n if (this.leftPanningTemplateElement && this.leftPanningTemplateElement.nativeElement) {\n this.leftPanningTemplateElement.nativeElement.style.visibility = leftVisibility;\n }\n if (this.rightPanningTemplateElement && this.rightPanningTemplateElement.nativeElement) {\n this.rightPanningTemplateElement.nativeElement.style.visibility = rightVisibility;\n }\n }\n\n /**\n * @hidden\n */\n private setContentElementLeft(value: number) {\n this.panOffset = value;\n this.contentElement.style.transform = 'translateX(' + value + 'px)';\n }\n\n /**\n * @hidden\n */\n private isTrue(value: boolean): boolean {\n if (typeof (value) === 'boolean') {\n return value;\n } else {\n return value === 'true';\n }\n }\n\n /**\n * @hidden\n */\n private resetPanPosition() {\n this.setContentElementLeft(0);\n this._panState = IgxListPanState.NONE;\n this.hideLeftAndRightPanTemplates();\n }\n}\n","\n@if (!isHeader && list.listItemLeftPanningTemplate) {\n <div #leftPanningTmpl class=\"igx-list__item-right\"\n [style.width.rem]=\"offsetWidthInRem\" [style.height.rem]=\"offsetHeightInRem\">\n <ng-container *ngTemplateOutlet=\"list.listItemLeftPanningTemplate.template; context: context\">\n </ng-container>\n </div>\n}\n\n@if (!isHeader && list.listItemRightPanningTemplate) {\n <div #rightPanningTmpl class=\"igx-list__item-left\"\n [style.width.rem]=\"offsetWidthInRem\" [style.height.rem]=\"offsetHeightInRem\">\n <ng-container *ngTemplateOutlet=\"list.listItemRightPanningTemplate.template; context: context\">\n </ng-container>\n </div>\n}\n\n<ng-template #itemsContent>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemThumbnails>\n <div class=\"igx-list__item-thumbnail\">\n <ng-content select=\"[igxListThumbnail], igx-list__item-thumbnail, igx-avatar\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #itemLines>\n <div class=\"igx-list__item-lines\">\n <ng-content select=\"[igxListLine], .igx-list__item-lines, [igxListLineTitle], [igxListLineSubTitle], .igx-list__item-line-title, .igx-list__item-line-subtitle\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #itemActions>\n <div class=\"igx-list__item-actions\">\n <ng-content select=\"[igxListAction], .igx-list__item-actions\"></ng-content>\n </div>\n</ng-template>\n\n@if (isHeader) {\n <ng-container *ngTemplateOutlet=\"itemsContent\"></ng-container>\n}\n\n@if (!isHeader) {\n <div class=\"igx-list__item-content\">\n <ng-container *ngTemplateOutlet=\"itemThumbnails\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemLines\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemActions\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemsContent\"></ng-container>\n </div>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component, ContentChild, ContentChildren, ElementRef, EventEmitter, forwardRef, HostBinding, Input, Output, QueryList, TemplateRef, ViewChild, Directive, booleanAttribute, inject } from '@angular/core';\n\n\n\nimport { IgxListItemComponent } from './list-item.component';\nimport {\n IgxListBaseDirective,\n IgxDataLoadingTemplateDirective,\n IgxEmptyListTemplateDirective,\n IgxListPanState,\n IgxListItemLeftPanningTemplateDirective,\n IgxListItemRightPanningTemplateDirective\n} from './list.common';\nimport { IBaseEventArgs } from 'igniteui-angular/core';\nimport { IListResourceStrings, ListResourceStringsEN } from 'igniteui-angular/core';\nimport { getCurrentResourceStrings } from 'igniteui-angular/core';\n\nlet NEXT_ID = 0;\n\n/**\n * Interface for the panStateChange igxList event arguments\n */\nexport interface IPanStateChangeEventArgs extends IBaseEventArgs {\n oldState: IgxListPanState;\n newState: IgxListPanState;\n item: IgxListItemComponent;\n}\n\n/**\n * Interface for the listItemClick igxList event arguments\n */\nexport interface IListItemClickEventArgs extends IBaseEventArgs {\n item: IgxListItemComponent;\n event: Event;\n direction: IgxListPanState;\n}\n\n/**\n * Interface for the listItemPanning igxList event arguments\n */\nexport interface IListItemPanningEventArgs extends IBaseEventArgs {\n item: IgxListItemComponent;\n direction: IgxListPanState;\n keepItem: boolean;\n}\n\n/**\n * igxListThumbnail is container for the List media\n * Use it to wrap anything you want to be used as a thumbnail.\n */\n@Directive({\n selector: '[igxListThumbnail]',\n standalone: true\n})\nexport class IgxListThumbnailDirective { }\n\n/**\n * igxListAction is container for the List action\n * Use it to wrap anything you want to be used as a list action: icon, checkbox...\n */\n@Directive({\n selector: '[igxListAction]',\n standalone: true\n})\nexport class IgxListActionDirective { }\n\n/**\n * igxListLine is container for the List text content\n * Use it to wrap anything you want to be used as a plane text.\n */\n@Directive({\n selector: '[igxListLine]',\n standalone: true\n})\nexport class IgxListLineDirective { }\n\n/**\n * igxListLineTitle is a directive that add class to the target element\n * Use it to make anything to look like list Title.\n */\n@Directive({\n selector: '[igxListLineTitle]',\n standalone: true\n})\nexport class IgxListLineTitleDirective {\n @HostBinding('class.igx-list__item-line-title')\n public cssClass = 'igx-list__item-line-title';\n}\n\n/**\n * igxListLineSubTitle is a directive that add class to the target element\n * Use it to make anything to look like list Subtitle.\n */\n@Directive({\n selector: '[igxListLineSubTitle]',\n standalone: true\n})\nexport class IgxListLineSubTitleDirective {\n @HostBinding('class.igx-list__item-line-subtitle')\n public cssClass = 'igx-list__item-line-subtitle';\n}\n\n/**\n * Displays a collection of data items in a templatable list format\n *\n * @igxModule IgxListModule\n *\n * @igxTheme igx-list-theme\n *\n * @igxKeywords list, data\n *\n * @igxGroup Grids & Lists\n *\n * @remarks\n * The Ignite UI List displays rows of items and supports one or more header items as well as search and filtering\n * of list items. Each list item is completely templatable and will support any valid HTML or Angular component.\n *\n * @example\n * ```html\n * <igx-list>\n * <igx-list-item isHeader=\"true\">Contacts</igx-list-item>\n * <igx-list-item *ngFor=\"let contact of contacts\">\n * <span class=\"name\">{{ contact.name }}</span>\n * <span class=\"phone\">{{ contact.phone }}</span>\n * </igx-list-item>\n * </igx-list>\n * ```\n */\n@Component({\n selector: 'igx-list',\n templateUrl: 'list.component.html',\n providers: [{ provide: IgxListBaseDirective, useExisting: IgxListComponent }],\n imports: [NgTemplateOutlet]\n})\nexport class IgxListComponent extends IgxListBaseDirective {\n public element = inject(ElementRef);\n\n /**\n * Returns a collection of all items and headers in the list.\n *\n * @example\n * ```typescript\n * let listChildren: QueryList = this.list.children;\n * ```\n */\n @ContentChildren(forwardRef(() => IgxListItemComponent), { descendants: true })\n public override children: QueryList<IgxListItemComponent>;\n\n /**\n * Sets/gets the empty list template.\n *\n * @remarks\n * This template is used by IgxList in case there are no list items\n * defined and `isLoading` is set to `false`.\n *\n * @example\n * ```html\n * <igx-list>\n * <ng-template igxEmptyList>\n * <p class=\"empty\">No contacts! :(</p>\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let emptyTemplate = this.list.emptyListTemplate;\n * ```\n */\n @ContentChild(IgxEmptyListTemplateDirective, { read: IgxEmptyListTemplateDirective })\n public emptyListTemplate: IgxEmptyListTemplateDirective;\n\n /**\n * Sets/gets the list loading template.\n *\n * @remarks\n * This template is used by IgxList in case there are no list items defined and `isLoading` is set to `true`.\n *\n * @example\n * ```html\n * <igx-list>\n * <ng-template igxDataLoading>\n * <p>Patience, we are currently loading your data...</p>\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let loadingTemplate = this.list.dataLoadingTemplate;\n * ```\n */\n @ContentChild(IgxDataLoadingTemplateDirective, { read: IgxDataLoadingTemplateDirective })\n public dataLoadingTemplate: IgxDataLoadingTemplateDirective;\n\n /**\n * Sets/gets the template for left panning a list item.\n *\n * @remarks\n * Default value is `null`.\n *\n * @example\n * ```html\n * <igx-list [allowLeftPanning]=\"true\">\n * <ng-template igxListItemLeftPanning>\n * <igx-icon>delete</igx-icon>Delete\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let itemLeftPanTmpl = this.list.listItemLeftPanningTemplate;\n * ```\n */\n @ContentChild(IgxListItemLeftPanningTemplateDirective, { read: IgxListItemLeftPanningTemplateDirective })\n public override listItemLeftPanningTemplate: IgxListItemLeftPanningTemplateDirective;\n\n /**\n * Sets/gets the template for right panning a list item.\n *\n * @remarks\n * Default value is `null`.\n *\n * @example\n * ```html\n * <igx-list [allowRightPanning] = \"true\">\n * <ng-template igxListItemRightPanning>\n * <igx-icon>call</igx-icon>Dial\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let itemRightPanTmpl = this.list.listItemRightPanningTemplate;\n * ```\n */\n @ContentChild(IgxListItemRightPanningTemplateDirective, { read: IgxListItemRightPanningTemplateDirective })\n public override listItemRightPanningTemplate: IgxListItemRightPanningTemplateDirective;\n\n /**\n * Provides a threshold after which the item's panning will be completed automatically.\n *\n * @remarks\n * By default this property is set to 0.5 which is 50% of the list item's width.\n *\n * @example\n * ```html\n * <igx-list [panEndTriggeringThreshold]=\"0.8\"></igx-list>\n * ```\n */\n @Input()\n public override panEndTriggeringThreshold = 0.5;\n\n /**\n * Sets/gets the `id` of the list.\n *\n * @remarks\n * If not set, the `id` of the first list component will be `\"igx-list-0\"`.\n *\n * @example\n * ```html\n * <igx-list id=\"my-first-list\"></igx-list>\n * ```\n * ```typescript\n * let listId = this.list.id;\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-list-${NEXT_ID++}`;\n\n /**\n * Sets/gets whether the left panning of an item is allowed.\n *\n * @remarks\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-list [allowLeftPanning]=\"true\"></igx-list>\n * ```\n * ```typescript\n * let isLeftPanningAllowed = this.list.allowLeftPanning;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public override allowLeftPanning = false;\n\n /**\n * Sets/gets whether the right panning of an item is allowed.\n *\n * @remarks\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-list [allowRightPanning]=\"true\"></igx-list>\n * ```\n * ```typescript\n * let isRightPanningAllowed = this.list.allowRightPanning;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public override allowRightPanning = false;\n\n /**\n * Sets/gets whether the list is currently loading data.\n *\n * @remarks\n * Set it to display the dataLoadingTemplate while data is being retrieved.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-list [isLoading]=\"true\"></igx-list>\n * ```\n * ```typescript\n * let isLoading = this.list.isLoading;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * Event emitted when a left pan gesture is executed on a list item.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list [allowLeftPanning]=\"true\" (leftPan)=\"leftPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override leftPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a right pan gesture is executed on a list item.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list [allowRightPanning]=\"true\" (rightPan)=\"rightPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override rightPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a pan gesture is started.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list (startPan)=\"startPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override startPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a pan gesture is completed or canceled.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list (endPan)=\"endPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override endPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a pan item is returned to its original position.\n *\n * @remarks\n * Provides a reference to an object of type `IgxListComponent` as an event argument.\n *\n * @example\n * ```html\n * <igx-list (resetPan)=\"resetPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override resetPan = new EventEmitter<IgxListComponent>();\n\n /**\n *\n * Event emitted when a pan gesture is executed on a list item.\n *\n * @remarks\n * Provides references to the `IgxListItemComponent` and `IgxListPanState` as event arguments.\n *\n * @example\n * ```html\n * <igx-list (panStateChange)=\"panStateChange($event)\"></igx-list>\n * ```\n */\n @Output()\n public override panStateChange = new EventEmitter<IPanStateChangeEventArgs>();\n\n /**\n * Event emitted when a list item is clicked.\n *\n * @remarks\n * Provides references to the `IgxListItemComponent` and `Event` as event arguments.\n *\n * @example\n * ```html\n * <igx-list (itemClicked)=\"onItemClicked($event)\"></igx-list>\n * ```\n */\n @Output()\n public override itemClicked = new EventEmitter<IListItemClickEventArgs>();\n\n /**\n * @hidden\n * @internal\n */\n @ViewChild('defaultEmptyList', { read: TemplateRef, static: true })\n protected defaultEmptyListTemplate: TemplateRef<any>;\n\n /**\n * @hidden\n * @internal\n */\n @ViewChild('defaultDataLoading', { read: TemplateRef, static: true })\n protected defaultDataLoadingTemplate: TemplateRef<any>;\n\n private _resourceStrings = getCurrentResourceStrings(ListResourceStringsEN);\n\n /**\n * Sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IListResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * Returns the resource strings.\n */\n public get resourceStrings(): IListResourceStrings {\n return this._resourceStrings;\n }\n\n /**\n * @hidden\n * @internal\n */\n protected get sortedChildren(): IgxListItemComponent[] {\n if (this.children !== undefined) {\n return this.children.toArray()\n .sort((a: IgxListItemComponent, b: IgxListItemComponent) => a.index - b.index);\n }\n return null;\n }\n\n private _role = 'list';\n\n /**\n * Gets/Sets the `role` attribute value.\n *\n * @example\n * ```typescript\n * let listRole = this.list.role;\n * ```\n */\n @HostBinding('attr.role')\n @Input()\n public get role() {\n return this._role;\n }\n\n public set role(val: string) {\n this._role = val;\n }\n\n /**\n * Gets a boolean indicating if the list is empty.\n *\n * @example\n * ```typescript\n * let isEmpty = this.list.isListEmpty;\n * ```\n */\n @HostBinding('class.igx-list--empty')\n public get isListEmpty(): boolean {\n return !this.children || this.children.length === 0;\n }\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('class.igx-list')\n public get cssClass(): boolean {\n return !this.isListEmpty;\n }\n\n /**\n * Gets the list `items` excluding the header ones.\n *\n * @example\n * ```typescript\n * let listItems: IgxListItemComponent[] = this.list.items;\n * ```\n */\n public get items(): IgxListItemComponent[] {\n const items: IgxListItemComponent[] = [];\n if (this.children !== undefined) {\n for (const child of this.sortedChildren) {\n if (!child.isHeader) {\n items.push(child);\n }\n }\n }\n return items;\n }\n\n /**\n * Gets the header list `items`.\n *\n * @example\n * ```typescript\n * let listHeaders: IgxListItemComponent[] = this.list.headers;\n * ```\n */\n public get headers(): IgxListItemComponent[] {\n const headers: IgxListItemComponent[] = [];\n if (this.children !== undefined) {\n for (const child of this.children.toArray()) {\n if (child.isHeader) {\n headers.push(child);\n }\n }\n }\n return headers;\n }\n\n /**\n * Gets the `context` object of the template binding.\n *\n * @remarks\n * Gets the `context` object which represents the `template context` binding into the `list container`\n * by providing the `$implicit` declaration which is the `IgxListComponent` itself.\n *\n * @example\n * ```typescript\n * let listComponent = this.list.context;\n * ```\n */\n public get context(): any {\n return {\n $implicit: this\n };\n }\n\n /**\n * Gets a `TemplateRef` to the currently used template.\n *\n * @example\n * ```typescript\n * let listTemplate = this.list.template;\n * ```\n */\n public get template(): TemplateRef<any> {\n if (this.isLoading) {\n return this.dataLoadingTemplate ? this.dataLoadingTemplate.template : this.defaultDataLoadingTemplate;\n } else {\n return this.emptyListTemplate ? this.emptyListTemplate.template : this.defaultEmptyListTemplate;\n }\n }\n}\n\n/**\n * @hidden\n */\n\n","<ng-content></ng-content>\n\n<ng-template #defaultEmptyList>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_no_items}}\n </article>\n</ng-template>\n\n<ng-template #defaultDataLoading>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_loading}}\n </article>\n</ng-template>\n\n@if (!children || children.length === 0 || isLoading) {\n <ng-container *ngTemplateOutlet=\"template; context: context\">\n </ng-container>\n}\n","import { IgxListItemComponent } from './list-item.component';\nimport { IgxDataLoadingTemplateDirective, IgxEmptyListTemplateDirective, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective } from './list.common';\nimport { IgxListActionDirective, IgxListComponent, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListThumbnailDirective } from './list.component';\n\nexport * from './list.component';\nexport {\n IgxListBaseDirective,\n IgxListPanState,\n IgxEmptyListTemplateDirective,\n IgxDataLoadingTemplateDirective,\n IgxListItemLeftPanningTemplateDirective,\n IgxListItemRightPanningTemplateDirective\n} from './list.common';\nexport * from './list-item.component';\n\n/* NOTE: List directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_LIST_DIRECTIVES = [\n IgxListComponent,\n IgxListItemComponent,\n IgxListThumbnailDirective,\n IgxListActionDirective,\n IgxListLineDirective,\n IgxListLineTitleDirective,\n IgxListLineSubTitleDirective,\n IgxDataLoadingTemplateDirective,\n IgxEmptyListTemplateDirective,\n IgxListItemLeftPanningTemplateDirective,\n IgxListItemRightPanningTemplateDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_LIST_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_LIST_DIRECTIVES\n ],\n exports: [\n ...IGX_LIST_DIRECTIVES\n ]\n})\n\nexport class IgxListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxListComponent","i2.IgxListItemComponent","i1.IgxListThumbnailDirective","i1.IgxListActionDirective","i1.IgxListLineDirective","i1.IgxListLineTitleDirective","i1.IgxListLineSubTitleDirective","i3.IgxDataLoadingTemplateDirective","i3.IgxEmptyListTemplateDirective","i3.IgxListItemLeftPanningTemplateDirective","i3.IgxListItemRightPanningTemplateDirective"],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-list.mjs","sources":["../../../projects/igniteui-angular/list/src/list/list.common.ts","../../../projects/igniteui-angular/list/src/list/list-item.component.ts","../../../projects/igniteui-angular/list/src/list/list-item.component.html","../../../projects/igniteui-angular/list/src/list/list.component.ts","../../../projects/igniteui-angular/list/src/list/list.component.html","../../../projects/igniteui-angular/list/src/list/public_api.ts","../../../projects/igniteui-angular/list/src/list/list.module.ts","../../../projects/igniteui-angular/list/src/igniteui-angular-list.ts"],"sourcesContent":["import { Directive, TemplateRef, EventEmitter, QueryList, ElementRef, inject } from '@angular/core';\n\nexport interface IListChild {\n index: number;\n}\n\n/** @hidden */\n@Directive({\n selector: '[igxListBase]',\n standalone: true\n})\nexport class IgxListBaseDirective {\n protected el = inject(ElementRef, { optional: true });\n\n public itemClicked: EventEmitter<any>;\n public allowLeftPanning: boolean;\n public allowRightPanning: boolean;\n public panEndTriggeringThreshold: number;\n public leftPan: EventEmitter<any>;\n public rightPan: EventEmitter<any>;\n public startPan: EventEmitter<any>;\n public endPan: EventEmitter<any>;\n public resetPan: EventEmitter<any>;\n public panStateChange: EventEmitter<any>;\n public children: QueryList<any>;\n public listItemLeftPanningTemplate: IgxListItemLeftPanningTemplateDirective;\n public listItemRightPanningTemplate: IgxListItemRightPanningTemplateDirective;\n}\n\nexport enum IgxListPanState { NONE, LEFT, RIGHT }\n\n@Directive({\n selector: '[igxEmptyList]',\n standalone: true\n})\nexport class IgxEmptyListTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({\n selector: '[igxDataLoading]',\n standalone: true\n})\nexport class IgxDataLoadingTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({\n selector: '[igxListItemLeftPanning]',\n standalone: true\n})\nexport class IgxListItemLeftPanningTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n\n@Directive({\n selector: '[igxListItemRightPanning]',\n standalone: true\n})\nexport class IgxListItemRightPanningTemplateDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Input, Renderer2, ViewChild, booleanAttribute, inject } from '@angular/core';\n\nimport {\n IgxListPanState,\n IListChild,\n IgxListBaseDirective\n} from './list.common';\n\nimport { HammerGesturesManager } from 'igniteui-angular/core';\nimport { rem } from 'igniteui-angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * The Ignite UI List Item component is a container intended for row items in the Ignite UI for Angular List component.\n *\n * Example:\n * ```html\n * <igx-list>\n * <igx-list-item isHeader=\"true\">Contacts</igx-list-item>\n * <igx-list-item *ngFor=\"let contact of contacts\">\n * <span class=\"name\">{{ contact.name }}</span>\n * <span class=\"phone\">{{ contact.phone }}</span>\n * </igx-list-item>\n * </igx-list>\n * ```\n */\n@Component({\n providers: [HammerGesturesManager],\n selector: 'igx-list-item',\n templateUrl: 'list-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet]\n})\nexport class IgxListItemComponent implements IListChild {\n public list = inject(IgxListBaseDirective);\n private elementRef = inject(ElementRef);\n private _renderer = inject(Renderer2);\n\n /**\n * Provides a reference to the template's base element shown when left panning a list item.\n * ```typescript\n * const leftPanTmpl = this.listItem.leftPanningTemplateElement;\n * ```\n */\n @ViewChild('leftPanningTmpl')\n public leftPanningTemplateElement;\n\n /**\n * Provides a reference to the template's base element shown when right panning a list item.\n * ```typescript\n * const rightPanTmpl = this.listItem.rightPanningTemplateElement;\n * ```\n */\n @ViewChild('rightPanningTmpl')\n public rightPanningTemplateElement;\n\n /**\n * Sets/gets whether the `list item` is a header.\n * ```html\n * <igx-list-item [isHeader] = \"true\">Header</igx-list-item>\n * ```\n * ```typescript\n * let isHeader = this.listItem.isHeader;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @Input({ transform: booleanAttribute })\n public isHeader: boolean;\n\n /**\n * Sets/gets whether the `list item` is hidden.\n * By default the `hidden` value is `false`.\n * ```html\n * <igx-list-item [hidden] = \"true\">Hidden Item</igx-list-item>\n * ```\n * ```typescript\n * let isHidden = this.listItem.hidden;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @Input({ transform: booleanAttribute })\n public hidden = false;\n\n /**\n * Sets/gets the `aria-label` attribute of the `list item`.\n * ```typescript\n * this.listItem.ariaLabel = \"Item1\";\n * ```\n * ```typescript\n * let itemAriaLabel = this.listItem.ariaLabel;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('attr.aria-label')\n public ariaLabel: string;\n\n /**\n * Gets the `touch-action` style of the `list item`.\n * ```typescript\n * let touchAction = this.listItem.touchAction;\n * ```\n */\n @HostBinding('style.touch-action')\n public touchAction = 'pan-y';\n\n /**\n * @hidden\n */\n private _panState: IgxListPanState = IgxListPanState.NONE;\n\n /**\n * @hidden\n */\n private panOffset = 0;\n\n /**\n * @hidden\n */\n private _index: number = null;\n\n /**\n * @hidden\n */\n private lastPanDir = IgxListPanState.NONE;\n\n private _role: string = '';\n private _selected = false;;\n\n /**\n * Gets the `panState` of a `list item`.\n * ```typescript\n * let itemPanState = this.listItem.panState;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get panState(): IgxListPanState {\n return this._panState;\n }\n\n /**\n * Gets the `index` of a `list item`.\n * ```typescript\n * let itemIndex = this.listItem.index;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @Input()\n public get index(): number {\n return this._index !== null ? this._index : this.list.children.toArray().indexOf(this);\n }\n\n /**\n * Sets the `index` of the `list item`.\n * ```typescript\n * this.listItem.index = index;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public set index(value: number) {\n this._index = value;\n }\n\n /**\n * Returns an element reference to the list item.\n * ```typescript\n * let listItemElement = this.listItem.element.\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get element() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Returns a reference container which contains the list item's content.\n * ```typescript\n * let listItemContainer = this.listItem.contentElement.\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get contentElement() {\n const candidates = this.element.getElementsByClassName('igx-list__item-content');\n return (candidates && candidates.length > 0) ? candidates[0] : null;\n }\n\n /**\n * Returns the `context` object which represents the `template context` binding into the `list item container`\n * by providing the `$implicit` declaration which is the `IgxListItemComponent` itself.\n * ```typescript\n * let listItemComponent = this.listItem.context;\n * ```\n */\n public get context(): any {\n return {\n $implicit: this\n };\n }\n\n /**\n * Gets the width of a `list item`.\n * ```typescript\n * let itemWidth = this.listItem.width;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get width() {\n if (this.element) {\n return this.element.offsetWidth;\n }\n }\n\n /**\n * Gets the maximum left position of the `list item`.\n * ```typescript\n * let maxLeft = this.listItem.maxLeft;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get maxLeft() {\n return -this.width;\n }\n\n /**\n * Gets the maximum right position of the `list item`.\n * ```typescript\n * let maxRight = this.listItem.maxRight;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n public get maxRight() {\n return this.width;\n }\n\n /** @hidden @internal */\n public get offsetWidthInRem() {\n return rem(this.element.offsetWidth);\n }\n\n /** @hidden @internal */\n public get offsetHeightInRem() {\n return rem(this.element.offsetHeight);\n }\n\n /**\n * Gets/Sets the `role` attribute of the `list item`.\n * ```typescript\n * let itemRole = this.listItem.role;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('attr.role')\n @Input()\n public get role() {\n return this._role ? this._role : this.isHeader ? 'separator' : 'listitem';\n }\n\n public set role(val: string) {\n this._role = val;\n }\n\n /**\n * Sets/gets whether the `list item` is selected.\n * Selection is only applied to non-header items.\n * When selected, the CSS class 'igx-list__item-base--selected' is added to the item.\n * ```html\n * <igx-list-item [selected]=\"true\">Selected Item</igx-list-item>\n * ```\n * ```typescript\n * let isSelected = this.listItem.selected;\n * this.listItem.selected = true;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('class.igx-list__item-base--selected')\n @Input({ transform: booleanAttribute })\n public get selected() {\n return this._selected && !this.isHeader;\n }\n\n public set selected(value: boolean) {\n this._selected = value;\n }\n\n /**\n * Indicates whether `list item` should have header style.\n * ```typescript\n * let headerStyle = this.listItem.headerStyle;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('class.igx-list__header')\n public get headerStyle(): boolean {\n return this.isHeader;\n }\n\n /**\n * Applies the inner style of the `list item` if the item is not counted as header.\n * ```typescript\n * let innerStyle = this.listItem.innerStyle;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('class.igx-list__item-base')\n public get innerStyle(): boolean {\n return !this.isHeader;\n }\n\n /**\n * Returns string value which describes the display mode of the `list item`.\n * ```typescript\n * let isHidden = this.listItem.display;\n * ```\n *\n * @memberof IgxListItemComponent\n */\n @HostBinding('style.display')\n public get display(): string {\n return this.hidden ? 'none' : '';\n }\n\n /**\n * @hidden\n */\n @HostListener('click', ['$event'])\n public clicked(evt) {\n this.list.itemClicked.emit({ item: this, event: evt, direction: this.lastPanDir });\n this.lastPanDir = IgxListPanState.NONE;\n }\n\n /**\n * @hidden\n */\n @HostListener('panstart')\n public panStart() {\n if (this.isTrue(this.isHeader)) {\n return;\n }\n if (!this.isTrue(this.list.allowLeftPanning) && !this.isTrue(this.list.allowRightPanning)) {\n return;\n }\n\n this.list.startPan.emit({ item: this, direction: this.lastPanDir, keepitem: false });\n }\n\n /**\n * @hidden\n */\n @HostListener('pancancel')\n public panCancel() {\n this.resetPanPosition();\n this.list.endPan.emit({ item: this, direction: this.lastPanDir, keepItem: false });\n }\n\n /**\n * @hidden\n */\n @HostListener('panmove', ['$event'])\n public panMove(ev) {\n if (this.isTrue(this.isHeader)) {\n return;\n }\n if (!this.isTrue(this.list.allowLeftPanning) && !this.isTrue(this.list.allowRightPanning)) {\n return;\n }\n const isPanningToLeft = ev.deltaX < 0;\n if (isPanningToLeft && this.isTrue(this.list.allowLeftPanning)) {\n this.showLeftPanTemplate();\n this.setContentElementLeft(Math.max(this.maxLeft, ev.deltaX));\n } else if (!isPanningToLeft && this.isTrue(this.list.allowRightPanning)) {\n this.showRightPanTemplate();\n this.setContentElementLeft(Math.min(this.maxRight, ev.deltaX));\n }\n }\n\n /**\n * @hidden\n */\n @HostListener('panend')\n public panEnd() {\n if (this.isTrue(this.isHeader)) {\n return;\n }\n if (!this.isTrue(this.list.allowLeftPanning) && !this.isTrue(this.list.allowRightPanning)) {\n return;\n }\n\n // the translation offset of the current list item content\n const relativeOffset = this.panOffset;\n const widthTriggeringGrip = this.width * this.list.panEndTriggeringThreshold;\n\n if (relativeOffset === 0) {\n return; // no panning has occured\n }\n\n const dir = relativeOffset > 0 ? IgxListPanState.RIGHT : IgxListPanState.LEFT;\n this.lastPanDir = dir;\n\n const args = { item: this, direction: dir, keepItem: false };\n this.list.endPan.emit(args);\n\n const oldPanState = this._panState;\n if (Math.abs(relativeOffset) < widthTriggeringGrip) {\n this.resetPanPosition();\n this.list.resetPan.emit(this);\n return;\n }\n\n if (dir === IgxListPanState.LEFT) {\n this.list.leftPan.emit(args);\n } else {\n this.list.rightPan.emit(args);\n }\n\n if (args.keepItem === true) {\n this.setContentElementLeft(0);\n this._panState = IgxListPanState.NONE;\n } else {\n if (dir === IgxListPanState.LEFT) {\n this.setContentElementLeft(this.maxLeft);\n this._panState = IgxListPanState.LEFT;\n } else {\n this.setContentElementLeft(this.maxRight);\n this._panState = IgxListPanState.RIGHT;\n }\n }\n\n if (oldPanState !== this._panState) {\n const args2 = { oldState: oldPanState, newState: this._panState, item: this };\n this.list.panStateChange.emit(args2);\n }\n this.hideLeftAndRightPanTemplates();\n }\n\n /**\n * @hidden\n */\n private showLeftPanTemplate() {\n this.setLeftAndRightTemplatesVisibility('visible', 'hidden');\n }\n\n /**\n * @hidden\n */\n private showRightPanTemplate() {\n this.setLeftAndRightTemplatesVisibility('hidden', 'visible');\n }\n\n /**\n * @hidden\n */\n private hideLeftAndRightPanTemplates() {\n setTimeout(() => {\n this.setLeftAndRightTemplatesVisibility('hidden', 'hidden');\n }, 500);\n }\n\n /**\n * @hidden\n */\n private setLeftAndRightTemplatesVisibility(leftVisibility, rightVisibility) {\n if (this.leftPanningTemplateElement && this.leftPanningTemplateElement.nativeElement) {\n this.leftPanningTemplateElement.nativeElement.style.visibility = leftVisibility;\n }\n if (this.rightPanningTemplateElement && this.rightPanningTemplateElement.nativeElement) {\n this.rightPanningTemplateElement.nativeElement.style.visibility = rightVisibility;\n }\n }\n\n /**\n * @hidden\n */\n private setContentElementLeft(value: number) {\n this.panOffset = value;\n this.contentElement.style.transform = 'translateX(' + value + 'px)';\n }\n\n /**\n * @hidden\n */\n private isTrue(value: boolean): boolean {\n if (typeof (value) === 'boolean') {\n return value;\n } else {\n return value === 'true';\n }\n }\n\n /**\n * @hidden\n */\n private resetPanPosition() {\n this.setContentElementLeft(0);\n this._panState = IgxListPanState.NONE;\n this.hideLeftAndRightPanTemplates();\n }\n}\n","\n@if (!isHeader && list.listItemLeftPanningTemplate) {\n <div #leftPanningTmpl class=\"igx-list__item-right\"\n [style.width.rem]=\"offsetWidthInRem\" [style.height.rem]=\"offsetHeightInRem\">\n <ng-container *ngTemplateOutlet=\"list.listItemLeftPanningTemplate.template; context: context\">\n </ng-container>\n </div>\n}\n\n@if (!isHeader && list.listItemRightPanningTemplate) {\n <div #rightPanningTmpl class=\"igx-list__item-left\"\n [style.width.rem]=\"offsetWidthInRem\" [style.height.rem]=\"offsetHeightInRem\">\n <ng-container *ngTemplateOutlet=\"list.listItemRightPanningTemplate.template; context: context\">\n </ng-container>\n </div>\n}\n\n<ng-template #itemsContent>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemThumbnails>\n <div class=\"igx-list__item-thumbnail\">\n <ng-content select=\"[igxListThumbnail], igx-list__item-thumbnail, igx-avatar\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #itemLines>\n <div class=\"igx-list__item-lines\">\n <ng-content select=\"[igxListLine], .igx-list__item-lines, [igxListLineTitle], [igxListLineSubTitle], .igx-list__item-line-title, .igx-list__item-line-subtitle\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #itemActions>\n <div class=\"igx-list__item-actions\">\n <ng-content select=\"[igxListAction], .igx-list__item-actions\"></ng-content>\n </div>\n</ng-template>\n\n@if (isHeader) {\n <ng-container *ngTemplateOutlet=\"itemsContent\"></ng-container>\n}\n\n@if (!isHeader) {\n <div class=\"igx-list__item-content\">\n <ng-container *ngTemplateOutlet=\"itemThumbnails\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemLines\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemActions\"></ng-container>\n <ng-container *ngTemplateOutlet=\"itemsContent\"></ng-container>\n </div>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n Output,\n QueryList,\n TemplateRef,\n ViewChild,\n Directive,\n booleanAttribute,\n inject,\n DestroyRef\n} from '@angular/core';\n\n\n\nimport { IgxListItemComponent } from './list-item.component';\nimport {\n IgxListBaseDirective,\n IgxDataLoadingTemplateDirective,\n IgxEmptyListTemplateDirective,\n IgxListPanState,\n IgxListItemLeftPanningTemplateDirective,\n IgxListItemRightPanningTemplateDirective\n} from './list.common';\nimport { IBaseEventArgs } from 'igniteui-angular/core';\nimport { IListResourceStrings, ListResourceStringsEN } from 'igniteui-angular/core';\nimport { getCurrentResourceStrings, onResourceChangeHandle } from 'igniteui-angular/core';\n\nlet NEXT_ID = 0;\n\n/**\n * Interface for the panStateChange igxList event arguments\n */\nexport interface IPanStateChangeEventArgs extends IBaseEventArgs {\n oldState: IgxListPanState;\n newState: IgxListPanState;\n item: IgxListItemComponent;\n}\n\n/**\n * Interface for the listItemClick igxList event arguments\n */\nexport interface IListItemClickEventArgs extends IBaseEventArgs {\n item: IgxListItemComponent;\n event: Event;\n direction: IgxListPanState;\n}\n\n/**\n * Interface for the listItemPanning igxList event arguments\n */\nexport interface IListItemPanningEventArgs extends IBaseEventArgs {\n item: IgxListItemComponent;\n direction: IgxListPanState;\n keepItem: boolean;\n}\n\n/**\n * igxListThumbnail is container for the List media\n * Use it to wrap anything you want to be used as a thumbnail.\n */\n@Directive({\n selector: '[igxListThumbnail]',\n standalone: true\n})\nexport class IgxListThumbnailDirective { }\n\n/**\n * igxListAction is container for the List action\n * Use it to wrap anything you want to be used as a list action: icon, checkbox...\n */\n@Directive({\n selector: '[igxListAction]',\n standalone: true\n})\nexport class IgxListActionDirective { }\n\n/**\n * igxListLine is container for the List text content\n * Use it to wrap anything you want to be used as a plane text.\n */\n@Directive({\n selector: '[igxListLine]',\n standalone: true\n})\nexport class IgxListLineDirective { }\n\n/**\n * igxListLineTitle is a directive that add class to the target element\n * Use it to make anything to look like list Title.\n */\n@Directive({\n selector: '[igxListLineTitle]',\n standalone: true\n})\nexport class IgxListLineTitleDirective {\n @HostBinding('class.igx-list__item-line-title')\n public cssClass = 'igx-list__item-line-title';\n}\n\n/**\n * igxListLineSubTitle is a directive that add class to the target element\n * Use it to make anything to look like list Subtitle.\n */\n@Directive({\n selector: '[igxListLineSubTitle]',\n standalone: true\n})\nexport class IgxListLineSubTitleDirective {\n @HostBinding('class.igx-list__item-line-subtitle')\n public cssClass = 'igx-list__item-line-subtitle';\n}\n\n/**\n * Displays a collection of data items in a templatable list format\n *\n * @igxModule IgxListModule\n *\n * @igxTheme igx-list-theme\n *\n * @igxKeywords list, data\n *\n * @igxGroup Grids & Lists\n *\n * @remarks\n * The Ignite UI List displays rows of items and supports one or more header items as well as search and filtering\n * of list items. Each list item is completely templatable and will support any valid HTML or Angular component.\n *\n * @example\n * ```html\n * <igx-list>\n * <igx-list-item isHeader=\"true\">Contacts</igx-list-item>\n * <igx-list-item *ngFor=\"let contact of contacts\">\n * <span class=\"name\">{{ contact.name }}</span>\n * <span class=\"phone\">{{ contact.phone }}</span>\n * </igx-list-item>\n * </igx-list>\n * ```\n */\n@Component({\n selector: 'igx-list',\n templateUrl: 'list.component.html',\n providers: [{ provide: IgxListBaseDirective, useExisting: IgxListComponent }],\n imports: [NgTemplateOutlet]\n})\nexport class IgxListComponent extends IgxListBaseDirective {\n public element = inject(ElementRef);\n private destroyRef = inject(DestroyRef);\n\n /**\n * Returns a collection of all items and headers in the list.\n *\n * @example\n * ```typescript\n * let listChildren: QueryList = this.list.children;\n * ```\n */\n @ContentChildren(forwardRef(() => IgxListItemComponent), { descendants: true })\n public override children: QueryList<IgxListItemComponent>;\n\n /**\n * Sets/gets the empty list template.\n *\n * @remarks\n * This template is used by IgxList in case there are no list items\n * defined and `isLoading` is set to `false`.\n *\n * @example\n * ```html\n * <igx-list>\n * <ng-template igxEmptyList>\n * <p class=\"empty\">No contacts! :(</p>\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let emptyTemplate = this.list.emptyListTemplate;\n * ```\n */\n @ContentChild(IgxEmptyListTemplateDirective, { read: IgxEmptyListTemplateDirective })\n public emptyListTemplate: IgxEmptyListTemplateDirective;\n\n /**\n * Sets/gets the list loading template.\n *\n * @remarks\n * This template is used by IgxList in case there are no list items defined and `isLoading` is set to `true`.\n *\n * @example\n * ```html\n * <igx-list>\n * <ng-template igxDataLoading>\n * <p>Patience, we are currently loading your data...</p>\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let loadingTemplate = this.list.dataLoadingTemplate;\n * ```\n */\n @ContentChild(IgxDataLoadingTemplateDirective, { read: IgxDataLoadingTemplateDirective })\n public dataLoadingTemplate: IgxDataLoadingTemplateDirective;\n\n /**\n * Sets/gets the template for left panning a list item.\n *\n * @remarks\n * Default value is `null`.\n *\n * @example\n * ```html\n * <igx-list [allowLeftPanning]=\"true\">\n * <ng-template igxListItemLeftPanning>\n * <igx-icon>delete</igx-icon>Delete\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let itemLeftPanTmpl = this.list.listItemLeftPanningTemplate;\n * ```\n */\n @ContentChild(IgxListItemLeftPanningTemplateDirective, { read: IgxListItemLeftPanningTemplateDirective })\n public override listItemLeftPanningTemplate: IgxListItemLeftPanningTemplateDirective;\n\n /**\n * Sets/gets the template for right panning a list item.\n *\n * @remarks\n * Default value is `null`.\n *\n * @example\n * ```html\n * <igx-list [allowRightPanning] = \"true\">\n * <ng-template igxListItemRightPanning>\n * <igx-icon>call</igx-icon>Dial\n * </ng-template>\n * </igx-list>\n * ```\n * ```typescript\n * let itemRightPanTmpl = this.list.listItemRightPanningTemplate;\n * ```\n */\n @ContentChild(IgxListItemRightPanningTemplateDirective, { read: IgxListItemRightPanningTemplateDirective })\n public override listItemRightPanningTemplate: IgxListItemRightPanningTemplateDirective;\n\n /**\n * Provides a threshold after which the item's panning will be completed automatically.\n *\n * @remarks\n * By default this property is set to 0.5 which is 50% of the list item's width.\n *\n * @example\n * ```html\n * <igx-list [panEndTriggeringThreshold]=\"0.8\"></igx-list>\n * ```\n */\n @Input()\n public override panEndTriggeringThreshold = 0.5;\n\n /**\n * Sets/gets the `id` of the list.\n *\n * @remarks\n * If not set, the `id` of the first list component will be `\"igx-list-0\"`.\n *\n * @example\n * ```html\n * <igx-list id=\"my-first-list\"></igx-list>\n * ```\n * ```typescript\n * let listId = this.list.id;\n * ```\n */\n @HostBinding('attr.id')\n @Input()\n public id = `igx-list-${NEXT_ID++}`;\n\n /**\n * Sets/gets whether the left panning of an item is allowed.\n *\n * @remarks\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-list [allowLeftPanning]=\"true\"></igx-list>\n * ```\n * ```typescript\n * let isLeftPanningAllowed = this.list.allowLeftPanning;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public override allowLeftPanning = false;\n\n /**\n * Sets/gets whether the right panning of an item is allowed.\n *\n * @remarks\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-list [allowRightPanning]=\"true\"></igx-list>\n * ```\n * ```typescript\n * let isRightPanningAllowed = this.list.allowRightPanning;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public override allowRightPanning = false;\n\n /**\n * Sets/gets whether the list is currently loading data.\n *\n * @remarks\n * Set it to display the dataLoadingTemplate while data is being retrieved.\n * Default value is `false`.\n *\n * @example\n * ```html\n * <igx-list [isLoading]=\"true\"></igx-list>\n * ```\n * ```typescript\n * let isLoading = this.list.isLoading;\n * ```\n */\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * Event emitted when a left pan gesture is executed on a list item.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list [allowLeftPanning]=\"true\" (leftPan)=\"leftPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override leftPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a right pan gesture is executed on a list item.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list [allowRightPanning]=\"true\" (rightPan)=\"rightPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override rightPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a pan gesture is started.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list (startPan)=\"startPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override startPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a pan gesture is completed or canceled.\n *\n * @remarks\n * Provides a reference to an object of type `IListItemPanningEventArgs` as an event argument.\n *\n * @example\n * ```html\n * <igx-list (endPan)=\"endPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override endPan = new EventEmitter<IListItemPanningEventArgs>();\n\n /**\n * Event emitted when a pan item is returned to its original position.\n *\n * @remarks\n * Provides a reference to an object of type `IgxListComponent` as an event argument.\n *\n * @example\n * ```html\n * <igx-list (resetPan)=\"resetPan($event)\"></igx-list>\n * ```\n */\n @Output()\n public override resetPan = new EventEmitter<IgxListComponent>();\n\n /**\n *\n * Event emitted when a pan gesture is executed on a list item.\n *\n * @remarks\n * Provides references to the `IgxListItemComponent` and `IgxListPanState` as event arguments.\n *\n * @example\n * ```html\n * <igx-list (panStateChange)=\"panStateChange($event)\"></igx-list>\n * ```\n */\n @Output()\n public override panStateChange = new EventEmitter<IPanStateChangeEventArgs>();\n\n /**\n * Event emitted when a list item is clicked.\n *\n * @remarks\n * Provides references to the `IgxListItemComponent` and `Event` as event arguments.\n *\n * @example\n * ```html\n * <igx-list (itemClicked)=\"onItemClicked($event)\"></igx-list>\n * ```\n */\n @Output()\n public override itemClicked = new EventEmitter<IListItemClickEventArgs>();\n\n /**\n * @hidden\n * @internal\n */\n @ViewChild('defaultEmptyList', { read: TemplateRef, static: true })\n protected defaultEmptyListTemplate: TemplateRef<any>;\n\n /**\n * @hidden\n * @internal\n */\n @ViewChild('defaultDataLoading', { read: TemplateRef, static: true })\n protected defaultDataLoadingTemplate: TemplateRef<any>;\n\n private _resourceStrings: IListResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(ListResourceStringsEN);\n\n /**\n * Sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IListResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * Returns the resource strings.\n */\n public get resourceStrings(): IListResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n constructor() {\n super();\n onResourceChangeHandle(this.destroyRef, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(ListResourceStringsEN, false);\n }, this);\n }\n\n /**\n * @hidden\n * @internal\n */\n protected get sortedChildren(): IgxListItemComponent[] {\n if (this.children !== undefined) {\n return this.children.toArray()\n .sort((a: IgxListItemComponent, b: IgxListItemComponent) => a.index - b.index);\n }\n return null;\n }\n\n private _role = 'list';\n\n /**\n * Gets/Sets the `role` attribute value.\n *\n * @example\n * ```typescript\n * let listRole = this.list.role;\n * ```\n */\n @HostBinding('attr.role')\n @Input()\n public get role() {\n return this._role;\n }\n\n public set role(val: string) {\n this._role = val;\n }\n\n /**\n * Gets a boolean indicating if the list is empty.\n *\n * @example\n * ```typescript\n * let isEmpty = this.list.isListEmpty;\n * ```\n */\n @HostBinding('class.igx-list--empty')\n public get isListEmpty(): boolean {\n return !this.children || this.children.length === 0;\n }\n\n /**\n * @hidden\n * @internal\n */\n @HostBinding('class.igx-list')\n public get cssClass(): boolean {\n return !this.isListEmpty;\n }\n\n /**\n * Gets the list `items` excluding the header ones.\n *\n * @example\n * ```typescript\n * let listItems: IgxListItemComponent[] = this.list.items;\n * ```\n */\n public get items(): IgxListItemComponent[] {\n const items: IgxListItemComponent[] = [];\n if (this.children !== undefined) {\n for (const child of this.sortedChildren) {\n if (!child.isHeader) {\n items.push(child);\n }\n }\n }\n return items;\n }\n\n /**\n * Gets the header list `items`.\n *\n * @example\n * ```typescript\n * let listHeaders: IgxListItemComponent[] = this.list.headers;\n * ```\n */\n public get headers(): IgxListItemComponent[] {\n const headers: IgxListItemComponent[] = [];\n if (this.children !== undefined) {\n for (const child of this.children.toArray()) {\n if (child.isHeader) {\n headers.push(child);\n }\n }\n }\n return headers;\n }\n\n /**\n * Gets the `context` object of the template binding.\n *\n * @remarks\n * Gets the `context` object which represents the `template context` binding into the `list container`\n * by providing the `$implicit` declaration which is the `IgxListComponent` itself.\n *\n * @example\n * ```typescript\n * let listComponent = this.list.context;\n * ```\n */\n public get context(): any {\n return {\n $implicit: this\n };\n }\n\n /**\n * Gets a `TemplateRef` to the currently used template.\n *\n * @example\n * ```typescript\n * let listTemplate = this.list.template;\n * ```\n */\n public get template(): TemplateRef<any> {\n if (this.isLoading) {\n return this.dataLoadingTemplate ? this.dataLoadingTemplate.template : this.defaultDataLoadingTemplate;\n } else {\n return this.emptyListTemplate ? this.emptyListTemplate.template : this.defaultEmptyListTemplate;\n }\n }\n}\n\n/**\n * @hidden\n */\n\n","<ng-content></ng-content>\n\n<ng-template #defaultEmptyList>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_no_items}}\n </article>\n</ng-template>\n\n<ng-template #defaultDataLoading>\n <article class=\"igx-list__message\">\n {{resourceStrings.igx_list_loading}}\n </article>\n</ng-template>\n\n@if (!children || children.length === 0 || isLoading) {\n <ng-container *ngTemplateOutlet=\"template; context: context\">\n </ng-container>\n}\n","import { IgxListItemComponent } from './list-item.component';\nimport { IgxDataLoadingTemplateDirective, IgxEmptyListTemplateDirective, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective } from './list.common';\nimport { IgxListActionDirective, IgxListComponent, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListThumbnailDirective } from './list.component';\n\nexport * from './list.component';\nexport {\n IgxListBaseDirective,\n IgxListPanState,\n IgxEmptyListTemplateDirective,\n IgxDataLoadingTemplateDirective,\n IgxListItemLeftPanningTemplateDirective,\n IgxListItemRightPanningTemplateDirective\n} from './list.common';\nexport * from './list-item.component';\n\n/* NOTE: List directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_LIST_DIRECTIVES = [\n IgxListComponent,\n IgxListItemComponent,\n IgxListThumbnailDirective,\n IgxListActionDirective,\n IgxListLineDirective,\n IgxListLineTitleDirective,\n IgxListLineSubTitleDirective,\n IgxDataLoadingTemplateDirective,\n IgxEmptyListTemplateDirective,\n IgxListItemLeftPanningTemplateDirective,\n IgxListItemRightPanningTemplateDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_LIST_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_LIST_DIRECTIVES\n ],\n exports: [\n ...IGX_LIST_DIRECTIVES\n ]\n})\n\nexport class IgxListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxListComponent","i2.IgxListItemComponent","i1.IgxListThumbnailDirective","i1.IgxListActionDirective","i1.IgxListLineDirective","i1.IgxListLineTitleDirective","i1.IgxListLineSubTitleDirective","i3.IgxDataLoadingTemplateDirective","i3.IgxEmptyListTemplateDirective","i3.IgxListItemLeftPanningTemplateDirective","i3.IgxListItemRightPanningTemplateDirective"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, TemplateRef, Directive, HostBinding, ElementRef, ChangeDetectorRef, EventEmitter, Input, Output, ContentChild, forwardRef, Component, NgModule } from '@angular/core';
3
- import { getCurrentResourceStrings, PaginatorResourceStringsEN } from 'igniteui-angular/core';
2
+ import { inject, TemplateRef, Directive, HostBinding, ElementRef, ChangeDetectorRef, DestroyRef, EventEmitter, Input, Output, ContentChild, forwardRef, Component, NgModule } from '@angular/core';
3
+ import { getCurrentResourceStrings, PaginatorResourceStringsEN, onResourceChangeHandle } from 'igniteui-angular/core';
4
4
  import * as i1 from '@angular/forms';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { IgxIconComponent } from 'igniteui-angular/icon';
@@ -62,68 +62,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
62
62
  */
63
63
  // switch IgxPaginatorToken to extends once density is dropped
64
64
  class IgxPaginatorComponent {
65
- constructor() {
66
- this.elementRef = inject(ElementRef);
67
- this.cdr = inject(ChangeDetectorRef);
68
- /**
69
- * Emitted when `perPage` property value of the paginator is changed.
70
- *
71
- * @example
72
- * ```html
73
- * <igx-paginator (perPageChange)="onPerPageChange($event)"></igx-paginator>
74
- * ```
75
- * ```typescript
76
- * public onPerPageChange(perPage: number) {
77
- * this.perPage = perPage;
78
- * }
79
- * ```
80
- */
81
- this.perPageChange = new EventEmitter();
82
- /**
83
- * Emitted after the current page is changed.
84
- *
85
- * @example
86
- * ```html
87
- * <igx-paginator (pageChange)="onPageChange($event)"></igx-paginator>
88
- * ```
89
- * ```typescript
90
- * public onPageChange(page: number) {
91
- * this.currentPage = page;
92
- * }
93
- * ```
94
- */
95
- this.pageChange = new EventEmitter();
96
- /**
97
- * Emitted before paging is performed.
98
- *
99
- * @remarks
100
- * Returns an object consisting of the current and next pages.
101
- * @example
102
- * ```html
103
- * <igx-paginator (paging)="pagingHandler($event)"></igx-paginator>
104
- * ```
105
- */
106
- this.paging = new EventEmitter();
107
- /**
108
- * Emitted after paging is performed.
109
- *
110
- * @remarks
111
- * Returns an object consisting of the previous and current pages.
112
- * @example
113
- * ```html
114
- * <igx-paginator (pagingDone)="pagingDone($event)"></igx-paginator>
115
- * ```
116
- */
117
- this.pagingDone = new EventEmitter();
118
- this._page = 0;
119
- this._selectOptions = [5, 10, 15, 25, 50, 100, 500];
120
- this._perPage = 15;
121
- this._resourceStrings = getCurrentResourceStrings(PaginatorResourceStringsEN);
122
- this._overlaySettings = {};
123
- this.defaultSelectValues = [5, 10, 15, 25, 50, 100, 500];
124
- /** @hidden @internal */
125
- this.cssClass = 'igx-paginator';
126
- }
127
65
  /**
128
66
  * Gets/Sets the current page of the paginator.
129
67
  * The default is 0.
@@ -232,7 +170,74 @@ class IgxPaginatorComponent {
232
170
  * An accessor that returns the resource strings.
233
171
  */
234
172
  get resourceStrings() {
235
- return this._resourceStrings;
173
+ return this._resourceStrings || this._defaultResourceStrings;
174
+ }
175
+ constructor() {
176
+ this.elementRef = inject(ElementRef);
177
+ this.cdr = inject(ChangeDetectorRef);
178
+ this.destroyRef = inject(DestroyRef);
179
+ /**
180
+ * Emitted when `perPage` property value of the paginator is changed.
181
+ *
182
+ * @example
183
+ * ```html
184
+ * <igx-paginator (perPageChange)="onPerPageChange($event)"></igx-paginator>
185
+ * ```
186
+ * ```typescript
187
+ * public onPerPageChange(perPage: number) {
188
+ * this.perPage = perPage;
189
+ * }
190
+ * ```
191
+ */
192
+ this.perPageChange = new EventEmitter();
193
+ /**
194
+ * Emitted after the current page is changed.
195
+ *
196
+ * @example
197
+ * ```html
198
+ * <igx-paginator (pageChange)="onPageChange($event)"></igx-paginator>
199
+ * ```
200
+ * ```typescript
201
+ * public onPageChange(page: number) {
202
+ * this.currentPage = page;
203
+ * }
204
+ * ```
205
+ */
206
+ this.pageChange = new EventEmitter();
207
+ /**
208
+ * Emitted before paging is performed.
209
+ *
210
+ * @remarks
211
+ * Returns an object consisting of the current and next pages.
212
+ * @example
213
+ * ```html
214
+ * <igx-paginator (paging)="pagingHandler($event)"></igx-paginator>
215
+ * ```
216
+ */
217
+ this.paging = new EventEmitter();
218
+ /**
219
+ * Emitted after paging is performed.
220
+ *
221
+ * @remarks
222
+ * Returns an object consisting of the previous and current pages.
223
+ * @example
224
+ * ```html
225
+ * <igx-paginator (pagingDone)="pagingDone($event)"></igx-paginator>
226
+ * ```
227
+ */
228
+ this.pagingDone = new EventEmitter();
229
+ this._page = 0;
230
+ this._selectOptions = [5, 10, 15, 25, 50, 100, 500];
231
+ this._perPage = 15;
232
+ this._resourceStrings = null;
233
+ this._defaultResourceStrings = getCurrentResourceStrings(PaginatorResourceStringsEN, true);
234
+ this._overlaySettings = {};
235
+ this.defaultSelectValues = [5, 10, 15, 25, 50, 100, 500];
236
+ /** @hidden @internal */
237
+ this.cssClass = 'igx-paginator';
238
+ onResourceChangeHandle(this.destroyRef, () => {
239
+ this._defaultResourceStrings = getCurrentResourceStrings(PaginatorResourceStringsEN, false);
240
+ }, this);
236
241
  }
237
242
  /**
238
243
  * Returns if the current page is the last page.
@@ -325,7 +330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
325
330
  args: [{ selector: 'igx-paginator', imports: [forwardRef(() => IgxPageSizeSelectorComponent), forwardRef(() => IgxPageNavigationComponent)], providers: [
326
331
  { provide: IgxPaginatorToken, useExisting: IgxPaginatorComponent }
327
332
  ], template: "<ng-content select=\"[igxPaginatorContent],igx-paginator-content\"></ng-content>\n\n@if (!customContent) {\n <igx-page-size></igx-page-size>\n}\n@if (!customContent) {\n <igx-page-nav></igx-page-nav>\n}\n" }]
328
- }], propDecorators: { customContent: [{
333
+ }], ctorParameters: () => [], propDecorators: { customContent: [{
329
334
  type: ContentChild,
330
335
  args: [IgxPaginatorContentDirective]
331
336
  }], perPageChange: [{
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-paginator.mjs","sources":["../../../projects/igniteui-angular/paginator/src/paginator/paginator-interfaces.ts","../../../projects/igniteui-angular/paginator/src/paginator/token.ts","../../../projects/igniteui-angular/paginator/src/paginator/paginator.component.ts","../../../projects/igniteui-angular/paginator/src/paginator/paginator.component.html","../../../projects/igniteui-angular/paginator/src/paginator/page-size-selector.component.html","../../../projects/igniteui-angular/paginator/src/paginator/pager.component.html","../../../projects/igniteui-angular/paginator/src/paginator/public_api.ts","../../../projects/igniteui-angular/paginator/src/paginator/paginator.module.ts","../../../projects/igniteui-angular/paginator/src/igniteui-angular-paginator.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\nimport { CancelableEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\n\nexport interface IPageEventArgs extends IBaseEventArgs {\n previous: number;\n current: number;\n}\n\nexport interface IPageCancellableEventArgs extends CancelableEventArgs {\n current: number;\n next: number;\n}\n\n@Directive({\n selector: '[igxPaginator]',\n standalone: true\n})\nexport class IgxPaginatorDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n","import { EventEmitter } from '@angular/core';\n\n/** @hidden @internal */\nexport abstract class IgxPaginatorToken {\n public abstract page: number;\n public abstract perPage: number;\n public abstract totalRecords: number;\n\n public abstract pageChange: EventEmitter<number>;\n\n public abstract paginate(val: number): void\n}\n","import { ChangeDetectorRef, Component, ContentChild, Directive, ElementRef, EventEmitter, HostBinding, Input, Output, forwardRef, inject } from '@angular/core';\nimport { IPageCancellableEventArgs, IPageEventArgs } from './paginator-interfaces';\nimport {\n IPaginatorResourceStrings,\n PaginatorResourceStringsEN,\n OverlaySettings,\n getCurrentResourceStrings\n} from 'igniteui-angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxRippleDirective, IgxIconButtonDirective } from 'igniteui-angular/directives';\nimport { IgxSelectComponent, IgxSelectItemComponent } from 'igniteui-angular/select';\nimport { IgxPaginatorToken } from './token';\n\n@Directive({\n selector: '[igxPaginatorContent],igx-paginator-content',\n standalone: true\n})\nexport class IgxPaginatorContentDirective {\n /**\n * @internal\n * @hidden\n */\n @HostBinding('class.igx-paginator-content')\n public cssClass = 'igx-paginator-content';\n}\n\n/* blazorElement */\n/* mustUseNGParentAnchor */\n/* wcElementTag: igc-paginator */\n/* blazorIndirectRender */\n/* singleInstanceIdentifier */\n/* contentParent: GridBaseDirective */\n/* contentParent: RowIsland */\n/* contentParent: HierarchicalGrid */\n/* jsonAPIManageCollectionInMarkup */\n/**\n * Paginator component description\n * @igxParent IgxGridComponent, IgxTreeGridComponent, IgxHierarchicalGridComponent, IgxPivotGridComponent, *\n */\n@Component({\n selector: 'igx-paginator',\n templateUrl: 'paginator.component.html',\n imports: [forwardRef(() => IgxPageSizeSelectorComponent), forwardRef(() => IgxPageNavigationComponent)],\n providers: [\n { provide: IgxPaginatorToken, useExisting: IgxPaginatorComponent }\n ]\n})\n// switch IgxPaginatorToken to extends once density is dropped\nexport class IgxPaginatorComponent implements IgxPaginatorToken {\n private elementRef = inject(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n\n\n /**\n * @hidden\n * @internal\n */\n @ContentChild(IgxPaginatorContentDirective)\n public customContent: IgxPaginatorContentDirective;\n\n /**\n * Emitted when `perPage` property value of the paginator is changed.\n *\n * @example\n * ```html\n * <igx-paginator (perPageChange)=\"onPerPageChange($event)\"></igx-paginator>\n * ```\n * ```typescript\n * public onPerPageChange(perPage: number) {\n * this.perPage = perPage;\n * }\n * ```\n */\n @Output()\n public perPageChange = new EventEmitter<number>();\n\n /**\n * Emitted after the current page is changed.\n *\n * @example\n * ```html\n * <igx-paginator (pageChange)=\"onPageChange($event)\"></igx-paginator>\n * ```\n * ```typescript\n * public onPageChange(page: number) {\n * this.currentPage = page;\n * }\n * ```\n */\n @Output()\n public pageChange = new EventEmitter<number>();\n\n /**\n * Emitted before paging is performed.\n *\n * @remarks\n * Returns an object consisting of the current and next pages.\n * @example\n * ```html\n * <igx-paginator (paging)=\"pagingHandler($event)\"></igx-paginator>\n * ```\n */\n @Output()\n public paging = new EventEmitter<IPageCancellableEventArgs>();\n\n /**\n * Emitted after paging is performed.\n *\n * @remarks\n * Returns an object consisting of the previous and current pages.\n * @example\n * ```html\n * <igx-paginator (pagingDone)=\"pagingDone($event)\"></igx-paginator>\n * ```\n */\n @Output()\n public pagingDone = new EventEmitter<IPageEventArgs>();\n\n /**\n * Total pages calculated from totalRecords and perPage\n */\n public totalPages: number;\n protected _page = 0;\n protected _totalRecords: number;\n protected _selectOptions = [5, 10, 15, 25, 50, 100, 500];\n protected _perPage = 15;\n\n private _resourceStrings = getCurrentResourceStrings(PaginatorResourceStringsEN);\n private _overlaySettings: OverlaySettings = {};\n private defaultSelectValues = [5, 10, 15, 25, 50, 100, 500];\n\n /** @hidden @internal */\n @HostBinding('class.igx-paginator')\n public cssClass = 'igx-paginator';\n\n /**\n * Gets/Sets the current page of the paginator.\n * The default is 0.\n * ```typescript\n * let page = this.paginator.page;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get page() {\n return this._page;\n }\n\n public set page(value: number) {\n if (this._page === value || value < 0 || value > this.totalPages) {\n return;\n }\n const cancelEventArgs: IPageCancellableEventArgs = { current: this._page, next: value, cancel: false };\n const eventArgs: IPageEventArgs = { previous: this._page, current: value };\n\n this.paging.emit(cancelEventArgs);\n if (cancelEventArgs.cancel) {\n return;\n }\n this._page = value;\n this.pageChange.emit(this._page);\n\n this.pagingDone.emit(eventArgs);\n }\n\n /**\n * Gets/Sets the number of visible items per page in the paginator.\n * The default is 15.\n * ```typescript\n * let itemsPerPage = this.paginator.perPage;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get perPage() {\n return this._perPage;\n }\n\n public set perPage(value: number) {\n if (value < 0 || this.perPage === value) {\n return;\n }\n this._perPage = Number(value);\n this.perPageChange.emit(this._perPage);\n this._selectOptions = this.sortUniqueOptions(this.defaultSelectValues, this._perPage);\n this.totalPages = Math.ceil(this.totalRecords / this._perPage);\n if (this.totalPages !== 0 && this.page >= this.totalPages) {\n this.page = this.totalPages - 1;\n }\n }\n\n /**\n * Sets the total records.\n * ```typescript\n * let totalRecords = this.paginator.totalRecords;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get totalRecords() {\n return this._totalRecords;\n }\n\n public set totalRecords(value: number) {\n this._totalRecords = value;\n this.totalPages = Math.ceil(this.totalRecords / this.perPage);\n if (this.page > this.totalPages) {\n this.page = 0;\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Sets custom options in the select of the paginator\n * ```typescript\n * let options = this.paginator.selectOptions;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get selectOptions() {\n return this._selectOptions;\n }\n\n public set selectOptions(value: Array<number>) {\n this._selectOptions = this.sortUniqueOptions(value, this._perPage);\n this.defaultSelectValues = [...value];\n }\n\n /**\n * Sets custom OverlaySettings.\n * ```html\n * <igx-paginator [overlaySettings] = \"customOverlaySettings\"></igx-paginator>\n * ```\n */\n @Input()\n public get overlaySettings(): OverlaySettings {\n return this._overlaySettings;\n }\n\n public set overlaySettings(value: OverlaySettings) {\n this._overlaySettings = Object.assign({}, this._overlaySettings, value);\n }\n\n /* mustSetInCodePlatforms: WebComponents;Blazor;React */\n /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IPaginatorResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * An accessor that returns the resource strings.\n */\n public get resourceStrings(): IPaginatorResourceStrings {\n return this._resourceStrings;\n }\n\n /**\n * Returns if the current page is the last page.\n * ```typescript\n * const lastPage = this.paginator.isLastPage;\n * ```\n */\n public get isLastPage(): boolean {\n return this.page + 1 >= this.totalPages;\n }\n\n /**\n * Returns if the current page is the first page.\n * ```typescript\n * const lastPage = this.paginator.isFirstPage;\n * ```\n */\n public get isFirstPage(): boolean {\n return this.page === 0;\n }\n\n\n /**\n * Returns if the first pager buttons should be disabled\n * @hidden\n * @deprecated in version 18.1.0. Use the `isFirstPage` property instead.\n */\n public get isFirstPageDisabled(): boolean {\n return this.isFirstPage;\n }\n\n /**\n * Returns if the last pager buttons should be disabled\n * @hidden\n * @deprecated in version 18.1.0. Use the `isLastPage` property instead.\n */\n public get isLastPageDisabled(): boolean {\n return this.isLastPage;\n }\n\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Goes to the next page of the `IgxPaginatorComponent`, if the paginator is not already at the last page.\n * ```typescript\n * this.paginator.nextPage();\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n public nextPage(): void {\n if (!this.isLastPage) {\n this.page += 1;\n }\n }\n /**\n * Goes to the previous page of the `IgxPaginatorComponent`, if the paginator is not already at the first page.\n * ```typescript\n * this.paginator.previousPage();\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n public previousPage(): void {\n if (!this.isFirstPage) {\n this.page -= 1;\n }\n }\n /**\n * Goes to the desired page index.\n * ```typescript\n * this.paginator.paginate(1);\n * ```\n *\n * @param val\n * @memberof IgxPaginatorComponent\n */\n public paginate(val: number): void {\n if (val < 0 || val > this.totalPages - 1) {\n return;\n }\n this.page = val;\n }\n\n private sortUniqueOptions(values: Array<number>, newOption: number): number[] {\n return Array.from(new Set([...values, newOption])).sort((a, b) => a - b);\n }\n}\n\n\n@Component({\n selector: 'igx-page-size',\n templateUrl: 'page-size-selector.component.html',\n imports: [IgxSelectComponent, FormsModule, IgxSelectItemComponent]\n})\nexport class IgxPageSizeSelectorComponent {\n public paginator = inject(IgxPaginatorComponent, { host: true });\n\n /**\n * @internal\n * @hidden\n */\n @HostBinding('class.igx-page-size')\n public cssClass = 'igx-page-size';\n}\n\n\n@Component({\n selector: 'igx-page-nav',\n templateUrl: 'pager.component.html',\n imports: [IgxRippleDirective, IgxIconComponent, IgxIconButtonDirective]\n})\nexport class IgxPageNavigationComponent {\n public paginator = inject(IgxPaginatorComponent, { host: true });\n\n /**\n * @internal\n * @hidden\n */\n @HostBinding('class.igx-page-nav')\n public cssClass = 'igx-page-nav';\n\n /**\n * Sets the `role` attribute of the element.\n */\n @HostBinding('attr.role')\n @Input()\n public role = 'navigation';\n}\n","<ng-content select=\"[igxPaginatorContent],igx-paginator-content\"></ng-content>\n\n@if (!customContent) {\n <igx-page-size></igx-page-size>\n}\n@if (!customContent) {\n <igx-page-nav></igx-page-nav>\n}\n","<label class=\"igx-page-size__label\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n<div class=\"igx-page-size__select\">\n <igx-select [overlaySettings]=\"paginator.overlaySettings\" [(ngModel)]=\"paginator.perPage\" type=\"border\">\n @for (val of paginator.selectOptions; track val) {\n <igx-select-item [value]=\"val\">\n {{ val }}\n </igx-select-item>\n }\n </igx-select>\n</div>\n","<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.paginate(0)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"first_page\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.previousPage()\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n >&nbsp;{{\n paginator.resourceStrings.igx_paginator_pager_text\n }}&nbsp;</span\n >\n <span>{{ paginator.totalPages || 1 }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxIconButton=\"flat\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"last_page\"></igx-icon>\n</button>\n\n","import { IgxPaginatorDirective } from './paginator-interfaces';\nimport { IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorContentDirective } from './paginator.component';\n\nexport * from './paginator.component';\nexport * from './paginator-interfaces';\nexport { IgxPaginatorToken } from './token';\n\n/* NOTE: Paginator directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_PAGINATOR_DIRECTIVES = [\n IgxPaginatorComponent,\n IgxPageNavigationComponent,\n IgxPageSizeSelectorComponent,\n IgxPaginatorContentDirective,\n IgxPaginatorDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_PAGINATOR_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_PAGINATOR_DIRECTIVES\n ],\n exports: [\n ...IGX_PAGINATOR_DIRECTIVES\n ]\n})\nexport class IgxPaginatorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxPaginatorComponent","i1.IgxPageNavigationComponent","i1.IgxPageSizeSelectorComponent","i1.IgxPaginatorContentDirective","i2.IgxPaginatorDirective"],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-paginator.mjs","sources":["../../../projects/igniteui-angular/paginator/src/paginator/paginator-interfaces.ts","../../../projects/igniteui-angular/paginator/src/paginator/token.ts","../../../projects/igniteui-angular/paginator/src/paginator/paginator.component.ts","../../../projects/igniteui-angular/paginator/src/paginator/paginator.component.html","../../../projects/igniteui-angular/paginator/src/paginator/page-size-selector.component.html","../../../projects/igniteui-angular/paginator/src/paginator/pager.component.html","../../../projects/igniteui-angular/paginator/src/paginator/public_api.ts","../../../projects/igniteui-angular/paginator/src/paginator/paginator.module.ts","../../../projects/igniteui-angular/paginator/src/igniteui-angular-paginator.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\nimport { CancelableEventArgs, IBaseEventArgs } from 'igniteui-angular/core';\n\nexport interface IPageEventArgs extends IBaseEventArgs {\n previous: number;\n current: number;\n}\n\nexport interface IPageCancellableEventArgs extends CancelableEventArgs {\n current: number;\n next: number;\n}\n\n@Directive({\n selector: '[igxPaginator]',\n standalone: true\n})\nexport class IgxPaginatorDirective {\n public template = inject<TemplateRef<any>>(TemplateRef);\n}\n","import { EventEmitter } from '@angular/core';\n\n/** @hidden @internal */\nexport abstract class IgxPaginatorToken {\n public abstract page: number;\n public abstract perPage: number;\n public abstract totalRecords: number;\n\n public abstract pageChange: EventEmitter<number>;\n\n public abstract paginate(val: number): void\n}\n","import { ChangeDetectorRef, Component, ContentChild, DestroyRef, Directive, ElementRef, EventEmitter, HostBinding, Input, Output, forwardRef, inject } from '@angular/core';\nimport { IPageCancellableEventArgs, IPageEventArgs } from './paginator-interfaces';\nimport {\n IPaginatorResourceStrings,\n PaginatorResourceStringsEN,\n OverlaySettings,\n getCurrentResourceStrings,\n onResourceChangeHandle\n} from 'igniteui-angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxRippleDirective, IgxIconButtonDirective } from 'igniteui-angular/directives';\nimport { IgxSelectComponent, IgxSelectItemComponent } from 'igniteui-angular/select';\nimport { IgxPaginatorToken } from './token';\n\n@Directive({\n selector: '[igxPaginatorContent],igx-paginator-content',\n standalone: true\n})\nexport class IgxPaginatorContentDirective {\n /**\n * @internal\n * @hidden\n */\n @HostBinding('class.igx-paginator-content')\n public cssClass = 'igx-paginator-content';\n}\n\n/* blazorElement */\n/* mustUseNGParentAnchor */\n/* wcElementTag: igc-paginator */\n/* blazorIndirectRender */\n/* singleInstanceIdentifier */\n/* contentParent: GridBaseDirective */\n/* contentParent: RowIsland */\n/* contentParent: HierarchicalGrid */\n/* jsonAPIManageCollectionInMarkup */\n/**\n * Paginator component description\n * @igxParent IgxGridComponent, IgxTreeGridComponent, IgxHierarchicalGridComponent, IgxPivotGridComponent, *\n */\n@Component({\n selector: 'igx-paginator',\n templateUrl: 'paginator.component.html',\n imports: [forwardRef(() => IgxPageSizeSelectorComponent), forwardRef(() => IgxPageNavigationComponent)],\n providers: [\n { provide: IgxPaginatorToken, useExisting: IgxPaginatorComponent }\n ]\n})\n// switch IgxPaginatorToken to extends once density is dropped\nexport class IgxPaginatorComponent implements IgxPaginatorToken {\n private elementRef = inject(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n private destroyRef = inject(DestroyRef);\n\n /**\n * @hidden\n * @internal\n */\n @ContentChild(IgxPaginatorContentDirective)\n public customContent: IgxPaginatorContentDirective;\n\n /**\n * Emitted when `perPage` property value of the paginator is changed.\n *\n * @example\n * ```html\n * <igx-paginator (perPageChange)=\"onPerPageChange($event)\"></igx-paginator>\n * ```\n * ```typescript\n * public onPerPageChange(perPage: number) {\n * this.perPage = perPage;\n * }\n * ```\n */\n @Output()\n public perPageChange = new EventEmitter<number>();\n\n /**\n * Emitted after the current page is changed.\n *\n * @example\n * ```html\n * <igx-paginator (pageChange)=\"onPageChange($event)\"></igx-paginator>\n * ```\n * ```typescript\n * public onPageChange(page: number) {\n * this.currentPage = page;\n * }\n * ```\n */\n @Output()\n public pageChange = new EventEmitter<number>();\n\n /**\n * Emitted before paging is performed.\n *\n * @remarks\n * Returns an object consisting of the current and next pages.\n * @example\n * ```html\n * <igx-paginator (paging)=\"pagingHandler($event)\"></igx-paginator>\n * ```\n */\n @Output()\n public paging = new EventEmitter<IPageCancellableEventArgs>();\n\n /**\n * Emitted after paging is performed.\n *\n * @remarks\n * Returns an object consisting of the previous and current pages.\n * @example\n * ```html\n * <igx-paginator (pagingDone)=\"pagingDone($event)\"></igx-paginator>\n * ```\n */\n @Output()\n public pagingDone = new EventEmitter<IPageEventArgs>();\n\n /**\n * Total pages calculated from totalRecords and perPage\n */\n public totalPages: number;\n protected _page = 0;\n protected _totalRecords: number;\n protected _selectOptions = [5, 10, 15, 25, 50, 100, 500];\n protected _perPage = 15;\n\n private _resourceStrings: IPaginatorResourceStrings = null;\n private _defaultResourceStrings = getCurrentResourceStrings(PaginatorResourceStringsEN, true);\n private _overlaySettings: OverlaySettings = {};\n private defaultSelectValues = [5, 10, 15, 25, 50, 100, 500];\n\n /** @hidden @internal */\n @HostBinding('class.igx-paginator')\n public cssClass = 'igx-paginator';\n\n /**\n * Gets/Sets the current page of the paginator.\n * The default is 0.\n * ```typescript\n * let page = this.paginator.page;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get page() {\n return this._page;\n }\n\n public set page(value: number) {\n if (this._page === value || value < 0 || value > this.totalPages) {\n return;\n }\n const cancelEventArgs: IPageCancellableEventArgs = { current: this._page, next: value, cancel: false };\n const eventArgs: IPageEventArgs = { previous: this._page, current: value };\n\n this.paging.emit(cancelEventArgs);\n if (cancelEventArgs.cancel) {\n return;\n }\n this._page = value;\n this.pageChange.emit(this._page);\n\n this.pagingDone.emit(eventArgs);\n }\n\n /**\n * Gets/Sets the number of visible items per page in the paginator.\n * The default is 15.\n * ```typescript\n * let itemsPerPage = this.paginator.perPage;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get perPage() {\n return this._perPage;\n }\n\n public set perPage(value: number) {\n if (value < 0 || this.perPage === value) {\n return;\n }\n this._perPage = Number(value);\n this.perPageChange.emit(this._perPage);\n this._selectOptions = this.sortUniqueOptions(this.defaultSelectValues, this._perPage);\n this.totalPages = Math.ceil(this.totalRecords / this._perPage);\n if (this.totalPages !== 0 && this.page >= this.totalPages) {\n this.page = this.totalPages - 1;\n }\n }\n\n /**\n * Sets the total records.\n * ```typescript\n * let totalRecords = this.paginator.totalRecords;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get totalRecords() {\n return this._totalRecords;\n }\n\n public set totalRecords(value: number) {\n this._totalRecords = value;\n this.totalPages = Math.ceil(this.totalRecords / this.perPage);\n if (this.page > this.totalPages) {\n this.page = 0;\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Sets custom options in the select of the paginator\n * ```typescript\n * let options = this.paginator.selectOptions;\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n @Input()\n public get selectOptions() {\n return this._selectOptions;\n }\n\n public set selectOptions(value: Array<number>) {\n this._selectOptions = this.sortUniqueOptions(value, this._perPage);\n this.defaultSelectValues = [...value];\n }\n\n /**\n * Sets custom OverlaySettings.\n * ```html\n * <igx-paginator [overlaySettings] = \"customOverlaySettings\"></igx-paginator>\n * ```\n */\n @Input()\n public get overlaySettings(): OverlaySettings {\n return this._overlaySettings;\n }\n\n public set overlaySettings(value: OverlaySettings) {\n this._overlaySettings = Object.assign({}, this._overlaySettings, value);\n }\n\n /* mustSetInCodePlatforms: WebComponents;Blazor;React */\n /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n */\n @Input()\n public set resourceStrings(value: IPaginatorResourceStrings) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n }\n\n /**\n * An accessor that returns the resource strings.\n */\n public get resourceStrings(): IPaginatorResourceStrings {\n return this._resourceStrings || this._defaultResourceStrings;\n }\n\n constructor() {\n onResourceChangeHandle(this.destroyRef, () => {\n this._defaultResourceStrings = getCurrentResourceStrings(PaginatorResourceStringsEN, false);\n }, this);\n }\n\n /**\n * Returns if the current page is the last page.\n * ```typescript\n * const lastPage = this.paginator.isLastPage;\n * ```\n */\n public get isLastPage(): boolean {\n return this.page + 1 >= this.totalPages;\n }\n\n /**\n * Returns if the current page is the first page.\n * ```typescript\n * const lastPage = this.paginator.isFirstPage;\n * ```\n */\n public get isFirstPage(): boolean {\n return this.page === 0;\n }\n\n\n /**\n * Returns if the first pager buttons should be disabled\n * @hidden\n * @deprecated in version 18.1.0. Use the `isFirstPage` property instead.\n */\n public get isFirstPageDisabled(): boolean {\n return this.isFirstPage;\n }\n\n /**\n * Returns if the last pager buttons should be disabled\n * @hidden\n * @deprecated in version 18.1.0. Use the `isLastPage` property instead.\n */\n public get isLastPageDisabled(): boolean {\n return this.isLastPage;\n }\n\n public get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n /**\n * Goes to the next page of the `IgxPaginatorComponent`, if the paginator is not already at the last page.\n * ```typescript\n * this.paginator.nextPage();\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n public nextPage(): void {\n if (!this.isLastPage) {\n this.page += 1;\n }\n }\n /**\n * Goes to the previous page of the `IgxPaginatorComponent`, if the paginator is not already at the first page.\n * ```typescript\n * this.paginator.previousPage();\n * ```\n *\n * @memberof IgxPaginatorComponent\n */\n public previousPage(): void {\n if (!this.isFirstPage) {\n this.page -= 1;\n }\n }\n /**\n * Goes to the desired page index.\n * ```typescript\n * this.paginator.paginate(1);\n * ```\n *\n * @param val\n * @memberof IgxPaginatorComponent\n */\n public paginate(val: number): void {\n if (val < 0 || val > this.totalPages - 1) {\n return;\n }\n this.page = val;\n }\n\n private sortUniqueOptions(values: Array<number>, newOption: number): number[] {\n return Array.from(new Set([...values, newOption])).sort((a, b) => a - b);\n }\n}\n\n\n@Component({\n selector: 'igx-page-size',\n templateUrl: 'page-size-selector.component.html',\n imports: [IgxSelectComponent, FormsModule, IgxSelectItemComponent]\n})\nexport class IgxPageSizeSelectorComponent {\n public paginator = inject(IgxPaginatorComponent, { host: true });\n\n /**\n * @internal\n * @hidden\n */\n @HostBinding('class.igx-page-size')\n public cssClass = 'igx-page-size';\n}\n\n\n@Component({\n selector: 'igx-page-nav',\n templateUrl: 'pager.component.html',\n imports: [IgxRippleDirective, IgxIconComponent, IgxIconButtonDirective]\n})\nexport class IgxPageNavigationComponent {\n public paginator = inject(IgxPaginatorComponent, { host: true });\n\n /**\n * @internal\n * @hidden\n */\n @HostBinding('class.igx-page-nav')\n public cssClass = 'igx-page-nav';\n\n /**\n * Sets the `role` attribute of the element.\n */\n @HostBinding('attr.role')\n @Input()\n public role = 'navigation';\n}\n","<ng-content select=\"[igxPaginatorContent],igx-paginator-content\"></ng-content>\n\n@if (!customContent) {\n <igx-page-size></igx-page-size>\n}\n@if (!customContent) {\n <igx-page-nav></igx-page-nav>\n}\n","<label class=\"igx-page-size__label\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n<div class=\"igx-page-size__select\">\n <igx-select [overlaySettings]=\"paginator.overlaySettings\" [(ngModel)]=\"paginator.perPage\" type=\"border\">\n @for (val of paginator.selectOptions; track val) {\n <igx-select-item [value]=\"val\">\n {{ val }}\n </igx-select-item>\n }\n </igx-select>\n</div>\n","<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.paginate(0)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"first_page\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.previousPage()\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n >&nbsp;{{\n paginator.resourceStrings.igx_paginator_pager_text\n }}&nbsp;</span\n >\n <span>{{ paginator.totalPages || 1 }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxIconButton=\"flat\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"last_page\"></igx-icon>\n</button>\n\n","import { IgxPaginatorDirective } from './paginator-interfaces';\nimport { IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorContentDirective } from './paginator.component';\n\nexport * from './paginator.component';\nexport * from './paginator-interfaces';\nexport { IgxPaginatorToken } from './token';\n\n/* NOTE: Paginator directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_PAGINATOR_DIRECTIVES = [\n IgxPaginatorComponent,\n IgxPageNavigationComponent,\n IgxPageSizeSelectorComponent,\n IgxPaginatorContentDirective,\n IgxPaginatorDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_PAGINATOR_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_PAGINATOR_DIRECTIVES\n ],\n exports: [\n ...IGX_PAGINATOR_DIRECTIVES\n ]\n})\nexport class IgxPaginatorModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxPaginatorComponent","i1.IgxPageNavigationComponent","i1.IgxPageSizeSelectorComponent","i1.IgxPaginatorContentDirective","i2.IgxPaginatorDirective"],"mappings":"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"}