@easyquery/ui 7.4.1-rc02 → 7.4.1-rc04

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.
@@ -2822,7 +2822,6 @@ class AttrColumnRendererCP extends ColumnRendererCP {
2822
2822
  .title(attrCaption)
2823
2823
  .text(attrCaption) //TO DO:add localization
2824
2824
  .on('click', (ev) => {
2825
- console.log("columns expression click");
2826
2825
  ev.stopPropagation();
2827
2826
  this.activate();
2828
2827
  this.panel.showEntitiesMenu({
@@ -3505,7 +3504,6 @@ class ColumnsPanel extends core.Widget {
3505
3504
  .attr('href', 'javascript:void(0)')
3506
3505
  .text(core$1.i18n.getText('CmdClickToAddColumn'))
3507
3506
  .on('click', (e) => {
3508
- console.log("Add new column");
3509
3507
  e.preventDefault();
3510
3508
  this.showEntitiesMenu({
3511
3509
  anchor: e.target,
@@ -7391,6 +7389,9 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
7391
7389
  showTimePicker: this.expression.dataType !== core$1.DataType.Date,
7392
7390
  oneClickDateSelection: this.panel.options.oneClickDateSelection,
7393
7391
  showDateTimeInput: this.panel.options.showDateTimeInput,
7392
+ minDate: this.panel.options.minDate,
7393
+ maxDate: this.panel.options.maxDate,
7394
+ defaultDate: this.panel.options.defaultDate,
7394
7395
  onApply: (dateTime) => {
7395
7396
  const value = this.convertToInternalFormat(dateTime);
7396
7397
  this.setValue(value);
@@ -7412,17 +7413,20 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
7412
7413
  : new ui.DefaultDateTimePicker(pickerOptions);
7413
7414
  const model = this.expression.getModel();
7414
7415
  const value = this.expression.value;
7415
- let dateTime = new Date();
7416
+ let dt;
7416
7417
  if (this.expression.dataType != core$1.DataType.Time && model.isDateMacro(value)) {
7417
- dateTime = model.getDateMacroValue(value);
7418
+ dt = model.getDateMacroValue(value);
7418
7419
  }
7419
7420
  else if (this.expression.dataType == core$1.DataType.Time && model.isTimeMacro(value)) {
7420
- dateTime = model.getTimeMacroValue(value);
7421
+ dt = model.getTimeMacroValue(value);
7421
7422
  }
7422
7423
  else {
7423
- dateTime = this.convertFromInternalFormat(value, new Date());
7424
+ const defaultDate = this.panel.options.defaultDate
7425
+ ? ui.dateLikeToDate(this.panel.options.defaultDate)
7426
+ : new Date();
7427
+ dt = this.convertFromInternalFormat(value, defaultDate);
7424
7428
  }
7425
- this.dtp.setDateTime(dateTime);
7429
+ this.dtp.setDateTime(dt);
7426
7430
  this.dtp.show(this.element);
7427
7431
  }
7428
7432
  closeEditor() {
@@ -7451,6 +7455,8 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
7451
7455
  && ((this.panel.options.editableParts & exports.QPEditablePart.Value) === exports.QPEditablePart.Value);
7452
7456
  }
7453
7457
  convertFromInternalFormat(dateTimeStr, defautValue) {
7458
+ if (!dateTimeStr)
7459
+ return defautValue || new Date();
7454
7460
  try {
7455
7461
  return core$1.utils.strToDateTime(dateTimeStr, this.internalDateFormat + ' ' + this.internalTimeFormat);
7456
7462
  }
@@ -7838,6 +7844,7 @@ class QueryPanel extends core.Widget {
7838
7844
  this.slot.innerHTML = '';
7839
7845
  }
7840
7846
  getEntitiesMenu() {
7847
+ this.checkEntitiesMenu();
7841
7848
  return this.entitiesMenu;
7842
7849
  }
7843
7850
  getConditionMenu() {
@@ -8024,7 +8031,7 @@ class QueryPanel extends core.Widget {
8024
8031
  }
8025
8032
  render() {
8026
8033
  try {
8027
- this.entitiesMenu = this.createEntitiesMenu();
8034
+ this.checkEntitiesMenu();
8028
8035
  this.createConditionMenus();
8029
8036
  this.createLinkTypeMenu();
8030
8037
  this.rootContainer = ui.domel('div', this.slot)
@@ -8184,9 +8191,14 @@ class QueryPanel extends core.Widget {
8184
8191
  core$1.utils.assign(options, this.options.menuOptions);
8185
8192
  return new PopupMenu(options);
8186
8193
  }
8194
+ checkEntitiesMenu() {
8195
+ if (!this.entitiesMenu) {
8196
+ this.entitiesMenu = this.createEntitiesMenu();
8197
+ }
8198
+ }
8187
8199
  showEntitiesMenu(options) {
8200
+ this.checkEntitiesMenu();
8188
8201
  this.entitiesMenu.showMenu(Object.assign({}, this.options.menuOptions, options));
8189
- // this.entitiesMenu.showMenu(options);
8190
8202
  }
8191
8203
  createConditionMenus() {
8192
8204
  //ConditionMenu
@@ -8484,7 +8496,6 @@ class FilterBar extends core.Widget {
8484
8496
  .text(core$1.i18n.getText('StrNoFilterClickToAdd'))
8485
8497
  .hide()
8486
8498
  .on('click', () => {
8487
- console.log("condition filter click");
8488
8499
  this.queryPanel.showEntitiesMenu({
8489
8500
  anchor: this.headerLinkElement,
8490
8501
  selectedIds: null,
@@ -8565,8 +8576,8 @@ class FilterBar extends core.Widget {
8565
8576
  }
8566
8577
  }
8567
8578
  textResize() {
8568
- this.headerTextBlock.style.width = (this.slot.clientWidth - this.headerIconElement.offsetWidth
8569
- - (ui.domel(this.headerArrowBlock).isVisible() ? this.headerArrowBlock.offsetWidth : 0)) + "px";
8579
+ // this.headerTextBlock.style.width = (this.slot.clientWidth - this.headerIconElement.offsetWidth
8580
+ // - (domel(this.headerArrowBlock).isVisible() ? this.headerArrowBlock.offsetWidth : 0)) + "px";
8570
8581
  }
8571
8582
  destroyCore() {
8572
8583
  if (this.queryPanel)
@@ -13236,6 +13247,14 @@ class AdvancedSearchView extends View {
13236
13247
  }
13237
13248
  });
13238
13249
  }
13250
+ applyQueryNamePattern(input) {
13251
+ const allowedPattern = /[a-zA-Z0-9\s_\[\]()\@\$\#\&\-\.]/;
13252
+ input.addEventListener('keydown', (e) => {
13253
+ if (e.key.length === 1 && !allowedPattern.test(e.key) && !['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Enter'].includes(e.key)) {
13254
+ e.preventDefault();
13255
+ }
13256
+ });
13257
+ }
13239
13258
  // ------------------ Dialog wrappers ---------------------
13240
13259
  showNewQueryDialog(callback) {
13241
13260
  const ds = this.context.getServices().getService('DialogService');
@@ -13250,6 +13269,7 @@ class AdvancedSearchView extends View {
13250
13269
  arrangeParents: false,
13251
13270
  beforeOpen: () => {
13252
13271
  const input = document.getElementById(`kdlg-dialog-form-input`);
13272
+ this.applyQueryNamePattern(input);
13253
13273
  if (defVal) {
13254
13274
  input.value = defVal;
13255
13275
  }
@@ -13308,6 +13328,7 @@ class AdvancedSearchView extends View {
13308
13328
  arrangeParents: false,
13309
13329
  beforeOpen: () => {
13310
13330
  const input = document.getElementById(`kdlg-dialog-form-input`);
13331
+ this.applyQueryNamePattern(input);
13311
13332
  input.value = newQueryName;
13312
13333
  const content = document.getElementById('kdlg-dialog-form-content');
13313
13334
  content.innerHTML = core$1.i18n.getText('SaveQueryContent');
@@ -13352,6 +13373,10 @@ class AdvancedSearchView extends View {
13352
13373
  const dlg = ds.open({
13353
13374
  title: core$1.i18n.getText('SaveQueryToFileDlgTitle'),
13354
13375
  body: body,
13376
+ beforeOpen: () => {
13377
+ const fileNameInput = body.querySelector('#kdlgFileNameInput');
13378
+ this.applyQueryNamePattern(fileNameInput);
13379
+ },
13355
13380
  onSubmit: () => {
13356
13381
  const fileNameInput = body.querySelector('#kdlgFileNameInput');
13357
13382
  const fileName = fileNameInput ? fileNameInput.value : "Query";
@@ -13836,6 +13861,14 @@ class ReportView extends View {
13836
13861
  this.reportListSlot = document.getElementById('ReportList');
13837
13862
  this.resultCountSlot = this.resolveElement(resultCountSpan);
13838
13863
  }
13864
+ applyReportNamePattern(input) {
13865
+ const allowedPattern = /[a-zA-Z0-9\s_\[\]()\@\$\#\&\-\.]/;
13866
+ input.addEventListener('keydown', (e) => {
13867
+ if (e.key.length === 1 && !allowedPattern.test(e.key) && !['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Enter'].includes(e.key)) {
13868
+ e.preventDefault();
13869
+ }
13870
+ });
13871
+ }
13839
13872
  /**
13840
13873
  * Creates a new report.
13841
13874
  */
@@ -13851,6 +13884,7 @@ class ReportView extends View {
13851
13884
  arrangeParents: false,
13852
13885
  beforeOpen: () => {
13853
13886
  const nameInput = document.getElementById(`kdlg-dialog-form-input`);
13887
+ this.applyReportNamePattern(nameInput);
13854
13888
  nameInput.value = core$1.i18n.getText('NewReportDefName');
13855
13889
  const nameLabel = document.getElementById('kdlg-dialog-form-name-label');
13856
13890
  nameLabel.innerHTML = core$1.i18n.getText('SaveReportDlgLabel');
@@ -13948,6 +13982,7 @@ class ReportView extends View {
13948
13982
  arrangeParents: false,
13949
13983
  beforeOpen: () => {
13950
13984
  const input = document.getElementById(`kdlg-dialog-form-input`);
13985
+ this.applyReportNamePattern(input);
13951
13986
  input.value = query.getName();
13952
13987
  const content = document.getElementById('kdlg-dialog-form-name-label');
13953
13988
  content.innerHTML = core$1.i18n.getText('SaveReportDlgLabel');
@@ -1,6 +1,6 @@
1
1
  import { utils, i18n, DataType, EasyDataTable, AggregationSettings } from '@easydata/core';
2
2
  import { Widget, WidgetGroup, QueryChangePart, QueryChangeAction, ExprTag, SortDirection, i18n as i18n$1, equtils, eqconsts, ConditionPart, DataKind, Query, Expression, CondTag, EqEditorTag, EqValueEditor, EqServiceProvider, createEqContext } from '@easyquery/core';
3
- import { browserUtils, eqDragManager, getElementAbsolutePos, getScrollPos, getWinSize, getViewportSize, domel, DropEffect, createBrowserEvent, DomElementBuilder, DefaultDateTimePicker, slideDown, slideUp, EasyGrid, addCssClass, hideElement, showElement, isVisible, toggleVisibility, addElement, DefaultDialogService } from '@easydata/ui';
3
+ import { browserUtils, eqDragManager, getElementAbsolutePos, getScrollPos, getWinSize, getViewportSize, domel, DropEffect, createBrowserEvent, DomElementBuilder, DefaultDateTimePicker, dateLikeToDate, slideDown, slideUp, EasyGrid, addCssClass, hideElement, showElement, isVisible, toggleVisibility, addElement, DefaultDialogService } from '@easydata/ui';
4
4
 
5
5
  function findHighestZIndex(elem) {
6
6
  let highest = 0;
@@ -2820,7 +2820,6 @@ class AttrColumnRendererCP extends ColumnRendererCP {
2820
2820
  .title(attrCaption)
2821
2821
  .text(attrCaption) //TO DO:add localization
2822
2822
  .on('click', (ev) => {
2823
- console.log("columns expression click");
2824
2823
  ev.stopPropagation();
2825
2824
  this.activate();
2826
2825
  this.panel.showEntitiesMenu({
@@ -3503,7 +3502,6 @@ class ColumnsPanel extends Widget {
3503
3502
  .attr('href', 'javascript:void(0)')
3504
3503
  .text(i18n.getText('CmdClickToAddColumn'))
3505
3504
  .on('click', (e) => {
3506
- console.log("Add new column");
3507
3505
  e.preventDefault();
3508
3506
  this.showEntitiesMenu({
3509
3507
  anchor: e.target,
@@ -7389,6 +7387,9 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
7389
7387
  showTimePicker: this.expression.dataType !== DataType.Date,
7390
7388
  oneClickDateSelection: this.panel.options.oneClickDateSelection,
7391
7389
  showDateTimeInput: this.panel.options.showDateTimeInput,
7390
+ minDate: this.panel.options.minDate,
7391
+ maxDate: this.panel.options.maxDate,
7392
+ defaultDate: this.panel.options.defaultDate,
7392
7393
  onApply: (dateTime) => {
7393
7394
  const value = this.convertToInternalFormat(dateTime);
7394
7395
  this.setValue(value);
@@ -7410,17 +7411,20 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
7410
7411
  : new DefaultDateTimePicker(pickerOptions);
7411
7412
  const model = this.expression.getModel();
7412
7413
  const value = this.expression.value;
7413
- let dateTime = new Date();
7414
+ let dt;
7414
7415
  if (this.expression.dataType != DataType.Time && model.isDateMacro(value)) {
7415
- dateTime = model.getDateMacroValue(value);
7416
+ dt = model.getDateMacroValue(value);
7416
7417
  }
7417
7418
  else if (this.expression.dataType == DataType.Time && model.isTimeMacro(value)) {
7418
- dateTime = model.getTimeMacroValue(value);
7419
+ dt = model.getTimeMacroValue(value);
7419
7420
  }
7420
7421
  else {
7421
- dateTime = this.convertFromInternalFormat(value, new Date());
7422
+ const defaultDate = this.panel.options.defaultDate
7423
+ ? dateLikeToDate(this.panel.options.defaultDate)
7424
+ : new Date();
7425
+ dt = this.convertFromInternalFormat(value, defaultDate);
7422
7426
  }
7423
- this.dtp.setDateTime(dateTime);
7427
+ this.dtp.setDateTime(dt);
7424
7428
  this.dtp.show(this.element);
7425
7429
  }
7426
7430
  closeEditor() {
@@ -7449,6 +7453,8 @@ class DateTimeExpressionRenderer extends ExpressionRenderer {
7449
7453
  && ((this.panel.options.editableParts & QPEditablePart.Value) === QPEditablePart.Value);
7450
7454
  }
7451
7455
  convertFromInternalFormat(dateTimeStr, defautValue) {
7456
+ if (!dateTimeStr)
7457
+ return defautValue || new Date();
7452
7458
  try {
7453
7459
  return utils.strToDateTime(dateTimeStr, this.internalDateFormat + ' ' + this.internalTimeFormat);
7454
7460
  }
@@ -7836,6 +7842,7 @@ class QueryPanel extends Widget {
7836
7842
  this.slot.innerHTML = '';
7837
7843
  }
7838
7844
  getEntitiesMenu() {
7845
+ this.checkEntitiesMenu();
7839
7846
  return this.entitiesMenu;
7840
7847
  }
7841
7848
  getConditionMenu() {
@@ -8022,7 +8029,7 @@ class QueryPanel extends Widget {
8022
8029
  }
8023
8030
  render() {
8024
8031
  try {
8025
- this.entitiesMenu = this.createEntitiesMenu();
8032
+ this.checkEntitiesMenu();
8026
8033
  this.createConditionMenus();
8027
8034
  this.createLinkTypeMenu();
8028
8035
  this.rootContainer = domel('div', this.slot)
@@ -8182,9 +8189,14 @@ class QueryPanel extends Widget {
8182
8189
  utils.assign(options, this.options.menuOptions);
8183
8190
  return new PopupMenu(options);
8184
8191
  }
8192
+ checkEntitiesMenu() {
8193
+ if (!this.entitiesMenu) {
8194
+ this.entitiesMenu = this.createEntitiesMenu();
8195
+ }
8196
+ }
8185
8197
  showEntitiesMenu(options) {
8198
+ this.checkEntitiesMenu();
8186
8199
  this.entitiesMenu.showMenu(Object.assign({}, this.options.menuOptions, options));
8187
- // this.entitiesMenu.showMenu(options);
8188
8200
  }
8189
8201
  createConditionMenus() {
8190
8202
  //ConditionMenu
@@ -8482,7 +8494,6 @@ class FilterBar extends Widget {
8482
8494
  .text(i18n.getText('StrNoFilterClickToAdd'))
8483
8495
  .hide()
8484
8496
  .on('click', () => {
8485
- console.log("condition filter click");
8486
8497
  this.queryPanel.showEntitiesMenu({
8487
8498
  anchor: this.headerLinkElement,
8488
8499
  selectedIds: null,
@@ -8563,8 +8574,8 @@ class FilterBar extends Widget {
8563
8574
  }
8564
8575
  }
8565
8576
  textResize() {
8566
- this.headerTextBlock.style.width = (this.slot.clientWidth - this.headerIconElement.offsetWidth
8567
- - (domel(this.headerArrowBlock).isVisible() ? this.headerArrowBlock.offsetWidth : 0)) + "px";
8577
+ // this.headerTextBlock.style.width = (this.slot.clientWidth - this.headerIconElement.offsetWidth
8578
+ // - (domel(this.headerArrowBlock).isVisible() ? this.headerArrowBlock.offsetWidth : 0)) + "px";
8568
8579
  }
8569
8580
  destroyCore() {
8570
8581
  if (this.queryPanel)
@@ -13234,6 +13245,14 @@ class AdvancedSearchView extends View {
13234
13245
  }
13235
13246
  });
13236
13247
  }
13248
+ applyQueryNamePattern(input) {
13249
+ const allowedPattern = /[a-zA-Z0-9\s_\[\]()\@\$\#\&\-\.]/;
13250
+ input.addEventListener('keydown', (e) => {
13251
+ if (e.key.length === 1 && !allowedPattern.test(e.key) && !['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Enter'].includes(e.key)) {
13252
+ e.preventDefault();
13253
+ }
13254
+ });
13255
+ }
13237
13256
  // ------------------ Dialog wrappers ---------------------
13238
13257
  showNewQueryDialog(callback) {
13239
13258
  const ds = this.context.getServices().getService('DialogService');
@@ -13248,6 +13267,7 @@ class AdvancedSearchView extends View {
13248
13267
  arrangeParents: false,
13249
13268
  beforeOpen: () => {
13250
13269
  const input = document.getElementById(`kdlg-dialog-form-input`);
13270
+ this.applyQueryNamePattern(input);
13251
13271
  if (defVal) {
13252
13272
  input.value = defVal;
13253
13273
  }
@@ -13306,6 +13326,7 @@ class AdvancedSearchView extends View {
13306
13326
  arrangeParents: false,
13307
13327
  beforeOpen: () => {
13308
13328
  const input = document.getElementById(`kdlg-dialog-form-input`);
13329
+ this.applyQueryNamePattern(input);
13309
13330
  input.value = newQueryName;
13310
13331
  const content = document.getElementById('kdlg-dialog-form-content');
13311
13332
  content.innerHTML = i18n.getText('SaveQueryContent');
@@ -13350,6 +13371,10 @@ class AdvancedSearchView extends View {
13350
13371
  const dlg = ds.open({
13351
13372
  title: i18n.getText('SaveQueryToFileDlgTitle'),
13352
13373
  body: body,
13374
+ beforeOpen: () => {
13375
+ const fileNameInput = body.querySelector('#kdlgFileNameInput');
13376
+ this.applyQueryNamePattern(fileNameInput);
13377
+ },
13353
13378
  onSubmit: () => {
13354
13379
  const fileNameInput = body.querySelector('#kdlgFileNameInput');
13355
13380
  const fileName = fileNameInput ? fileNameInput.value : "Query";
@@ -13834,6 +13859,14 @@ class ReportView extends View {
13834
13859
  this.reportListSlot = document.getElementById('ReportList');
13835
13860
  this.resultCountSlot = this.resolveElement(resultCountSpan);
13836
13861
  }
13862
+ applyReportNamePattern(input) {
13863
+ const allowedPattern = /[a-zA-Z0-9\s_\[\]()\@\$\#\&\-\.]/;
13864
+ input.addEventListener('keydown', (e) => {
13865
+ if (e.key.length === 1 && !allowedPattern.test(e.key) && !['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Enter'].includes(e.key)) {
13866
+ e.preventDefault();
13867
+ }
13868
+ });
13869
+ }
13837
13870
  /**
13838
13871
  * Creates a new report.
13839
13872
  */
@@ -13849,6 +13882,7 @@ class ReportView extends View {
13849
13882
  arrangeParents: false,
13850
13883
  beforeOpen: () => {
13851
13884
  const nameInput = document.getElementById(`kdlg-dialog-form-input`);
13885
+ this.applyReportNamePattern(nameInput);
13852
13886
  nameInput.value = i18n.getText('NewReportDefName');
13853
13887
  const nameLabel = document.getElementById('kdlg-dialog-form-name-label');
13854
13888
  nameLabel.innerHTML = i18n.getText('SaveReportDlgLabel');
@@ -13946,6 +13980,7 @@ class ReportView extends View {
13946
13980
  arrangeParents: false,
13947
13981
  beforeOpen: () => {
13948
13982
  const input = document.getElementById(`kdlg-dialog-form-input`);
13983
+ this.applyReportNamePattern(input);
13949
13984
  input.value = query.getName();
13950
13985
  const content = document.getElementById('kdlg-dialog-form-name-label');
13951
13986
  content.innerHTML = i18n.getText('SaveReportDlgLabel');
@@ -6,7 +6,7 @@ export declare class ChartFacet extends ResultFacet {
6
6
  protected chart: ChartWidget;
7
7
  title: string;
8
8
  protected settings: any;
9
- protected dialogTitle: string;
9
+ protected dialogTitle: any;
10
10
  init(slot: HTMLElement): void;
11
11
  destroy(): void;
12
12
  getType(): FacetType;
@@ -4,7 +4,7 @@ import { FacetType } from '../types/facet_type';
4
4
  export declare class DataTableFacet extends ResultFacet {
5
5
  protected grid: Widget;
6
6
  title: string;
7
- protected dialogTitle: string;
7
+ protected dialogTitle: any;
8
8
  init(slot: HTMLElement): void;
9
9
  getSettings(): any;
10
10
  protected reinitGrid(): void;
@@ -21,7 +21,7 @@ interface CrossTabOptions {
21
21
  export declare class PivotTableFacet extends ResultFacet {
22
22
  protected grid: EasyGrid;
23
23
  title: string;
24
- protected dialogTitle: string;
24
+ protected dialogTitle: any;
25
25
  protected pivotTable: EasyDataTable;
26
26
  protected settings: CrossTabOptions;
27
27
  init(slot: HTMLElement): void;
@@ -10,7 +10,7 @@ export declare abstract class ResultFacet {
10
10
  private displayMessageDiv;
11
11
  title: string;
12
12
  protected cssPrefix: string;
13
- protected dialogTitle: string;
13
+ protected dialogTitle: any;
14
14
  protected options: any;
15
15
  protected canDisplayFlag: boolean;
16
16
  constructor(container: FacetContainer, options?: any);
@@ -72,6 +72,7 @@ export declare class AdvancedSearchView extends View {
72
72
  checkIfQueryModified(callback: any): void;
73
73
  protected removeCurrentQuery(): void;
74
74
  private _querySaveTemplate;
75
+ private applyQueryNamePattern;
75
76
  protected showNewQueryDialog(callback: (result: string) => Promise<DlgCallbackResult>): void;
76
77
  protected showQueryClearDialog(callback: (result: boolean) => void): void;
77
78
  protected showQueryChangedDialog(callback: (result: boolean) => void): void;
@@ -47,6 +47,7 @@ export declare class ReportView extends View {
47
47
  protected initDone(): void;
48
48
  protected createWidgets(options?: ReportViewOptions): void;
49
49
  private _reportSaveTemplate;
50
+ private applyReportNamePattern;
50
51
  /**
51
52
  * Creates a new report.
52
53
  */
@@ -51,11 +51,11 @@ export declare class ColumnsPanel extends Widget {
51
51
  private createEntitiesMenu;
52
52
  getSortMenuList(): {
53
53
  id: string;
54
- text: string;
54
+ text: any;
55
55
  }[];
56
56
  getMoveMenuList(): {
57
57
  id: string;
58
- text: string;
58
+ text: any;
59
59
  }[];
60
60
  private createSortMenu;
61
61
  private createMoveMenu;
@@ -63,6 +63,7 @@ export declare class QueryPanel extends Widget {
63
63
  getOperatorRenderer(condition: Condition, text: string, slot?: HTMLDivElement): BaseElementRenderer | null;
64
64
  getAddRowRenderer(slot?: HTMLDivElement): BaseElementRenderer | null;
65
65
  private createEntitiesMenu;
66
+ protected checkEntitiesMenu(): void;
66
67
  showEntitiesMenu(options: PopupMenuOptions): void;
67
68
  private createConditionMenus;
68
69
  private createLinkTypeMenu;
@@ -1,6 +1,6 @@
1
1
  import { Query, Condition, Expression, Widget, EqValueEditor } from '@easyquery/core';
2
2
  import { EasyDataTable } from '@easydata/core';
3
- import { DateTimePicker, DateTimePickerOptions } from '@easydata/ui';
3
+ import { DateTimePicker, DateTimePickerOptions, DateLike } from '@easydata/ui';
4
4
  import { ConditionRenderer } from './renderers/querypanel/condition_renderer';
5
5
  import { ExpressionRenderer } from './renderers/querypanel/expression_renderer';
6
6
  import { BaseElementRenderer } from './renderers/base_element_renderer';
@@ -382,6 +382,9 @@ export interface QueryPanelOptions {
382
382
  dateTimePickerResolver?: (options: DateTimePickerOptions) => DateTimePicker;
383
383
  /** Gets or sets the edit mode option: Full, FixedList or ReadOnly */
384
384
  editMode?: ConditionsEditMode;
385
+ minDate?: DateLike;
386
+ maxDate?: DateLike;
387
+ defaultDate?: DateLike;
385
388
  }
386
389
  /**
387
390
  * Grid options type.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyquery/ui",
3
- "version": "7.4.1-rc02",
3
+ "version": "7.4.1-rc04",
4
4
  "description": "EasyQuery.JS Community UI widgets",
5
5
  "types": "./dist/types/public_api.d.ts",
6
6
  "main": "./dist/easyquery.ui.cjs.js",
@@ -30,7 +30,7 @@
30
30
  "bugs": "https://korzh.com/support",
31
31
  "license": "LGPL-3.0",
32
32
  "peerDependencies": {
33
- "@easyquery/core": "^7.4.1-rc02"
33
+ "@easyquery/core": "^7.4.1-rc04"
34
34
  },
35
35
  "files": [
36
36
  "dist",