@progress/telerik-jquery-report-viewer
Version:
Progress® Telerik® Report Viewer for jQuery
61 lines (58 loc) • 1.99 kB
JavaScript
import { BaseComponent } from '../base-component.js';
import { tryParseInt } from '../utils.js';
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
class PageNumberInput extends BaseComponent {
// #endregion
// #region constructor
constructor(element, options) {
super(element, options);
// #region fields
__publicField(this, "cmd");
__publicField(this, "_numeric");
this.cmd = this.options.commands["goToPage"];
this._numeric = new kendo.ui.NumericTextBox(this.element, {
format: "0",
decimals: 0,
min: 0,
spinners: false,
change: this._onChange.bind(this),
spin: this._onChange.bind(this)
});
this._numeric._text[0].dataset.role = "telerik_ReportViewer_PageNumberInput";
this._numeric.element[0].dataset.role = "";
this.options.controller.on("reportLoadComplete", (event, reportInfo) => {
this._numeric.max(reportInfo.pageCount);
this._numeric.min(Math.min(1, reportInfo.pageCount));
this._numeric.value(Math.min(1, reportInfo.pageCount));
}).on("loadedReportChange", (event) => {
this._numeric.min(0);
this._numeric.max(0);
this._numeric.value(0);
}).on("renderingStopped", (event) => {
this._numeric.min(0);
this._numeric.max(0);
this._numeric.value(0);
}).pageNumberChange((event, value) => {
this._numeric.value(value);
});
}
// #endregion
// #region event handlers
_onChange(event, data) {
var val = this._numeric.value();
var num = tryParseInt(val);
if (!isNaN(num)) {
this.cmd.exec(num);
}
}
_onSpin(event, data) {
return this._onChange(event, data);
}
// #endregion
}
export { PageNumberInput };