@progress/kendo-angular-treelist 13.4.0-develop.1 → 13.4.0-develop.10

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.
@@ -3,7 +3,7 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { Directive, Optional, EventEmitter, Injectable, QueryList, Input, ContentChildren, ContentChild, InjectionToken, forwardRef, Component, SkipSelf, Host, isDevMode, SecurityContext, Inject, Output, HostBinding, Self, ViewChild, HostListener, ViewChildren, Pipe, ChangeDetectionStrategy, ViewEncapsulation, NgModule } from '@angular/core';
6
+ import { Directive, Optional, EventEmitter, Injectable, QueryList, Input, ContentChildren, ContentChild, InjectionToken, forwardRef, Component, SkipSelf, Host, isDevMode, SecurityContext, Inject, Output, HostBinding, Self, ViewChild, HostListener, ViewChildren, Pipe, ChangeDetectionStrategy, ElementRef, ViewEncapsulation, NgModule } from '@angular/core';
7
7
  import * as i4 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
9
  import * as i4$1 from '@angular/forms';
@@ -48,8 +48,8 @@ const packageMetadata = {
48
48
  name: '@progress/kendo-angular-treelist',
49
49
  productName: 'Kendo UI for Angular',
50
50
  productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
51
- publishDate: 1692286662,
52
- version: '13.4.0-develop.1',
51
+ publishDate: 1692972042,
52
+ version: '13.4.0-develop.10',
53
53
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
54
54
  };
55
55
 
@@ -6340,7 +6340,7 @@ FilterMenuInputWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
6340
6340
  valueField="value">
6341
6341
  </kendo-dropdownlist>
6342
6342
  <ng-content></ng-content>
6343
- `, isInline: true, components: [{ type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }] });
6343
+ `, isInline: true, components: [{ type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }] });
6344
6344
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterMenuInputWrapperComponent, decorators: [{
6345
6345
  type: Component,
6346
6346
  args: [{
@@ -6510,7 +6510,7 @@ StringFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
6510
6510
  [column]="column"
6511
6511
  [filter]="filter">
6512
6512
  </kendo-treelist-string-filter-menu-input>
6513
- `, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-treelist-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6513
+ `, isInline: true, components: [{ type: StringFilterMenuInputComponent, selector: "kendo-treelist-string-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6514
6514
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: StringFilterMenuComponent, decorators: [{
6515
6515
  type: Component,
6516
6516
  args: [{
@@ -6858,7 +6858,7 @@ NumericFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
6858
6858
  [step]="step"
6859
6859
  >
6860
6860
  </kendo-treelist-numeric-filter-menu-input>
6861
- `, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-treelist-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6861
+ `, isInline: true, components: [{ type: NumericFilterMenuInputComponent, selector: "kendo-treelist-numeric-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "step", "min", "max", "spinners", "decimals", "format"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
6862
6862
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: NumericFilterMenuComponent, decorators: [{
6863
6863
  type: Component,
6864
6864
  args: [{
@@ -7262,7 +7262,7 @@ DateFilterMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
7262
7262
  [weekNumber]="weekNumber"
7263
7263
  >
7264
7264
  </kendo-treelist-date-filter-menu-input>
7265
- `, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-treelist-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
7265
+ `, isInline: true, components: [{ type: DateFilterMenuInputComponent, selector: "kendo-treelist-date-filter-menu-input", inputs: ["operators", "column", "filter", "operator", "currentFilter", "filterService", "format", "formatPlaceholder", "placeholder", "min", "max", "activeView", "bottomView", "topView", "weekNumber"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
7266
7266
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DateFilterMenuComponent, decorators: [{
7267
7267
  type: Component,
7268
7268
  args: [{
@@ -8977,7 +8977,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
8977
8977
  class="k-dropdown-operator"
8978
8978
  (valueChange)="onChange($event)"
8979
8979
  [value]="value"
8980
- [attr.aria-label]="columnLabel"
8980
+ [attr.aria-label]="column && columnLabel"
8981
8981
  iconClass="k-i-filter"
8982
8982
  [valuePrimitive]="true"
8983
8983
  textField="text"
@@ -8995,7 +8995,7 @@ FilterCellOperatorsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
8995
8995
  (click)="clearClick()"
8996
8996
  (keydown)="clearKeydown($event)">
8997
8997
  </button>
8998
- `, isInline: true, components: [{ type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }] });
8998
+ `, isInline: true, components: [{ type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }] });
8999
8999
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FilterCellOperatorsComponent, decorators: [{
9000
9000
  type: Component,
9001
9001
  args: [{
@@ -9009,7 +9009,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
9009
9009
  class="k-dropdown-operator"
9010
9010
  (valueChange)="onChange($event)"
9011
9011
  [value]="value"
9012
- [attr.aria-label]="columnLabel"
9012
+ [attr.aria-label]="column && columnLabel"
9013
9013
  iconClass="k-i-filter"
9014
9014
  [valuePrimitive]="true"
9015
9015
  textField="text"
@@ -9360,7 +9360,7 @@ BooleanFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
9360
9360
  [value]="currentFilter?.value">
9361
9361
  </kendo-dropdownlist>
9362
9362
  </kendo-treelist-filter-wrapper-cell>
9363
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
9363
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
9364
9364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: BooleanFilterCellComponent, decorators: [{
9365
9365
  type: Component,
9366
9366
  args: [{
@@ -13088,113 +13088,191 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13088
13088
 
13089
13089
  // eslint-disable no-access-missing-member
13090
13090
  /**
13091
- * Displays buttons for navigating to the first and to the previous page ([see example]({% slug paging_treelist %}#toc-pager-templates)).
13091
+ * Displays information about the current page and the total number of records ([see example]({% slug paging_treelist %}#toc-pager-templates)).
13092
13092
  */
13093
- class PagerPrevButtonsComponent extends PagerElementComponent {
13094
- constructor(localization, pagerContext, cd, navigationService) {
13093
+ class PagerInfoComponent extends PagerElementComponent {
13094
+ constructor(localization, cd, pagerContext) {
13095
13095
  super(localization, pagerContext, cd);
13096
- this.navigationService = navigationService;
13096
+ this.pagerContext = pagerContext;
13097
13097
  }
13098
13098
  /**
13099
13099
  * @hidden
13100
13100
  *
13101
13101
  * @readonly
13102
- * @type {boolean}
13103
- * @memberOf PagerPrevButtonsComponent
13102
+ * @type {number}
13103
+ * @memberOf PagerInfoComponent
13104
13104
  */
13105
- get disabled() {
13106
- return this.currentPage === 1 || !this.total;
13105
+ get currentPageText() {
13106
+ return this.total ? this.currentPage : 0;
13107
13107
  }
13108
13108
  /**
13109
13109
  * @hidden
13110
+ *
13111
+ * @readonly
13112
+ * @type {number}
13113
+ * @memberOf PagerInfoComponent
13110
13114
  */
13111
- onButtonClick(buttonName) {
13112
- if (this.currentPage !== 1) {
13113
- const skipToPage = buttonName === 'prevPage' ? this.currentPage - 2 : 0;
13114
- this.changePage(skipToPage);
13115
+ get maxPage() {
13116
+ return Math.ceil(this.total / this.pageSize);
13117
+ }
13118
+ /**
13119
+ * @hidden
13120
+ *
13121
+ * @readonly
13122
+ * @type {boolean}
13123
+ * @memberOf PagerInfoComponent
13124
+ */
13125
+ get classes() {
13126
+ return true;
13127
+ }
13128
+ onChanges({ allCount, total, skip, pageSize }) {
13129
+ this.total = total;
13130
+ this.skip = skip;
13131
+ this.pageSize = pageSize;
13132
+ this.allCount = allCount;
13133
+ this.cd.markForCheck();
13134
+ }
13135
+ }
13136
+ PagerInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
13137
+ PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerInfoComponent, selector: "kendo-treelist-pager-info", host: { properties: { "class.k-pager-info": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{textFor('pagerPage')}} {{currentPageText}} {{textFor('pagerOf')}} {{maxPage}} ({{allCount}} {{textFor('pagerItemsTotal')}})`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
13138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
13139
+ type: Component,
13140
+ args: [{
13141
+ changeDetection: ChangeDetectionStrategy.OnPush,
13142
+ selector: 'kendo-treelist-pager-info',
13143
+ template: `{{textFor('pagerPage')}} {{currentPageText}} {{textFor('pagerOf')}} {{maxPage}} ({{allCount}} {{textFor('pagerItemsTotal')}})`
13144
+ }]
13145
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
13146
+ type: HostBinding,
13147
+ args: ["class.k-pager-info"]
13148
+ }, {
13149
+ type: HostBinding,
13150
+ args: ["class.k-label"]
13151
+ }] } });
13152
+
13153
+ // eslint-disable no-access-missing-member
13154
+ /**
13155
+ * Displays a drop-down list for the page size selection ([see example]({% slug paging_treelist %}#toc-pager-templates)).
13156
+ */
13157
+ class PagerPageSizesComponent extends PagerElementComponent {
13158
+ constructor(elem, localization, cd, pagerContext) {
13159
+ super(localization, pagerContext, cd);
13160
+ this.elem = elem;
13161
+ this.pagerContext = pagerContext;
13162
+ this._pageSizes = [];
13163
+ }
13164
+ /**
13165
+ * The page sizes collection. Can be an Array of numbers and/or PageSizeItem objects.
13166
+ * [More information and example]({% slug api_treelist_pagerpagesizescomponent %})
13167
+ */
13168
+ set pageSizes(pageSizes) {
13169
+ let normalizedItems = [];
13170
+ pageSizes.forEach(item => {
13171
+ if (typeof item === 'number') {
13172
+ normalizedItems.push({
13173
+ text: item.toString(),
13174
+ value: item
13175
+ });
13176
+ }
13177
+ else {
13178
+ normalizedItems.push(item);
13179
+ }
13180
+ });
13181
+ if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
13182
+ normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
13115
13183
  }
13184
+ this._pageSizes = normalizedItems;
13185
+ }
13186
+ get pageSizes() {
13187
+ return this._pageSizes;
13188
+ }
13189
+ /**
13190
+ * @hidden
13191
+ *
13192
+ * @readonly
13193
+ */
13194
+ get classes() {
13195
+ return true;
13196
+ }
13197
+ /**
13198
+ * @hidden
13199
+ *
13200
+ * @readonly
13201
+ */
13202
+ get showInitialPageSize() {
13203
+ return this.pageSizes
13204
+ .filter(item => {
13205
+ if (typeof item.value === 'number') {
13206
+ return item.value === Number(this.pageSize);
13207
+ }
13208
+ return this.total === Number(this.pageSize);
13209
+ })
13210
+ .length === 0;
13211
+ }
13212
+ /**
13213
+ * @hidden
13214
+ */
13215
+ pageSizeChange(value) {
13216
+ this.pageSize = typeof value === 'number' ? value : this.total;
13217
+ this.pagerContext.changePageSize(this.pageSize);
13218
+ }
13219
+ /**
13220
+ * @hidden
13221
+ */
13222
+ getValue(page) {
13223
+ return typeof page.value === 'number' ? page.value : this.total;
13116
13224
  }
13117
13225
  onChanges({ total, skip, pageSize }) {
13118
13226
  this.total = total;
13119
13227
  this.skip = skip;
13120
- this.pageSize = pageSize;
13228
+ this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
13121
13229
  this.cd.markForCheck();
13122
13230
  }
13123
13231
  }
13124
- PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: i1$1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
13125
- PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPrevButtonsComponent, selector: "kendo-treelist-pager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
13126
- <button
13127
- kendoButton
13128
- type="button"
13129
- kendoTreeListFocusable
13130
- [enabled]="!disabled"
13131
- [title]="textFor('pagerFirstPage')"
13132
- [attr.aria-label]="textFor('pagerFirstPage')"
13133
- (click)="onButtonClick('firstPage')"
13134
- role="button"
13135
- [icon]="prevArrowIcons[0]"
13136
- [svgIcon]="prevArrowSVGIcons[0]"
13137
- class="k-pager-nav k-pager-first"
13138
- [disabled]="disabled"
13139
- fillMode="flat"
13140
- rounded="none">
13141
- </button>
13142
- <button
13143
- kendoButton
13144
- type="button"
13232
+ PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
13233
+ PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPageSizesComponent, selector: "kendo-treelist-pager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `
13234
+ <kendo-dropdownlist
13235
+ #dropdownlist
13236
+ class="k-dropdown"
13237
+ [data]="pageSizes"
13238
+ textField="text"
13239
+ valueField="value"
13145
13240
  kendoTreeListFocusable
13146
- [enabled]="!disabled"
13147
- class="k-pager-nav"
13148
- [disabled]="disabled"
13149
- [icon]="prevArrowIcons[1]"
13150
- [svgIcon]="prevArrowSVGIcons[1]"
13151
- fillMode="flat"
13152
- rounded="none"
13153
- [title]="textFor('pagerPreviousPage')"
13154
- [attr.aria-label]="textFor('pagerPreviousPage')"
13155
- (click)="onButtonClick('prevPage')">
13156
- </button>
13157
- `, isInline: true, components: [{ type: i4$2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
13241
+ [valuePrimitive]="true"
13242
+ [value]="pageSize"
13243
+ [attr.aria-label]="textFor('pagerItemsPerPage')"
13244
+ (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
13245
+ <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
13246
+ `, isInline: true, components: [{ type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["showStickyHeader", "iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$3.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
13159
13248
  type: Component,
13160
13249
  args: [{
13161
13250
  changeDetection: ChangeDetectionStrategy.OnPush,
13162
- selector: 'kendo-treelist-pager-prev-buttons',
13251
+ selector: 'kendo-treelist-pager-page-sizes',
13163
13252
  template: `
13164
- <button
13165
- kendoButton
13166
- type="button"
13167
- kendoTreeListFocusable
13168
- [enabled]="!disabled"
13169
- [title]="textFor('pagerFirstPage')"
13170
- [attr.aria-label]="textFor('pagerFirstPage')"
13171
- (click)="onButtonClick('firstPage')"
13172
- role="button"
13173
- [icon]="prevArrowIcons[0]"
13174
- [svgIcon]="prevArrowSVGIcons[0]"
13175
- class="k-pager-nav k-pager-first"
13176
- [disabled]="disabled"
13177
- fillMode="flat"
13178
- rounded="none">
13179
- </button>
13180
- <button
13181
- kendoButton
13182
- type="button"
13253
+ <kendo-dropdownlist
13254
+ #dropdownlist
13255
+ class="k-dropdown"
13256
+ [data]="pageSizes"
13257
+ textField="text"
13258
+ valueField="value"
13183
13259
  kendoTreeListFocusable
13184
- [enabled]="!disabled"
13185
- class="k-pager-nav"
13186
- [disabled]="disabled"
13187
- [icon]="prevArrowIcons[1]"
13188
- [svgIcon]="prevArrowSVGIcons[1]"
13189
- fillMode="flat"
13190
- rounded="none"
13191
- [title]="textFor('pagerPreviousPage')"
13192
- [attr.aria-label]="textFor('pagerPreviousPage')"
13193
- (click)="onButtonClick('prevPage')">
13194
- </button>
13260
+ [valuePrimitive]="true"
13261
+ [value]="pageSize"
13262
+ [attr.aria-label]="textFor('pagerItemsPerPage')"
13263
+ (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
13264
+ <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
13195
13265
  `
13196
13266
  }]
13197
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
13267
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { pageSizes: [{
13268
+ type: Input
13269
+ }], classes: [{
13270
+ type: HostBinding,
13271
+ args: ["class.k-pager-sizes"]
13272
+ }, {
13273
+ type: HostBinding,
13274
+ args: ["class.k-label"]
13275
+ }] } });
13198
13276
 
13199
13277
  /* eslint-disable @typescript-eslint/no-inferrable-types */
13200
13278
  /**
@@ -13204,7 +13282,6 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
13204
13282
  constructor(localization, cd, pagerContext) {
13205
13283
  super(localization, pagerContext, cd);
13206
13284
  this.pagerContext = pagerContext;
13207
- this.numbersWrapClass = true;
13208
13285
  }
13209
13286
  /**
13210
13287
  * @hidden
@@ -13274,10 +13351,12 @@ class PagerNumericButtonsComponent extends PagerElementComponent {
13274
13351
  }
13275
13352
  }
13276
13353
  PagerNumericButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerNumericButtonsComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
13277
- PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-treelist-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, host: { properties: { "class.k-pager-numbers-wrap": "this.numbersWrapClass" } }, usesInheritance: true, ngImport: i0, template: `
13354
+ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerNumericButtonsComponent, selector: "kendo-treelist-pager-numeric-buttons", inputs: { buttonCount: "buttonCount" }, viewQueries: [{ propertyName: "selectElement", first: true, predicate: ["select"], descendants: true, read: ElementRef }, { propertyName: "numbersElement", first: true, predicate: ["numbers"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: `
13278
13355
  <select
13279
13356
  class="k-dropdown-list k-dropdown k-picker k-picker-solid k-picker-md k-rounded-md"
13280
13357
  kendoTreeListFocusable
13358
+ [style.display]="'none'"
13359
+ #select
13281
13360
  [attr.title]="textFor('selectPage')"
13282
13361
  [attr.aria-label]="textFor('selectPage')"
13283
13362
  (change)="onSelectChange($event)">
@@ -13300,7 +13379,7 @@ PagerNumericButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
13300
13379
  [attr.aria-label]="pageLabel(end + 1)">...
13301
13380
  </option>
13302
13381
  </select>
13303
- <div class="k-pager-numbers">
13382
+ <div class="k-pager-numbers" #numbers>
13304
13383
  <button *ngIf="start > 1"
13305
13384
  type="button"
13306
13385
  kendoTreeListFocusable
@@ -13349,6 +13428,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13349
13428
  <select
13350
13429
  class="k-dropdown-list k-dropdown k-picker k-picker-solid k-picker-md k-rounded-md"
13351
13430
  kendoTreeListFocusable
13431
+ [style.display]="'none'"
13432
+ #select
13352
13433
  [attr.title]="textFor('selectPage')"
13353
13434
  [attr.aria-label]="textFor('selectPage')"
13354
13435
  (change)="onSelectChange($event)">
@@ -13371,7 +13452,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13371
13452
  [attr.aria-label]="pageLabel(end + 1)">...
13372
13453
  </option>
13373
13454
  </select>
13374
- <div class="k-pager-numbers">
13455
+ <div class="k-pager-numbers" #numbers>
13375
13456
  <button *ngIf="start > 1"
13376
13457
  type="button"
13377
13458
  kendoTreeListFocusable
@@ -13412,12 +13493,125 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13412
13493
  </div>
13413
13494
  `
13414
13495
  }]
13415
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { numbersWrapClass: [{
13416
- type: HostBinding,
13417
- args: ['class.k-pager-numbers-wrap']
13418
- }], buttonCount: [{
13419
- type: Input
13420
- }] } });
13496
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { selectElement: [{
13497
+ type: ViewChild,
13498
+ args: ['select', { read: ElementRef }]
13499
+ }], numbersElement: [{
13500
+ type: ViewChild,
13501
+ args: ['numbers', { read: ElementRef }]
13502
+ }], buttonCount: [{
13503
+ type: Input
13504
+ }] } });
13505
+
13506
+ // eslint-disable no-access-missing-member
13507
+ /**
13508
+ * Displays buttons for navigating to the first and to the previous page ([see example]({% slug paging_treelist %}#toc-pager-templates)).
13509
+ */
13510
+ class PagerPrevButtonsComponent extends PagerElementComponent {
13511
+ constructor(localization, pagerContext, cd, navigationService) {
13512
+ super(localization, pagerContext, cd);
13513
+ this.navigationService = navigationService;
13514
+ }
13515
+ /**
13516
+ * @hidden
13517
+ *
13518
+ * @readonly
13519
+ * @type {boolean}
13520
+ * @memberOf PagerPrevButtonsComponent
13521
+ */
13522
+ get disabled() {
13523
+ return this.currentPage === 1 || !this.total;
13524
+ }
13525
+ /**
13526
+ * @hidden
13527
+ */
13528
+ onButtonClick(buttonName) {
13529
+ if (this.currentPage !== 1) {
13530
+ const skipToPage = buttonName === 'prevPage' ? this.currentPage - 2 : 0;
13531
+ this.changePage(skipToPage);
13532
+ }
13533
+ }
13534
+ onChanges({ total, skip, pageSize }) {
13535
+ this.total = total;
13536
+ this.skip = skip;
13537
+ this.pageSize = pageSize;
13538
+ this.cd.markForCheck();
13539
+ }
13540
+ }
13541
+ PagerPrevButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, deps: [{ token: i1$1.LocalizationService }, { token: PagerContextService }, { token: i0.ChangeDetectorRef }, { token: NavigationService }], target: i0.ɵɵFactoryTarget.Component });
13542
+ PagerPrevButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPrevButtonsComponent, selector: "kendo-treelist-pager-prev-buttons", usesInheritance: true, ngImport: i0, template: `
13543
+ <button
13544
+ kendoButton
13545
+ type="button"
13546
+ kendoTreeListFocusable
13547
+ [enabled]="!disabled"
13548
+ [title]="textFor('pagerFirstPage')"
13549
+ [attr.aria-label]="textFor('pagerFirstPage')"
13550
+ (click)="onButtonClick('firstPage')"
13551
+ role="button"
13552
+ [icon]="prevArrowIcons[0]"
13553
+ [svgIcon]="prevArrowSVGIcons[0]"
13554
+ class="k-pager-nav k-pager-first"
13555
+ [disabled]="disabled"
13556
+ fillMode="flat"
13557
+ rounded="none">
13558
+ </button>
13559
+ <button
13560
+ kendoButton
13561
+ type="button"
13562
+ kendoTreeListFocusable
13563
+ [enabled]="!disabled"
13564
+ class="k-pager-nav"
13565
+ [disabled]="disabled"
13566
+ [icon]="prevArrowIcons[1]"
13567
+ [svgIcon]="prevArrowSVGIcons[1]"
13568
+ fillMode="flat"
13569
+ rounded="none"
13570
+ [title]="textFor('pagerPreviousPage')"
13571
+ [attr.aria-label]="textFor('pagerPreviousPage')"
13572
+ (click)="onButtonClick('prevPage')">
13573
+ </button>
13574
+ `, isInline: true, components: [{ type: i4$2.ButtonComponent, selector: "button[kendoButton], span[kendoButton], kendo-button", inputs: ["toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "role", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPrevButtonsComponent, decorators: [{
13576
+ type: Component,
13577
+ args: [{
13578
+ changeDetection: ChangeDetectionStrategy.OnPush,
13579
+ selector: 'kendo-treelist-pager-prev-buttons',
13580
+ template: `
13581
+ <button
13582
+ kendoButton
13583
+ type="button"
13584
+ kendoTreeListFocusable
13585
+ [enabled]="!disabled"
13586
+ [title]="textFor('pagerFirstPage')"
13587
+ [attr.aria-label]="textFor('pagerFirstPage')"
13588
+ (click)="onButtonClick('firstPage')"
13589
+ role="button"
13590
+ [icon]="prevArrowIcons[0]"
13591
+ [svgIcon]="prevArrowSVGIcons[0]"
13592
+ class="k-pager-nav k-pager-first"
13593
+ [disabled]="disabled"
13594
+ fillMode="flat"
13595
+ rounded="none">
13596
+ </button>
13597
+ <button
13598
+ kendoButton
13599
+ type="button"
13600
+ kendoTreeListFocusable
13601
+ [enabled]="!disabled"
13602
+ class="k-pager-nav"
13603
+ [disabled]="disabled"
13604
+ [icon]="prevArrowIcons[1]"
13605
+ [svgIcon]="prevArrowSVGIcons[1]"
13606
+ fillMode="flat"
13607
+ rounded="none"
13608
+ [title]="textFor('pagerPreviousPage')"
13609
+ [attr.aria-label]="textFor('pagerPreviousPage')"
13610
+ (click)="onButtonClick('prevPage')">
13611
+ </button>
13612
+ `
13613
+ }]
13614
+ }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: PagerContextService }, { type: i0.ChangeDetectorRef }, { type: NavigationService }]; } });
13421
13615
 
13422
13616
  /**
13423
13617
  * Displays an input element which allows the typing and rendering of page numbers.
@@ -13655,194 +13849,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
13655
13849
  type: Input
13656
13850
  }] } });
13657
13851
 
13658
- // eslint-disable no-access-missing-member
13659
- /**
13660
- * Displays information about the current page and the total number of records ([see example]({% slug paging_treelist %}#toc-pager-templates)).
13661
- */
13662
- class PagerInfoComponent extends PagerElementComponent {
13663
- constructor(localization, cd, pagerContext) {
13664
- super(localization, pagerContext, cd);
13665
- this.pagerContext = pagerContext;
13666
- }
13667
- /**
13668
- * @hidden
13669
- *
13670
- * @readonly
13671
- * @type {number}
13672
- * @memberOf PagerInfoComponent
13673
- */
13674
- get currentPageText() {
13675
- return this.total ? this.currentPage : 0;
13676
- }
13677
- /**
13678
- * @hidden
13679
- *
13680
- * @readonly
13681
- * @type {number}
13682
- * @memberOf PagerInfoComponent
13683
- */
13684
- get maxPage() {
13685
- return Math.ceil(this.total / this.pageSize);
13686
- }
13687
- /**
13688
- * @hidden
13689
- *
13690
- * @readonly
13691
- * @type {boolean}
13692
- * @memberOf PagerInfoComponent
13693
- */
13694
- get classes() {
13695
- return true;
13696
- }
13697
- onChanges({ allCount, total, skip, pageSize }) {
13698
- this.total = total;
13699
- this.skip = skip;
13700
- this.pageSize = pageSize;
13701
- this.allCount = allCount;
13702
- this.cd.markForCheck();
13703
- }
13704
- }
13705
- PagerInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
13706
- PagerInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerInfoComponent, selector: "kendo-treelist-pager-info", host: { properties: { "class.k-pager-info": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `{{textFor('pagerPage')}} {{currentPageText}} {{textFor('pagerOf')}} {{maxPage}} ({{allCount}} {{textFor('pagerItemsTotal')}})`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
13707
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerInfoComponent, decorators: [{
13708
- type: Component,
13709
- args: [{
13710
- changeDetection: ChangeDetectionStrategy.OnPush,
13711
- selector: 'kendo-treelist-pager-info',
13712
- template: `{{textFor('pagerPage')}} {{currentPageText}} {{textFor('pagerOf')}} {{maxPage}} ({{allCount}} {{textFor('pagerItemsTotal')}})`
13713
- }]
13714
- }], ctorParameters: function () { return [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { classes: [{
13715
- type: HostBinding,
13716
- args: ["class.k-pager-info"]
13717
- }, {
13718
- type: HostBinding,
13719
- args: ["class.k-label"]
13720
- }] } });
13721
-
13722
- // eslint-disable no-access-missing-member
13723
- /**
13724
- * Displays a drop-down list for the page size selection ([see example]({% slug paging_treelist %}#toc-pager-templates)).
13725
- */
13726
- class PagerPageSizesComponent extends PagerElementComponent {
13727
- constructor(elem, localization, cd, pagerContext) {
13728
- super(localization, pagerContext, cd);
13729
- this.elem = elem;
13730
- this.pagerContext = pagerContext;
13731
- this._pageSizes = [];
13732
- }
13733
- /**
13734
- * The page sizes collection. Can be an Array of numbers and/or PageSizeItem objects.
13735
- * [More information and example]({% slug api_treelist_pagerpagesizescomponent %})
13736
- */
13737
- set pageSizes(pageSizes) {
13738
- let normalizedItems = [];
13739
- pageSizes.forEach(item => {
13740
- if (typeof item === 'number') {
13741
- normalizedItems.push({
13742
- text: item.toString(),
13743
- value: item
13744
- });
13745
- }
13746
- else {
13747
- normalizedItems.push(item);
13748
- }
13749
- });
13750
- if (this.pageSize && !normalizedItems.some(item => item.value === this.pageSize)) {
13751
- normalizedItems = [{ text: this.pageSize.toString(), value: this.pageSize }, ...normalizedItems];
13752
- }
13753
- this._pageSizes = normalizedItems;
13754
- }
13755
- get pageSizes() {
13756
- return this._pageSizes;
13757
- }
13758
- /**
13759
- * @hidden
13760
- *
13761
- * @readonly
13762
- */
13763
- get classes() {
13764
- return true;
13765
- }
13766
- /**
13767
- * @hidden
13768
- *
13769
- * @readonly
13770
- */
13771
- get showInitialPageSize() {
13772
- return this.pageSizes
13773
- .filter(item => {
13774
- if (typeof item.value === 'number') {
13775
- return item.value === Number(this.pageSize);
13776
- }
13777
- return this.total === Number(this.pageSize);
13778
- })
13779
- .length === 0;
13780
- }
13781
- /**
13782
- * @hidden
13783
- */
13784
- pageSizeChange(value) {
13785
- this.pageSize = typeof value === 'number' ? value : this.total;
13786
- this.pagerContext.changePageSize(this.pageSize);
13787
- }
13788
- /**
13789
- * @hidden
13790
- */
13791
- getValue(page) {
13792
- return typeof page.value === 'number' ? page.value : this.total;
13793
- }
13794
- onChanges({ total, skip, pageSize }) {
13795
- this.total = total;
13796
- this.skip = skip;
13797
- this.pageSize = typeof pageSize === 'number' ? pageSize : this.total;
13798
- this.cd.markForCheck();
13799
- }
13800
- }
13801
- PagerPageSizesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: PagerContextService }], target: i0.ɵɵFactoryTarget.Component });
13802
- PagerPageSizesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PagerPageSizesComponent, selector: "kendo-treelist-pager-page-sizes", inputs: { pageSizes: "pageSizes" }, host: { properties: { "class.k-pager-sizes": "this.classes", "class.k-label": "this.classes" } }, usesInheritance: true, ngImport: i0, template: `
13803
- <kendo-dropdownlist
13804
- #dropdownlist
13805
- class="k-dropdown"
13806
- [data]="pageSizes"
13807
- textField="text"
13808
- valueField="value"
13809
- kendoTreeListFocusable
13810
- [valuePrimitive]="true"
13811
- [value]="pageSize"
13812
- [attr.aria-label]="textFor('pagerItemsPerPage')"
13813
- (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
13814
- <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
13815
- `, isInline: true, components: [{ type: i3$1.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i4$3.LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }], directives: [{ type: FocusableDirective, selector: "[kendoTreeListFocusable],\n [kendoTreeListAddCommand],\n [kendoTreeListEditCommand],\n [kendoTreeListRemoveCommand],\n [kendoTreeListSaveCommand],\n [kendoTreeListCancelCommand]\n ", inputs: ["kendoTreeListFocusable", "enabled", "kendoTreeListAddCommand", "kendoTreeListEditCommand", "kendoTreeListRemoveCommand", "kendoTreeListSaveCommand", "kendoTreeListCancelCommand"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13816
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerPageSizesComponent, decorators: [{
13817
- type: Component,
13818
- args: [{
13819
- changeDetection: ChangeDetectionStrategy.OnPush,
13820
- selector: 'kendo-treelist-pager-page-sizes',
13821
- template: `
13822
- <kendo-dropdownlist
13823
- #dropdownlist
13824
- class="k-dropdown"
13825
- [data]="pageSizes"
13826
- textField="text"
13827
- valueField="value"
13828
- kendoTreeListFocusable
13829
- [valuePrimitive]="true"
13830
- [value]="pageSize"
13831
- [attr.aria-label]="textFor('pagerItemsPerPage')"
13832
- (valueChange)="pageSizeChange($event)"></kendo-dropdownlist>
13833
- <kendo-label [for]="dropdownlist" [text]="textFor('pagerItemsPerPage')"></kendo-label>
13834
- `
13835
- }]
13836
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: PagerContextService }]; }, propDecorators: { pageSizes: [{
13837
- type: Input
13838
- }], classes: [{
13839
- type: HostBinding,
13840
- args: ["class.k-pager-sizes"]
13841
- }, {
13842
- type: HostBinding,
13843
- args: ["class.k-label"]
13844
- }] } });
13845
-
13846
13852
  /**
13847
13853
  * @hidden
13848
13854
  */
@@ -13874,18 +13880,33 @@ class PagerComponent {
13874
13880
  if (this.template || !element) {
13875
13881
  return;
13876
13882
  }
13877
- const width = element.offsetWidth;
13878
- if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
13879
- this.renderer.removeClass(element, 'k-pager-mobile-md');
13880
- this.renderer.addClass(element, 'k-pager-mobile-sm');
13881
- }
13882
- else if (width >= RESPONSIVE_BREAKPOINT_MEDIUM && width < RESPONSIVE_BREAKPOINT_LARGE) {
13883
- this.renderer.addClass(element, 'k-pager-mobile-md');
13884
- this.renderer.removeClass(element, 'k-pager-mobile-sm');
13885
- }
13886
- else {
13887
- this.clearResponsiveClasses();
13888
- }
13883
+ this.zone.runOutsideAngular(() => {
13884
+ setTimeout(() => {
13885
+ const width = element.offsetWidth;
13886
+ if (this.numericButtons) {
13887
+ const selectElement = this.numericButtons.selectElement.nativeElement;
13888
+ const numbersElement = this.numericButtons.numbersElement.nativeElement;
13889
+ this.renderer.removeStyle(numbersElement, 'display');
13890
+ this.renderer.setStyle(selectElement, 'display', 'none');
13891
+ if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
13892
+ this.renderer.removeStyle(selectElement, 'display');
13893
+ this.renderer.setStyle(numbersElement, 'display', 'none');
13894
+ }
13895
+ }
13896
+ if (this.pagerInfo) {
13897
+ this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
13898
+ if (width < RESPONSIVE_BREAKPOINT_LARGE) {
13899
+ this.renderer.setStyle(this.pagerInfo.nativeElement, 'display', 'none');
13900
+ }
13901
+ }
13902
+ if (this.pagerPageSizes) {
13903
+ this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
13904
+ if (width < RESPONSIVE_BREAKPOINT_MEDIUM) {
13905
+ this.renderer.setStyle(this.pagerPageSizes.nativeElement, 'display', 'none');
13906
+ }
13907
+ }
13908
+ });
13909
+ });
13889
13910
  };
13890
13911
  }
13891
13912
  set options(value) {
@@ -13931,14 +13952,12 @@ class PagerComponent {
13931
13952
  allCount: this.allCount || this.total
13932
13953
  });
13933
13954
  }
13934
- const templateChanges = changes['template'];
13935
- if (templateChanges) {
13936
- // eslint-disable-next-line no-unused-expressions
13937
- templateChanges.currentValue ? this.clearResponsiveClasses() : this.resizeHandler();
13955
+ const changesInTemplate = changes['template'];
13956
+ if (changesInTemplate) {
13957
+ changesInTemplate.currentValue ? this.clearResponsiveStyling() : this.resizeHandler();
13938
13958
  }
13939
13959
  if (changes['options']) {
13940
- // eslint-disable-next-line no-unused-expressions
13941
- this.settings.responsive ? this.resizeHandler() : this.clearResponsiveClasses();
13960
+ this.settings.responsive ? this.resizeHandler() : this.clearResponsiveStyling();
13942
13961
  }
13943
13962
  }
13944
13963
  ngOnDestroy() {
@@ -14048,10 +14067,17 @@ class PagerComponent {
14048
14067
  shouldTriggerPageChange(target, condition) {
14049
14068
  return this.navigationService.enabled && target === this.element.nativeElement && condition;
14050
14069
  }
14051
- clearResponsiveClasses() {
14052
- const element = this.element.nativeElement;
14053
- this.renderer.removeClass(element, 'k-pager-mobile-sm');
14054
- this.renderer.removeClass(element, 'k-pager-mobile-md');
14070
+ clearResponsiveStyling() {
14071
+ this.zone.runOutsideAngular(() => {
14072
+ setTimeout(() => {
14073
+ if (this.numericButtons) {
14074
+ this.renderer.removeStyle(this.numericButtons.numbersElement.nativeElement, 'display');
14075
+ this.renderer.setStyle(this.numericButtons.selectElement.nativeElement, 'display', 'none');
14076
+ }
14077
+ this.pagerInfo && this.renderer.removeStyle(this.pagerInfo.nativeElement, 'display');
14078
+ this.pagerPageSizes && this.renderer.removeStyle(this.pagerPageSizes.nativeElement, 'display');
14079
+ });
14080
+ });
14055
14081
  }
14056
14082
  }
14057
14083
  PagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PagerComponent, deps: [{ token: NavigationService }, { token: i1$1.LocalizationService }, { token: PagerContextService }, { token: FocusGroup }, { token: FocusRoot }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
@@ -14066,7 +14092,7 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
14066
14092
  provide: FocusGroup,
14067
14093
  deps: [FocusRoot],
14068
14094
  useClass: FocusGroup
14069
- }], viewQueries: [{ propertyName: "prevButtons", first: true, predicate: ["prevButtons"], descendants: true }, { propertyName: "nextButtons", first: true, predicate: ["nextButtons"], descendants: true }, { propertyName: "numericButtons", first: true, predicate: ["numericButtons"], descendants: true }, { propertyName: "pagerInput", first: true, predicate: ["pagerInput"], descendants: true }, { propertyName: "pageSizes", first: true, predicate: ["pageSizes"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
14095
+ }], viewQueries: [{ propertyName: "pagerInfo", first: true, predicate: PagerInfoComponent, descendants: true, read: ElementRef }, { propertyName: "pagerPageSizes", first: true, predicate: PagerPageSizesComponent, descendants: true, read: ElementRef }, { propertyName: "numericButtons", first: true, predicate: PagerNumericButtonsComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
14070
14096
  <div
14071
14097
  *ngIf="navigationService.enabled"
14072
14098
  class="k-sr-only"
@@ -14080,16 +14106,20 @@ PagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
14080
14106
  [ngTemplateOutletContext]="templateContext">
14081
14107
  </ng-container>
14082
14108
  <ng-container *ngIf="!template?.templateRef">
14083
- <kendo-treelist-pager-prev-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-prev-buttons>
14084
- <kendo-treelist-pager-numeric-buttons
14085
- *ngIf="settings.type === 'numeric'"
14086
- [buttonCount]="settings.buttonCount"
14087
- >
14088
- </kendo-treelist-pager-numeric-buttons>
14089
- <kendo-treelist-pager-input *ngIf="settings.type === 'input'"></kendo-treelist-pager-input>
14090
- <kendo-treelist-pager-next-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-next-buttons>
14109
+ <div class="k-pager-numbers-wrap">
14110
+ <kendo-treelist-pager-prev-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-prev-buttons>
14111
+ <kendo-treelist-pager-numeric-buttons
14112
+ *ngIf="settings.type === 'numeric'"
14113
+ [buttonCount]="settings.buttonCount">
14114
+ </kendo-treelist-pager-numeric-buttons>
14115
+ <kendo-treelist-pager-input *ngIf="settings.type === 'input'"></kendo-treelist-pager-input>
14116
+ <kendo-treelist-pager-next-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-next-buttons>
14117
+ </div>
14091
14118
  <kendo-treelist-pager-info *ngIf='settings.info'></kendo-treelist-pager-info>
14092
- <kendo-treelist-pager-page-sizes *ngIf="settings.pageSizes" [pageSizes]="$any(settings.pageSizes)"></kendo-treelist-pager-page-sizes>
14119
+ <kendo-treelist-pager-page-sizes
14120
+ *ngIf="settings.pageSizes"
14121
+ [pageSizes]="$any(settings.pageSizes)">
14122
+ </kendo-treelist-pager-page-sizes>
14093
14123
  </ng-container>
14094
14124
  <div
14095
14125
  *ngIf="navigationService.enabled"
@@ -14130,16 +14160,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14130
14160
  [ngTemplateOutletContext]="templateContext">
14131
14161
  </ng-container>
14132
14162
  <ng-container *ngIf="!template?.templateRef">
14133
- <kendo-treelist-pager-prev-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-prev-buttons>
14134
- <kendo-treelist-pager-numeric-buttons
14135
- *ngIf="settings.type === 'numeric'"
14136
- [buttonCount]="settings.buttonCount"
14137
- >
14138
- </kendo-treelist-pager-numeric-buttons>
14139
- <kendo-treelist-pager-input *ngIf="settings.type === 'input'"></kendo-treelist-pager-input>
14140
- <kendo-treelist-pager-next-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-next-buttons>
14163
+ <div class="k-pager-numbers-wrap">
14164
+ <kendo-treelist-pager-prev-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-prev-buttons>
14165
+ <kendo-treelist-pager-numeric-buttons
14166
+ *ngIf="settings.type === 'numeric'"
14167
+ [buttonCount]="settings.buttonCount">
14168
+ </kendo-treelist-pager-numeric-buttons>
14169
+ <kendo-treelist-pager-input *ngIf="settings.type === 'input'"></kendo-treelist-pager-input>
14170
+ <kendo-treelist-pager-next-buttons *ngIf="settings.previousNext"></kendo-treelist-pager-next-buttons>
14171
+ </div>
14141
14172
  <kendo-treelist-pager-info *ngIf='settings.info'></kendo-treelist-pager-info>
14142
- <kendo-treelist-pager-page-sizes *ngIf="settings.pageSizes" [pageSizes]="$any(settings.pageSizes)"></kendo-treelist-pager-page-sizes>
14173
+ <kendo-treelist-pager-page-sizes
14174
+ *ngIf="settings.pageSizes"
14175
+ [pageSizes]="$any(settings.pageSizes)">
14176
+ </kendo-treelist-pager-page-sizes>
14143
14177
  </ng-container>
14144
14178
  <div
14145
14179
  *ngIf="navigationService.enabled"
@@ -14151,21 +14185,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
14151
14185
  <kendo-resize-sensor *ngIf="settings.responsive" (resize)="resizeHandler()"></kendo-resize-sensor>
14152
14186
  `
14153
14187
  }]
14154
- }], ctorParameters: function () { return [{ type: NavigationService }, { type: i1$1.LocalizationService }, { type: PagerContextService }, { type: FocusGroup }, { type: FocusRoot }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { prevButtons: [{
14188
+ }], ctorParameters: function () { return [{ type: NavigationService }, { type: i1$1.LocalizationService }, { type: PagerContextService }, { type: FocusGroup }, { type: FocusRoot }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { pagerInfo: [{
14155
14189
  type: ViewChild,
14156
- args: ['prevButtons']
14157
- }], nextButtons: [{
14190
+ args: [PagerInfoComponent, { read: ElementRef }]
14191
+ }], pagerPageSizes: [{
14158
14192
  type: ViewChild,
14159
- args: ['nextButtons']
14193
+ args: [PagerPageSizesComponent, { read: ElementRef }]
14160
14194
  }], numericButtons: [{
14161
14195
  type: ViewChild,
14162
- args: ['numericButtons']
14163
- }], pagerInput: [{
14164
- type: ViewChild,
14165
- args: ['pagerInput']
14166
- }], pageSizes: [{
14167
- type: ViewChild,
14168
- args: ['pageSizes']
14196
+ args: [PagerNumericButtonsComponent]
14169
14197
  }], allCount: [{
14170
14198
  type: Input
14171
14199
  }], total: [{
@@ -15382,6 +15410,7 @@ class TreeListComponent {
15382
15410
  this.attachElementEventHandlers();
15383
15411
  this.updateNavigationMetadata();
15384
15412
  this.applyAutoSize();
15413
+ this.subscriptions.add(this.pagerTemplateChildren.changes.subscribe(() => this.changeDetectorRef.markForCheck()));
15385
15414
  }
15386
15415
  ngAfterContentChecked() {
15387
15416
  if (this.dataChanged) {
@@ -17335,7 +17364,7 @@ AutoCompleteFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion:
17335
17364
  [value]="currentFilter?.value">
17336
17365
  </kendo-autocomplete>
17337
17366
  </kendo-treelist-filter-wrapper-cell>
17338
- `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
17367
+ `, isInline: true, components: [{ type: FilterCellWrapperComponent, selector: "kendo-treelist-filter-wrapper-cell", inputs: ["showOperators"] }, { type: i3$1.AutoCompleteComponent, selector: "kendo-autocomplete", inputs: ["highlightFirst", "showStickyHeader", "focusableId", "data", "value", "valueField", "placeholder", "adaptiveMode", "title", "subtitle", "popupSettings", "listHeight", "loading", "clearButton", "suggest", "disabled", "itemDisabled", "readonly", "tabindex", "tabIndex", "filterable", "virtual", "size", "rounded", "fillMode"], outputs: ["valueChange", "filterChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoAutoComplete"] }], directives: [{ type: FilterInputDirective, selector: "[kendoFilterInput]", inputs: ["filterDelay", "columnLabel", "column", "value"] }] });
17339
17368
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutoCompleteFilterCellComponent, decorators: [{
17340
17369
  type: Component,
17341
17370
  args: [{