raise-common-lib 0.0.248 → 0.0.249

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 (62) hide show
  1. package/README.md +57 -57
  2. package/bundles/raise-common-lib.umd.js +1937 -12
  3. package/bundles/raise-common-lib.umd.js.map +1 -1
  4. package/bundles/raise-common-lib.umd.min.js +1 -1
  5. package/bundles/raise-common-lib.umd.min.js.map +1 -1
  6. package/esm2015/lib/common-grid/index.component.js +210 -8
  7. package/esm2015/lib/date-tree-filter/date-tree-filter-popover/index.component.js +761 -0
  8. package/esm2015/lib/date-tree-filter/date-tree-filter.helper.js +679 -0
  9. package/esm2015/lib/raise-common-lib.module.js +4 -1
  10. package/esm2015/public-api.js +3 -1
  11. package/esm2015/raise-common-lib.js +2 -2
  12. package/esm5/lib/common-grid/index.component.js +244 -8
  13. package/esm5/lib/date-tree-filter/date-tree-filter-popover/index.component.js +902 -0
  14. package/esm5/lib/date-tree-filter/date-tree-filter.helper.js +787 -0
  15. package/esm5/lib/raise-common-lib.module.js +4 -1
  16. package/esm5/public-api.js +3 -1
  17. package/esm5/raise-common-lib.js +2 -2
  18. package/fesm2015/raise-common-lib.js +1649 -9
  19. package/fesm2015/raise-common-lib.js.map +1 -1
  20. package/fesm5/raise-common-lib.js +1931 -10
  21. package/fesm5/raise-common-lib.js.map +1 -1
  22. package/lib/common-grid/index.component.d.ts +30 -1
  23. package/lib/date-tree-filter/date-tree-filter-popover/index.component.d.ts +46 -0
  24. package/lib/date-tree-filter/date-tree-filter.helper.d.ts +54 -0
  25. package/package.json +1 -1
  26. package/public-api.d.ts +2 -0
  27. package/raise-common-lib.metadata.json +1 -1
  28. package/src/assets/img/arrow_right.svg +4 -4
  29. package/src/assets/img/calendar-disabled.svg +6 -6
  30. package/src/assets/img/calendar.svg +6 -6
  31. package/src/assets/img/calendar_arrow_left.svg +3 -3
  32. package/src/assets/img/calendar_arrow_right.svg +3 -3
  33. package/src/assets/img/checked-vector.svg +3 -3
  34. package/src/assets/img/dialog-close.svg +4 -4
  35. package/src/assets/img/dialog-grow.svg +6 -6
  36. package/src/assets/img/dialog-shrink.svg +6 -6
  37. package/src/assets/img/plus.svg +4 -4
  38. package/src/assets/img/raise_logo_main_new.svg +27 -27
  39. package/src/assets/img/search.svg +4 -4
  40. package/src/assets/img/shrink-icon.svg +6 -6
  41. package/src/assets/img/time-disabled.svg +4 -4
  42. package/src/assets/img/time.svg +4 -4
  43. package/src/assets/img/toolbar-action-addFolder.svg +17 -17
  44. package/src/assets/img/toolbar-action-calculator.svg +11 -11
  45. package/src/assets/img/toolbar-action-collapse.svg +7 -7
  46. package/src/assets/img/toolbar-action-combine.svg +4 -4
  47. package/src/assets/img/toolbar-action-edit.svg +4 -4
  48. package/src/assets/img/toolbar-action-expand.svg +7 -7
  49. package/src/assets/img/toolbar-action-folderMove.svg +8 -8
  50. package/src/assets/img/toolbar-action-lock.svg +6 -6
  51. package/src/assets/img/toolbar-action-preview.svg +7 -7
  52. package/src/assets/img/toolbar-action-publish.svg +5 -5
  53. package/src/assets/img/toolbar-action-reminders.svg +10 -10
  54. package/src/assets/img/toolbar-action-rename.svg +7 -7
  55. package/src/assets/img/toolbar-action-saveSequence.svg +5 -5
  56. package/src/assets/img/toolbar-action-send-file.svg +5 -5
  57. package/src/assets/img/toolbar-action-settle.svg +7 -7
  58. package/src/assets/img/toolbar-action-share.svg +5 -5
  59. package/src/assets/img/toolbar-action-submitForApproval.svg +4 -4
  60. package/src/assets/img/toolbar-action-sync.svg +4 -4
  61. package/src/assets/img/toolbar-action-template.svg +6 -6
  62. package/src/assets/img/toolbar-action-workflow.svg +9 -9
@@ -1,7 +1,8 @@
1
1
  import { __assign, __awaiter, __generator, __decorate, __metadata, __spread, __read, __values } from 'tslib';
2
- import { EventEmitter, Component, ChangeDetectorRef, ViewChild, Input, Output, HostBinding, Injectable, ɵɵdefineInjectable, Inject, ɵɵinject, ContentChild, HostListener, ComponentFactoryResolver, ViewContainerRef, ViewChildren, ElementRef, InjectionToken, Optional, ChangeDetectionStrategy, ViewEncapsulation, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2
+ import { EventEmitter, Component, ChangeDetectorRef, ViewChild, Input, Output, ElementRef, HostListener, HostBinding, Injectable, ɵɵdefineInjectable, Inject, ɵɵinject, ContentChild, ComponentFactoryResolver, ViewContainerRef, ViewChildren, InjectionToken, Optional, ChangeDetectionStrategy, ViewEncapsulation, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
3
  import { GridComponent, ExcelExportService, ColumnChooserService, VirtualScrollService, FilterService, ResizeService, GridModule, PagerModule, GridAllModule, PageService, RowDDService, SortService, EditService, ToolbarService as ToolbarService$1, AggregateService, ColumnMenuService, DetailRowService, SelectionService, GroupService } from '@syncfusion/ej2-angular-grids';
4
4
  import { times, debounce as debounce$1, forEach, throttle, find, cloneDeep, startsWith, filter as filter$1, meanBy, sumBy, minBy, maxBy, sortBy, uniqBy, differenceWith, mean } from 'lodash';
5
+ import moment from 'moment';
5
6
  import { Subject, BehaviorSubject, Observable } from 'rxjs';
6
7
  import { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar';
7
8
  import { MAT_DIALOG_DATA, MatDialogRef, MatDialog, MatDialogModule } from '@angular/material/dialog';
@@ -14,7 +15,6 @@ import { HttpClient, HttpHeaders, HttpClientModule } from '@angular/common/http'
14
15
  import { setCulture, L10n, addClass, enableRipple, Browser, createElement } from '@syncfusion/ej2-base';
15
16
  import ResizeObserver from 'resize-observer-polyfill';
16
17
  import { Query, DataUtil } from '@syncfusion/ej2-data';
17
- import moment from 'moment';
18
18
  import CircularJSON from 'circular-json';
19
19
  import { MAT_DATE_FORMATS } from '@angular/material/core';
20
20
  import { DashboardLayoutModule } from '@syncfusion/ej2-angular-layouts';
@@ -77,6 +77,791 @@ function getTranslation() {
77
77
  return {};
78
78
  }
79
79
 
80
+ /**
81
+ * @fileoverview added by tsickle
82
+ * Generated from: lib/date-tree-filter/date-tree-filter.helper.ts
83
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
84
+ */
85
+ /**
86
+ * @record
87
+ */
88
+ function DateTreeFilterSetupOptions() { }
89
+ if (false) {
90
+ /** @type {?} */
91
+ DateTreeFilterSetupOptions.prototype.rows;
92
+ /** @type {?} */
93
+ DateTreeFilterSetupOptions.prototype.fields;
94
+ /** @type {?} */
95
+ DateTreeFilterSetupOptions.prototype.hints;
96
+ }
97
+ /**
98
+ * @record
99
+ */
100
+ function DateTreeFilterHelperOptions() { }
101
+ if (false) {
102
+ /** @type {?} */
103
+ DateTreeFilterHelperOptions.prototype.getTranslation;
104
+ /** @type {?} */
105
+ DateTreeFilterHelperOptions.prototype.getPopoverElement;
106
+ /** @type {?} */
107
+ DateTreeFilterHelperOptions.prototype.getGridElement;
108
+ /** @type {?} */
109
+ DateTreeFilterHelperOptions.prototype.applyRows;
110
+ /** @type {?|undefined} */
111
+ DateTreeFilterHelperOptions.prototype.parseDateValue;
112
+ /** @type {?|undefined} */
113
+ DateTreeFilterHelperOptions.prototype.dateFormats;
114
+ }
115
+ /**
116
+ * @record
117
+ */
118
+ function RsCommonGridDateTreeFactoryHost() { }
119
+ if (false) {
120
+ /** @type {?} */
121
+ RsCommonGridDateTreeFactoryHost.prototype.translation;
122
+ /** @type {?} */
123
+ RsCommonGridDateTreeFactoryHost.prototype.dateTreePopoverRef;
124
+ /** @type {?} */
125
+ RsCommonGridDateTreeFactoryHost.prototype.grid;
126
+ }
127
+ /** @type {?} */
128
+ var DATE_TREE_DEFAULT_DATE_FORMATS = [
129
+ "YYYY-MM-DD",
130
+ "MM/DD/YYYY",
131
+ "DD/MM/YYYY",
132
+ "YYYY/MM/DD",
133
+ "DD-MMM-YYYY",
134
+ "MMM DD, YYYY",
135
+ ];
136
+ var DateTreeFilterHelper = /** @class */ (function () {
137
+ function DateTreeFilterHelper(options) {
138
+ this.popoverVisible = false;
139
+ this.popoverField = "";
140
+ this.popoverStyle = {};
141
+ this.selectedByField = {};
142
+ this.fieldLabelMap = {};
143
+ this.dateFields = [];
144
+ this.sourceRows = [];
145
+ this.defaultDateFormats = [
146
+ "YYYY-MM-DD",
147
+ "MM/DD/YYYY",
148
+ "DD/MM/YYYY",
149
+ "YYYY/MM/DD",
150
+ "DD-MMM-YYYY",
151
+ "DD-MMM-YYYY hh:mm A",
152
+ "MMM DD, YYYY",
153
+ moment.ISO_8601,
154
+ ];
155
+ this.options = options;
156
+ }
157
+ /**
158
+ * @param {?} config
159
+ * @return {?}
160
+ */
161
+ DateTreeFilterHelper.prototype.setup = /**
162
+ * @param {?} config
163
+ * @return {?}
164
+ */
165
+ function (config) {
166
+ var _this = this;
167
+ /** @type {?} */
168
+ var rows = config && config.rows ? config.rows : [];
169
+ /** @type {?} */
170
+ var fields = config && config.fields ? config.fields : [];
171
+ /** @type {?} */
172
+ var hints = config && config.hints ? config.hints : [];
173
+ this.sourceRows = rows;
174
+ this.dateFields = this.resolveDateTreeFieldsByHints(fields, hints);
175
+ this.fieldLabelMap = {};
176
+ (fields || []).forEach((/**
177
+ * @param {?} item
178
+ * @return {?}
179
+ */
180
+ function (item) {
181
+ if (!item || !item.columnName) {
182
+ return;
183
+ }
184
+ _this.fieldLabelMap[item.columnName] =
185
+ item.columnDisplayName || item.columnName;
186
+ }));
187
+ this.apply();
188
+ };
189
+ /**
190
+ * @param {?} args
191
+ * @return {?}
192
+ */
193
+ DateTreeFilterHelper.prototype.handleGridActionBegin = /**
194
+ * @param {?} args
195
+ * @return {?}
196
+ */
197
+ function (args) {
198
+ /** @type {?} */
199
+ var requestType = this.getRequestType(args);
200
+ if (requestType === "filterchoicerequest" ||
201
+ requestType === "filtersearchbegin") {
202
+ args.filterChoiceCount = 15000;
203
+ }
204
+ if (requestType !== "filterbeforeopen") {
205
+ return;
206
+ }
207
+ /** @type {?} */
208
+ var columnName = this.resolveActionColumnName(args);
209
+ if (!this.isDateTreeField(columnName)) {
210
+ this.close();
211
+ return;
212
+ }
213
+ args.cancel = true;
214
+ this.open(columnName);
215
+ };
216
+ /**
217
+ * @param {?} selectionMap
218
+ * @return {?}
219
+ */
220
+ DateTreeFilterHelper.prototype.updateSelection = /**
221
+ * @param {?} selectionMap
222
+ * @return {?}
223
+ */
224
+ function (selectionMap) {
225
+ this.selectedByField = selectionMap || {};
226
+ this.apply();
227
+ };
228
+ /**
229
+ * @return {?}
230
+ */
231
+ DateTreeFilterHelper.prototype.close = /**
232
+ * @return {?}
233
+ */
234
+ function () {
235
+ if (!this.popoverVisible) {
236
+ return;
237
+ }
238
+ this.popoverVisible = false;
239
+ this.popoverField = "";
240
+ this.popoverStyle = {};
241
+ };
242
+ /**
243
+ * @param {?} event
244
+ * @return {?}
245
+ */
246
+ DateTreeFilterHelper.prototype.handleDocumentMouseDown = /**
247
+ * @param {?} event
248
+ * @return {?}
249
+ */
250
+ function (event) {
251
+ if (!this.popoverVisible) {
252
+ return;
253
+ }
254
+ /** @type {?} */
255
+ var target = (/** @type {?} */ (event.target));
256
+ if (!target) {
257
+ return;
258
+ }
259
+ if (this.isInsidePopover(target) || this.isDateFilterMenuItem(target)) {
260
+ return;
261
+ }
262
+ this.close();
263
+ };
264
+ /**
265
+ * @param {?} event
266
+ * @return {?}
267
+ */
268
+ DateTreeFilterHelper.prototype.handleDocumentMouseOver = /**
269
+ * @param {?} event
270
+ * @return {?}
271
+ */
272
+ function (event) {
273
+ if (!this.popoverVisible) {
274
+ return;
275
+ }
276
+ /** @type {?} */
277
+ var target = (/** @type {?} */ (event.target));
278
+ if (!target) {
279
+ return;
280
+ }
281
+ if (this.isInsidePopover(target)) {
282
+ return;
283
+ }
284
+ /** @type {?} */
285
+ var menuItem = (/** @type {?} */ (target.closest(".e-menu-item")));
286
+ if (menuItem) {
287
+ if (!this.isDateFilterMenuItem(menuItem)) {
288
+ this.close();
289
+ }
290
+ return;
291
+ }
292
+ /** @type {?} */
293
+ var otherFilterTarget = (/** @type {?} */ (target.closest(".e-filtermenudiv, .e-headercell .e-columnmenu, .e-columnmenu, .e-contextmenu")));
294
+ if (otherFilterTarget && !this.isDateFilterMenuItem(otherFilterTarget)) {
295
+ this.close();
296
+ }
297
+ };
298
+ /**
299
+ * @return {?}
300
+ */
301
+ DateTreeFilterHelper.prototype.updatePosition = /**
302
+ * @return {?}
303
+ */
304
+ function () {
305
+ if (!this.popoverVisible) {
306
+ return;
307
+ }
308
+ /** @type {?} */
309
+ var anchor = this.findDateFilterAnchorElement();
310
+ if (anchor) {
311
+ /** @type {?} */
312
+ var rect = anchor.getBoundingClientRect();
313
+ /** @type {?} */
314
+ var viewportWidth = window.innerWidth || document.documentElement.clientWidth;
315
+ /** @type {?} */
316
+ var viewportHeight = window.innerHeight || document.documentElement.clientHeight;
317
+ /** @type {?} */
318
+ var popoverElement = this.options.getPopoverElement
319
+ ? this.options.getPopoverElement()
320
+ : null;
321
+ /** @type {?} */
322
+ var popoverWidth = popoverElement && popoverElement.offsetWidth
323
+ ? popoverElement.offsetWidth
324
+ : 300;
325
+ /** @type {?} */
326
+ var popoverHeight = popoverElement && popoverElement.offsetHeight
327
+ ? popoverElement.offsetHeight
328
+ : 420;
329
+ /** @type {?} */
330
+ var edgeGap = 8;
331
+ /** @type {?} */
332
+ var anchorGap = 8;
333
+ /** @type {?} */
334
+ var top = rect.top - 6;
335
+ /** @type {?} */
336
+ var left = rect.right + anchorGap;
337
+ if (left + popoverWidth > viewportWidth - edgeGap) {
338
+ left = rect.left - popoverWidth - anchorGap;
339
+ }
340
+ if (left < edgeGap) {
341
+ left = edgeGap;
342
+ }
343
+ if (left + popoverWidth > viewportWidth - edgeGap) {
344
+ left = Math.max(edgeGap, viewportWidth - popoverWidth - edgeGap);
345
+ }
346
+ if (top + popoverHeight > viewportHeight - edgeGap) {
347
+ top = Math.max(edgeGap, viewportHeight - popoverHeight - edgeGap);
348
+ }
349
+ this.popoverStyle = {
350
+ position: "fixed",
351
+ left: left + "px",
352
+ top: top + "px",
353
+ };
354
+ return;
355
+ }
356
+ /** @type {?} */
357
+ var gridElement = this.options.getGridElement
358
+ ? this.options.getGridElement()
359
+ : null;
360
+ if (gridElement && gridElement.getBoundingClientRect) {
361
+ /** @type {?} */
362
+ var fallbackRect = gridElement.getBoundingClientRect();
363
+ this.popoverStyle = {
364
+ position: "fixed",
365
+ left: Math.max(8, fallbackRect.right - 312) + "px",
366
+ top: Math.max(8, fallbackRect.top + 8) + "px",
367
+ };
368
+ }
369
+ };
370
+ /**
371
+ * @private
372
+ * @param {?} field
373
+ * @return {?}
374
+ */
375
+ DateTreeFilterHelper.prototype.open = /**
376
+ * @private
377
+ * @param {?} field
378
+ * @return {?}
379
+ */
380
+ function (field) {
381
+ var _this = this;
382
+ this.popoverField = field;
383
+ this.popoverVisible = true;
384
+ this.updatePosition();
385
+ setTimeout((/**
386
+ * @return {?}
387
+ */
388
+ function () { return _this.updatePosition(); }), 50);
389
+ setTimeout((/**
390
+ * @return {?}
391
+ */
392
+ function () { return _this.updatePosition(); }), 150);
393
+ };
394
+ /**
395
+ * @private
396
+ * @return {?}
397
+ */
398
+ DateTreeFilterHelper.prototype.apply = /**
399
+ * @private
400
+ * @return {?}
401
+ */
402
+ function () {
403
+ /** @type {?} */
404
+ var filteredRows = this.filterRowsBySelectedDateTree(this.sourceRows || []);
405
+ this.options.applyRows(filteredRows);
406
+ };
407
+ /**
408
+ * @private
409
+ * @param {?} args
410
+ * @return {?}
411
+ */
412
+ DateTreeFilterHelper.prototype.getRequestType = /**
413
+ * @private
414
+ * @param {?} args
415
+ * @return {?}
416
+ */
417
+ function (args) {
418
+ if (!args || !args.requestType) {
419
+ return "";
420
+ }
421
+ return String(args.requestType).trim().toLowerCase();
422
+ };
423
+ /**
424
+ * @private
425
+ * @param {?} args
426
+ * @return {?}
427
+ */
428
+ DateTreeFilterHelper.prototype.resolveActionColumnName = /**
429
+ * @private
430
+ * @param {?} args
431
+ * @return {?}
432
+ */
433
+ function (args) {
434
+ if (!args) {
435
+ return "";
436
+ }
437
+ return (args.columnName ||
438
+ args.field ||
439
+ args.currentFilteringColumn ||
440
+ (args.column && (args.column.field || args.column.columnName)) ||
441
+ "");
442
+ };
443
+ /**
444
+ * @private
445
+ * @param {?} fields
446
+ * @param {?} hints
447
+ * @return {?}
448
+ */
449
+ DateTreeFilterHelper.prototype.resolveDateTreeFieldsByHints = /**
450
+ * @private
451
+ * @param {?} fields
452
+ * @param {?} hints
453
+ * @return {?}
454
+ */
455
+ function (fields, hints) {
456
+ /** @type {?} */
457
+ var normalizedHints = (hints || [])
458
+ .filter((/**
459
+ * @param {?} item
460
+ * @return {?}
461
+ */
462
+ function (item) { return !!item; }))
463
+ .map((/**
464
+ * @param {?} item
465
+ * @return {?}
466
+ */
467
+ function (item) { return String(item).trim().toLowerCase(); }));
468
+ if (!fields || !fields.length || !normalizedHints.length) {
469
+ return [];
470
+ }
471
+ return fields
472
+ .filter((/**
473
+ * @param {?} item
474
+ * @return {?}
475
+ */
476
+ function (item) {
477
+ if (!item || !item.columnName) {
478
+ return false;
479
+ }
480
+ /** @type {?} */
481
+ var columnName = String(item.columnName || "").toLowerCase();
482
+ /** @type {?} */
483
+ var displayName = String(item.columnDisplayName || "").toLowerCase();
484
+ return normalizedHints.some((/**
485
+ * @param {?} hint
486
+ * @return {?}
487
+ */
488
+ function (hint) {
489
+ return (columnName === hint ||
490
+ displayName === hint ||
491
+ (hint.length >= 3 &&
492
+ (columnName.indexOf(hint) > -1 ||
493
+ displayName.indexOf(hint) > -1)));
494
+ }));
495
+ }))
496
+ .map((/**
497
+ * @param {?} item
498
+ * @return {?}
499
+ */
500
+ function (item) { return item.columnName; }));
501
+ };
502
+ /**
503
+ * @private
504
+ * @param {?} field
505
+ * @return {?}
506
+ */
507
+ DateTreeFilterHelper.prototype.isDateTreeField = /**
508
+ * @private
509
+ * @param {?} field
510
+ * @return {?}
511
+ */
512
+ function (field) {
513
+ return this.dateFields.indexOf(field) > -1;
514
+ };
515
+ /**
516
+ * @private
517
+ * @param {?} field
518
+ * @return {?}
519
+ */
520
+ DateTreeFilterHelper.prototype.getFieldDaySelectionMap = /**
521
+ * @private
522
+ * @param {?} field
523
+ * @return {?}
524
+ */
525
+ function (field) {
526
+ if (!this.selectedByField[field]) {
527
+ this.selectedByField[field] = {};
528
+ }
529
+ return this.selectedByField[field];
530
+ };
531
+ /**
532
+ * @private
533
+ * @param {?} rows
534
+ * @param {?=} excludeField
535
+ * @return {?}
536
+ */
537
+ DateTreeFilterHelper.prototype.filterRowsBySelectedDateTree = /**
538
+ * @private
539
+ * @param {?} rows
540
+ * @param {?=} excludeField
541
+ * @return {?}
542
+ */
543
+ function (rows, excludeField) {
544
+ var _this = this;
545
+ /** @type {?} */
546
+ var filteredRows = rows ? rows.slice() : [];
547
+ this.dateFields.forEach((/**
548
+ * @param {?} field
549
+ * @return {?}
550
+ */
551
+ function (field) {
552
+ if (excludeField && field === excludeField) {
553
+ return;
554
+ }
555
+ /** @type {?} */
556
+ var selectedMap = _this.getFieldDaySelectionMap(field);
557
+ /** @type {?} */
558
+ var selectedKeys = Object.keys(selectedMap);
559
+ if (!selectedKeys.length) {
560
+ return;
561
+ }
562
+ filteredRows = filteredRows.filter((/**
563
+ * @param {?} row
564
+ * @return {?}
565
+ */
566
+ function (row) {
567
+ /** @type {?} */
568
+ var dayKey = _this.getDayKeyByRowValue(row[field]);
569
+ return dayKey ? !!selectedMap[dayKey] : false;
570
+ }));
571
+ }));
572
+ return filteredRows;
573
+ };
574
+ /**
575
+ * @private
576
+ * @param {?} value
577
+ * @return {?}
578
+ */
579
+ DateTreeFilterHelper.prototype.getDayKeyByRowValue = /**
580
+ * @private
581
+ * @param {?} value
582
+ * @return {?}
583
+ */
584
+ function (value) {
585
+ /** @type {?} */
586
+ var date = this.parseDateValue(value);
587
+ if (!date) {
588
+ return "";
589
+ }
590
+ return this.toDayKey(date.getFullYear(), date.getMonth() + 1, date.getDate());
591
+ };
592
+ /**
593
+ * @private
594
+ * @param {?} value
595
+ * @return {?}
596
+ */
597
+ DateTreeFilterHelper.prototype.parseDateValue = /**
598
+ * @private
599
+ * @param {?} value
600
+ * @return {?}
601
+ */
602
+ function (value) {
603
+ if (this.options.parseDateValue) {
604
+ return this.options.parseDateValue(value);
605
+ }
606
+ if (!value) {
607
+ return null;
608
+ }
609
+ if (value instanceof Date) {
610
+ return value;
611
+ }
612
+ /** @type {?} */
613
+ var formats = this.options && this.options.dateFormats && this.options.dateFormats.length
614
+ ? this.options.dateFormats
615
+ : this.defaultDateFormats;
616
+ /** @type {?} */
617
+ var parsed = moment(value, formats, true);
618
+ if (parsed.isValid()) {
619
+ return parsed.toDate();
620
+ }
621
+ /** @type {?} */
622
+ var fallback = new Date(value);
623
+ return isNaN(fallback.getTime()) ? null : fallback;
624
+ };
625
+ /**
626
+ * @private
627
+ * @param {?} year
628
+ * @param {?} month
629
+ * @param {?} day
630
+ * @return {?}
631
+ */
632
+ DateTreeFilterHelper.prototype.toDayKey = /**
633
+ * @private
634
+ * @param {?} year
635
+ * @param {?} month
636
+ * @param {?} day
637
+ * @return {?}
638
+ */
639
+ function (year, month, day) {
640
+ return year + "-" + this.pad2(month) + "-" + this.pad2(day);
641
+ };
642
+ /**
643
+ * @private
644
+ * @param {?} value
645
+ * @return {?}
646
+ */
647
+ DateTreeFilterHelper.prototype.pad2 = /**
648
+ * @private
649
+ * @param {?} value
650
+ * @return {?}
651
+ */
652
+ function (value) {
653
+ return value < 10 ? "0" + value : String(value);
654
+ };
655
+ /**
656
+ * @private
657
+ * @param {?} target
658
+ * @return {?}
659
+ */
660
+ DateTreeFilterHelper.prototype.isInsidePopover = /**
661
+ * @private
662
+ * @param {?} target
663
+ * @return {?}
664
+ */
665
+ function (target) {
666
+ /** @type {?} */
667
+ var popoverElement = this.options.getPopoverElement
668
+ ? this.options.getPopoverElement()
669
+ : null;
670
+ if (!target || !popoverElement) {
671
+ return false;
672
+ }
673
+ return popoverElement.contains(target);
674
+ };
675
+ /**
676
+ * @private
677
+ * @param {?} element
678
+ * @return {?}
679
+ */
680
+ DateTreeFilterHelper.prototype.isDateFilterMenuItem = /**
681
+ * @private
682
+ * @param {?} element
683
+ * @return {?}
684
+ */
685
+ function (element) {
686
+ if (!element) {
687
+ return false;
688
+ }
689
+ /** @type {?} */
690
+ var menuItem = (/** @type {?} */ (element.closest(".e-menu-item")));
691
+ if (!menuItem) {
692
+ return false;
693
+ }
694
+ /** @type {?} */
695
+ var text = (menuItem.textContent || "").trim().toLowerCase();
696
+ /** @type {?} */
697
+ var translation = this.options.getTranslation
698
+ ? this.options.getTranslation()
699
+ : null;
700
+ /** @type {?} */
701
+ var filterText = String((translation && translation.FILTER) || "filter")
702
+ .trim()
703
+ .toLowerCase();
704
+ if (!text) {
705
+ return false;
706
+ }
707
+ if (text.indexOf(filterText) > -1 || text.indexOf("filter") > -1) {
708
+ return true;
709
+ }
710
+ /** @type {?} */
711
+ var cls = (menuItem.className || "").toLowerCase();
712
+ return cls.indexOf("filter") > -1;
713
+ };
714
+ /**
715
+ * @private
716
+ * @return {?}
717
+ */
718
+ DateTreeFilterHelper.prototype.findDateFilterAnchorElement = /**
719
+ * @private
720
+ * @return {?}
721
+ */
722
+ function () {
723
+ var _this = this;
724
+ /** @type {?} */
725
+ var menuContainers = (/** @type {?} */ (Array.from(document.querySelectorAll(".e-columnmenu, .e-contextmenu"))));
726
+ /** @type {?} */
727
+ var visibleContainers = menuContainers.filter((/**
728
+ * @param {?} container
729
+ * @return {?}
730
+ */
731
+ function (container) {
732
+ if (!container || !container.getBoundingClientRect) {
733
+ return false;
734
+ }
735
+ /** @type {?} */
736
+ var rect = container.getBoundingClientRect();
737
+ if (rect.width <= 0 || rect.height <= 0) {
738
+ return false;
739
+ }
740
+ /** @type {?} */
741
+ var style = window.getComputedStyle(container);
742
+ if (!style || style.display === "none" || style.visibility === "hidden") {
743
+ return false;
744
+ }
745
+ return true;
746
+ }));
747
+ if (!visibleContainers.length) {
748
+ return null;
749
+ }
750
+ /** @type {?} */
751
+ var currentContainer = visibleContainers[visibleContainers.length - 1];
752
+ /** @type {?} */
753
+ var menuItems = (/** @type {?} */ (Array.from(currentContainer.querySelectorAll(".e-menu-item"))));
754
+ /** @type {?} */
755
+ var visibleFilterItems = menuItems.filter((/**
756
+ * @param {?} item
757
+ * @return {?}
758
+ */
759
+ function (item) {
760
+ if (!_this.isDateFilterMenuItem(item)) {
761
+ return false;
762
+ }
763
+ if (!item.getBoundingClientRect) {
764
+ return false;
765
+ }
766
+ /** @type {?} */
767
+ var rect = item.getBoundingClientRect();
768
+ return rect.width > 0 && rect.height > 0;
769
+ }));
770
+ if (!visibleFilterItems.length) {
771
+ return null;
772
+ }
773
+ /** @type {?} */
774
+ var focusedItem = visibleFilterItems.find((/**
775
+ * @param {?} item
776
+ * @return {?}
777
+ */
778
+ function (item) {
779
+ return (item.classList.contains("e-focused") ||
780
+ item.classList.contains("e-selected") ||
781
+ item.classList.contains("e-hover"));
782
+ }));
783
+ return focusedItem || visibleFilterItems[visibleFilterItems.length - 1];
784
+ };
785
+ return DateTreeFilterHelper;
786
+ }());
787
+ if (false) {
788
+ /** @type {?} */
789
+ DateTreeFilterHelper.prototype.popoverVisible;
790
+ /** @type {?} */
791
+ DateTreeFilterHelper.prototype.popoverField;
792
+ /** @type {?} */
793
+ DateTreeFilterHelper.prototype.popoverStyle;
794
+ /** @type {?} */
795
+ DateTreeFilterHelper.prototype.selectedByField;
796
+ /** @type {?} */
797
+ DateTreeFilterHelper.prototype.fieldLabelMap;
798
+ /** @type {?} */
799
+ DateTreeFilterHelper.prototype.dateFields;
800
+ /**
801
+ * @type {?}
802
+ * @private
803
+ */
804
+ DateTreeFilterHelper.prototype.sourceRows;
805
+ /**
806
+ * @type {?}
807
+ * @private
808
+ */
809
+ DateTreeFilterHelper.prototype.options;
810
+ /**
811
+ * @type {?}
812
+ * @private
813
+ */
814
+ DateTreeFilterHelper.prototype.defaultDateFormats;
815
+ }
816
+ /**
817
+ * @param {?} host
818
+ * @return {?}
819
+ */
820
+ function resolveGridElement(host) {
821
+ if (!host || !host.grid) {
822
+ return null;
823
+ }
824
+ /** @type {?} */
825
+ var gridRef = host.grid;
826
+ if (gridRef.grid && gridRef.grid.element) {
827
+ return gridRef.grid.element;
828
+ }
829
+ if (gridRef.element) {
830
+ return gridRef.element;
831
+ }
832
+ return null;
833
+ }
834
+ /**
835
+ * @param {?} host
836
+ * @param {?} applyRows
837
+ * @param {?=} dateFormats
838
+ * @return {?}
839
+ */
840
+ function createRsCommonGridDateTreeHelper(host, applyRows, dateFormats) {
841
+ return new DateTreeFilterHelper({
842
+ getTranslation: (/**
843
+ * @return {?}
844
+ */
845
+ function () { return (host ? host.translation : null); }),
846
+ getPopoverElement: (/**
847
+ * @return {?}
848
+ */
849
+ function () {
850
+ return host && host.dateTreePopoverRef
851
+ ? host.dateTreePopoverRef.nativeElement
852
+ : null;
853
+ }),
854
+ getGridElement: (/**
855
+ * @return {?}
856
+ */
857
+ function () { return resolveGridElement(host); }),
858
+ applyRows: applyRows,
859
+ dateFormats: dateFormats && dateFormats.length
860
+ ? dateFormats
861
+ : DATE_TREE_DEFAULT_DATE_FORMATS,
862
+ });
863
+ }
864
+
80
865
  /**
81
866
  * @fileoverview added by tsickle
82
867
  * Generated from: lib/common-grid/index.component.ts
@@ -84,6 +869,7 @@ function getTranslation() {
84
869
  */
85
870
  var CommonGridComponent = /** @class */ (function () {
86
871
  function CommonGridComponent(ref) {
872
+ var _this = this;
87
873
  this.ref = ref;
88
874
  this.showCheckBox = true;
89
875
  this.loaded = true;
@@ -130,6 +916,23 @@ var CommonGridComponent = /** @class */ (function () {
130
916
  this.alwaysShowCheckbox = false;
131
917
  this.disableSystemRow = false; // 禁用IsSytem = true的整行
132
918
  // 禁用IsSytem = true的整行
919
+ /**
920
+ * 开启日期树筛选(默认关闭,不影响现有页面)
921
+ */
922
+ this.enableDateTreeFilter = false;
923
+ /**
924
+ * 参与日期树筛选的列名或 hint,如 ['CreatedOn', 'ModifiedOn']
925
+ */
926
+ this.dateTreeFilterFields = [];
927
+ /**
928
+ * 未筛选原始数据(可选)。
929
+ * 不传时由组件在 dataSource 变更时自动快照;传则由页面自行维护 raw。
930
+ */
931
+ this.dateTreeSourceRows = null;
932
+ /**
933
+ * 内聚模式下仍向页面同步筛选结果(默认 false,一般无需绑定)
934
+ */
935
+ this.dateTreeEmitFilteredRows = false;
133
936
  this.recordDoubleClick = new EventEmitter();
134
937
  this.actionComplete = new EventEmitter();
135
938
  this.rowSelected = new EventEmitter();
@@ -147,6 +950,16 @@ var CommonGridComponent = /** @class */ (function () {
147
950
  this.rowDrop = new EventEmitter();
148
951
  this.rowDrag = new EventEmitter();
149
952
  this.rowDragStart = new EventEmitter();
953
+ /**
954
+ * 日期树筛选后的行数据(可选,复杂页面与 dateTreeSourceRows 搭配使用)
955
+ */
956
+ this.dateTreeFilteredRows = new EventEmitter();
957
+ /**
958
+ * 内聚模式:表格实际绑定的数据
959
+ */
960
+ this.dateTreeDisplayRows = [];
961
+ this.dateTreeRawRows = [];
962
+ this.dateTreeApplyingFilter = false;
150
963
  this.selectId = [];
151
964
  this.startPaging = false;
152
965
  this.indexList = [];
@@ -174,6 +987,11 @@ var CommonGridComponent = /** @class */ (function () {
174
987
  return list;
175
988
  });
176
989
  this.translation = getTranslation();
990
+ this.dateTreeHelper = createRsCommonGridDateTreeHelper(this, (/**
991
+ * @param {?} rows
992
+ * @return {?}
993
+ */
994
+ function (rows) { return _this.onDateTreeRowsApplied(rows); }));
177
995
  }
178
996
  /**
179
997
  * @return {?}
@@ -201,6 +1019,36 @@ var CommonGridComponent = /** @class */ (function () {
201
1019
  function (index, item) {
202
1020
  return index; // or a unique identifier in your object
203
1021
  };
1022
+ Object.defineProperty(CommonGridComponent.prototype, "gridBindDataSource", {
1023
+ /** ejs-grid 绑定数据源:内聚模式用内部展示数据,否则用 dataSource */
1024
+ get: /**
1025
+ * ejs-grid 绑定数据源:内聚模式用内部展示数据,否则用 dataSource
1026
+ * @return {?}
1027
+ */
1028
+ function () {
1029
+ if (this.enableDateTreeFilter && this.dateTreeSourceRows == null) {
1030
+ return this.dateTreeDisplayRows;
1031
+ }
1032
+ return this.dataSource;
1033
+ },
1034
+ enumerable: true,
1035
+ configurable: true
1036
+ });
1037
+ Object.defineProperty(CommonGridComponent.prototype, "dateTreePopoverSourceRows", {
1038
+ /** 日期树 popover 用的全量数据 */
1039
+ get: /**
1040
+ * 日期树 popover 用的全量数据
1041
+ * @return {?}
1042
+ */
1043
+ function () {
1044
+ if (this.dateTreeSourceRows != null) {
1045
+ return this.dateTreeSourceRows;
1046
+ }
1047
+ return this.dateTreeRawRows;
1048
+ },
1049
+ enumerable: true,
1050
+ configurable: true
1051
+ });
204
1052
  /**
205
1053
  * @param {?} changes
206
1054
  * @return {?}
@@ -210,12 +1058,16 @@ var CommonGridComponent = /** @class */ (function () {
210
1058
  * @return {?}
211
1059
  */
212
1060
  function (changes) {
213
- if (changes.dataSource && changes.dataSource.currentValue) {
1061
+ /** @type {?} */
1062
+ var bindRows = changes.dataSource && changes.dataSource.currentValue
1063
+ ? changes.dataSource.currentValue
1064
+ : null;
1065
+ if (bindRows) {
214
1066
  if (this.allowPaging &&
215
- changes.dataSource.currentValue.length &&
1067
+ bindRows.length &&
216
1068
  !this.pageSettings) {
217
1069
  this.pageSettings =
218
- changes.dataSource.currentValue.length > 9
1070
+ bindRows.length > 9
219
1071
  ? {
220
1072
  pageSizes: ["All", "25", "50", "100"],
221
1073
  pageSize: 50,
@@ -223,11 +1075,123 @@ var CommonGridComponent = /** @class */ (function () {
223
1075
  : null;
224
1076
  }
225
1077
  }
1078
+ if (this.enableDateTreeFilter &&
1079
+ this.dateTreeSourceRows == null &&
1080
+ changes.dataSource &&
1081
+ !this.dateTreeApplyingFilter) {
1082
+ this.captureDateTreeRawFromDataSource(changes.dataSource.currentValue);
1083
+ }
1084
+ if (changes.enableDateTreeFilter && changes.enableDateTreeFilter.currentValue) {
1085
+ this.captureDateTreeRawFromDataSource(this.dataSource);
1086
+ }
1087
+ if (changes.enableDateTreeFilter && !changes.enableDateTreeFilter.currentValue) {
1088
+ this.dateTreeHelper && this.dateTreeHelper.close();
1089
+ this.dateTreeDisplayRows = [];
1090
+ this.dateTreeRawRows = [];
1091
+ }
1092
+ if (this.enableDateTreeFilter &&
1093
+ (changes.enableDateTreeFilter ||
1094
+ changes.dateTreeFilterFields ||
1095
+ changes.dateTreeSourceRows ||
1096
+ changes.fields ||
1097
+ changes.dataSource)) {
1098
+ this.refreshDateTreeFilter();
1099
+ }
226
1100
  };
227
1101
  /**
1102
+ * @private
1103
+ * @param {?} rows
228
1104
  * @return {?}
229
1105
  */
230
- CommonGridComponent.prototype._load = /**
1106
+ CommonGridComponent.prototype.captureDateTreeRawFromDataSource = /**
1107
+ * @private
1108
+ * @param {?} rows
1109
+ * @return {?}
1110
+ */
1111
+ function (rows) {
1112
+ this.dateTreeRawRows = rows ? rows.slice() : [];
1113
+ };
1114
+ /**
1115
+ * @param {?} event
1116
+ * @return {?}
1117
+ */
1118
+ CommonGridComponent.prototype.onDocumentMouseDown = /**
1119
+ * @param {?} event
1120
+ * @return {?}
1121
+ */
1122
+ function (event) {
1123
+ if (this.enableDateTreeFilter && this.dateTreeHelper) {
1124
+ this.dateTreeHelper.handleDocumentMouseDown(event);
1125
+ }
1126
+ };
1127
+ /**
1128
+ * @param {?} event
1129
+ * @return {?}
1130
+ */
1131
+ CommonGridComponent.prototype.onDocumentMouseOver = /**
1132
+ * @param {?} event
1133
+ * @return {?}
1134
+ */
1135
+ function (event) {
1136
+ if (this.enableDateTreeFilter && this.dateTreeHelper) {
1137
+ this.dateTreeHelper.handleDocumentMouseOver(event);
1138
+ }
1139
+ };
1140
+ /**
1141
+ * @private
1142
+ * @return {?}
1143
+ */
1144
+ CommonGridComponent.prototype.refreshDateTreeFilter = /**
1145
+ * @private
1146
+ * @return {?}
1147
+ */
1148
+ function () {
1149
+ if (!this.enableDateTreeFilter || !this.dateTreeHelper) {
1150
+ return;
1151
+ }
1152
+ /** @type {?} */
1153
+ var rows = this.dateTreeSourceRows != null
1154
+ ? this.dateTreeSourceRows
1155
+ : this.dateTreeRawRows || [];
1156
+ this.dateTreeHelper.setup({
1157
+ rows: rows,
1158
+ fields: this.fields || [],
1159
+ hints: this.dateTreeFilterFields || [],
1160
+ });
1161
+ };
1162
+ /**
1163
+ * @private
1164
+ * @param {?} rows
1165
+ * @return {?}
1166
+ */
1167
+ CommonGridComponent.prototype.onDateTreeRowsApplied = /**
1168
+ * @private
1169
+ * @param {?} rows
1170
+ * @return {?}
1171
+ */
1172
+ function (rows) {
1173
+ var _this = this;
1174
+ /** @type {?} */
1175
+ var result = rows || [];
1176
+ this.dateTreeApplyingFilter = true;
1177
+ if (this.enableDateTreeFilter && this.dateTreeSourceRows == null) {
1178
+ this.dateTreeDisplayRows = result;
1179
+ }
1180
+ if (this.dateTreeSourceRows != null || this.dateTreeEmitFilteredRows) {
1181
+ this.dateTreeFilteredRows.emit(result);
1182
+ }
1183
+ this.ref && this.ref.markForCheck();
1184
+ setTimeout((/**
1185
+ * @return {?}
1186
+ */
1187
+ function () {
1188
+ _this.dateTreeApplyingFilter = false;
1189
+ }), 0);
1190
+ };
1191
+ /**
1192
+ * @return {?}
1193
+ */
1194
+ CommonGridComponent.prototype._load = /**
231
1195
  * @return {?}
232
1196
  */
233
1197
  function () {
@@ -481,7 +1445,10 @@ var CommonGridComponent = /** @class */ (function () {
481
1445
  args.requestType === "sorting")) {
482
1446
  this.startPaging = true;
483
1447
  }
484
- if (args.requestType == "filterchoicerequest" ||
1448
+ if (this.enableDateTreeFilter && this.dateTreeHelper) {
1449
+ this.dateTreeHelper.handleGridActionBegin(args);
1450
+ }
1451
+ else if (args.requestType == "filterchoicerequest" ||
485
1452
  args.requestType === "filtersearchbegin") {
486
1453
  args.filterChoiceCount = 15000;
487
1454
  }
@@ -854,7 +1821,7 @@ var CommonGridComponent = /** @class */ (function () {
854
1821
  CommonGridComponent.decorators = [
855
1822
  { type: Component, args: [{
856
1823
  selector: "rs-common-grid",
857
- template: "<ejs-grid\r\n #grid\r\n [id]=\"gridId\"\r\n [ngClass]=\"{\r\n 'hide-Check-box': !alwaysShowCheckbox,\r\n 'grid-loading': className === 'grid-loading'\r\n }\"\r\n [dataSource]=\"dataSource\"\r\n [allowPaging]=\"allowPaging && pageSettings\"\r\n [allowResizing]=\"true\"\r\n [pageSettings]=\"pageSettings\"\r\n [showColumnMenu]=\"true\"\r\n [allowSorting]=\"true\"\r\n [allowFiltering]=\"true\"\r\n [allowExcelExport]=\"true\"\r\n [allowRowDragAndDrop]=\"allowRowDragAndDrop\"\r\n [filterSettings]=\"filterSettings\"\r\n [resizeSettings]=\"resizeSettings\"\r\n [allowSelection]=\"true\"\r\n [editSettings]=\"editSettings\"\r\n [childGrid]=\"childGrid\"\r\n [contextMenuItems]=\"dataSource && dataSource.length ? contextMenuItems : null\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (recordClick)=\"_recordClick($event)\"\r\n (recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (actionComplete)=\"_actionHandler($event)\"\r\n (rowSelected)=\"_rowSelected($event)\"\r\n (rowDeselecting)=\"_rowDeselecting($event)\"\r\n (rowDeselected)=\"_rowDeselected($event)\"\r\n style=\"border: none\"\r\n (contextMenuClick)=\"_onContextMenu($event)\"\r\n (contextMenuOpen)=\"contextMenuOpen($event)\"\r\n (queryCellInfo)=\"customiseCell($event)\"\r\n (dataBound)=\"_dataBound($event)\"\r\n (rowDataBound)=\"_rowDataBound($event)\"\r\n (rowSelecting)=\"_rowSelecting($event)\"\r\n (excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n (rowDrop)=\"onRowDrop($event)\"\r\n (rowDragStart)=\"_rowDragStart($event)\"\r\n (rowDrag)=\"_rowDrag($event)\"\r\n (load)=\"_load()\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [columnChooserSettings]=\"columnChooserSettings\"\r\n>\r\n <e-columns>\r\n <e-column\r\n *ngIf=\"showCheckBox\"\r\n type=\"checkbox\"\r\n [width]=\"checkBoxWidth\"\r\n [minWidth]=\"checkBoxWidth\"\r\n [showColumnMenu]=\"false\"\r\n [allowResizing]=\"false\"\r\n ></e-column>\r\n <e-column\r\n *ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n [field]=\"item.columnName\"\r\n [filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n [customAttributes]=\"\r\n item.colName === 'entityUserList' || item.colName === 'kycProgress'\r\n ? { class: 'hideColumnFilterClass' }\r\n : {}\r\n \"\r\n [headerText]=\"item.columnDisplayName\"\r\n [textAlign]=\"item.textAlign\"\r\n [showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n [allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n [allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n [showInColumnChooser]=\"\r\n item.showInColumnChooser === undefined ? true : item.showInColumnChooser\r\n \"\r\n [editType]=\"item.editType\"\r\n [validationRules]=\"item.validationRules\"\r\n [type]=\"item.dataType || 'string'\"\r\n [width]=\"item.width\"\r\n [minWidth]=\"item.minWidth\"\r\n [format]=\"item.format\"\r\n [visible]=\"item.visible\"\r\n [template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n [clipMode]=\"\r\n item.clipMode ? item.clipMode : clipMode || 'EllipsisWithTooltip'\r\n \"\r\n [sortComparer]=\"item.dateComparer || null\"\r\n [allowResizing]=\"!last\"\r\n [headerTemplate]=\"item.showHeaderTemplate ? headerTemplate : undefined\"\r\n [isPrimaryKey]=\"item?.isPrimaryKey ? true : false\"\r\n >\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n",
1824
+ template: "<rs-date-tree-filter-popover\r\n *ngIf=\"enableDateTreeFilter && dateTreeHelper && dateTreeHelper.popoverVisible\"\r\n #dateTreePopoverRef\r\n [ngStyle]=\"dateTreeHelper.popoverStyle\"\r\n [field]=\"dateTreeHelper.popoverField\"\r\n [translation]=\"translation\"\r\n [sourceRows]=\"dateTreePopoverSourceRows\"\r\n [dateFields]=\"dateTreeHelper.dateFields\"\r\n [selectedByField]=\"dateTreeHelper.selectedByField\"\r\n [fieldLabelMap]=\"dateTreeHelper.fieldLabelMap\"\r\n (apply)=\"dateTreeHelper.updateSelection($event)\"\r\n (close)=\"dateTreeHelper.close()\"\r\n></rs-date-tree-filter-popover>\r\n<ejs-grid\r\n #grid\r\n [id]=\"gridId\"\r\n [ngClass]=\"{\r\n 'hide-Check-box': !alwaysShowCheckbox,\r\n 'grid-loading': className === 'grid-loading'\r\n }\"\r\n [dataSource]=\"gridBindDataSource\"\r\n [allowPaging]=\"allowPaging && pageSettings\"\r\n [allowResizing]=\"true\"\r\n [pageSettings]=\"pageSettings\"\r\n [showColumnMenu]=\"true\"\r\n [allowSorting]=\"true\"\r\n [allowFiltering]=\"true\"\r\n [allowExcelExport]=\"true\"\r\n [allowRowDragAndDrop]=\"allowRowDragAndDrop\"\r\n [filterSettings]=\"filterSettings\"\r\n [resizeSettings]=\"resizeSettings\"\r\n [allowSelection]=\"true\"\r\n [editSettings]=\"editSettings\"\r\n [childGrid]=\"childGrid\"\r\n [contextMenuItems]=\"gridBindDataSource && gridBindDataSource.length ? contextMenuItems : null\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (recordClick)=\"_recordClick($event)\"\r\n (recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (actionComplete)=\"_actionHandler($event)\"\r\n (rowSelected)=\"_rowSelected($event)\"\r\n (rowDeselecting)=\"_rowDeselecting($event)\"\r\n (rowDeselected)=\"_rowDeselected($event)\"\r\n style=\"border: none\"\r\n (contextMenuClick)=\"_onContextMenu($event)\"\r\n (contextMenuOpen)=\"contextMenuOpen($event)\"\r\n (queryCellInfo)=\"customiseCell($event)\"\r\n (dataBound)=\"_dataBound($event)\"\r\n (rowDataBound)=\"_rowDataBound($event)\"\r\n (rowSelecting)=\"_rowSelecting($event)\"\r\n (excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n (rowDrop)=\"onRowDrop($event)\"\r\n (rowDragStart)=\"_rowDragStart($event)\"\r\n (rowDrag)=\"_rowDrag($event)\"\r\n (load)=\"_load()\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [columnChooserSettings]=\"columnChooserSettings\"\r\n>\r\n <e-columns>\r\n <e-column\r\n *ngIf=\"showCheckBox\"\r\n type=\"checkbox\"\r\n [width]=\"checkBoxWidth\"\r\n [minWidth]=\"checkBoxWidth\"\r\n [showColumnMenu]=\"false\"\r\n [allowResizing]=\"false\"\r\n ></e-column>\r\n <e-column\r\n *ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n [field]=\"item.columnName\"\r\n [filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n [customAttributes]=\"\r\n item.colName === 'entityUserList' || item.colName === 'kycProgress'\r\n ? { class: 'hideColumnFilterClass' }\r\n : {}\r\n \"\r\n [headerText]=\"item.columnDisplayName\"\r\n [textAlign]=\"item.textAlign\"\r\n [showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n [allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n [allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n [showInColumnChooser]=\"\r\n item.showInColumnChooser === undefined ? true : item.showInColumnChooser\r\n \"\r\n [editType]=\"item.editType\"\r\n [validationRules]=\"item.validationRules\"\r\n [type]=\"item.dataType || 'string'\"\r\n [width]=\"item.width\"\r\n [minWidth]=\"item.minWidth\"\r\n [format]=\"item.format\"\r\n [visible]=\"item.visible\"\r\n [template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n [clipMode]=\"\r\n item.clipMode ? item.clipMode : clipMode || 'EllipsisWithTooltip'\r\n \"\r\n [sortComparer]=\"item.dateComparer || null\"\r\n [allowResizing]=\"!last\"\r\n [headerTemplate]=\"item.showHeaderTemplate ? headerTemplate : undefined\"\r\n [isPrimaryKey]=\"item?.isPrimaryKey ? true : false\"\r\n >\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n",
858
1825
  styles: [""]
859
1826
  }] }
860
1827
  ];
@@ -892,6 +1859,10 @@ var CommonGridComponent = /** @class */ (function () {
892
1859
  alwaysShowCheckbox: [{ type: Input }],
893
1860
  defaultRecord: [{ type: Input }],
894
1861
  disableSystemRow: [{ type: Input }],
1862
+ enableDateTreeFilter: [{ type: Input }],
1863
+ dateTreeFilterFields: [{ type: Input }],
1864
+ dateTreeSourceRows: [{ type: Input }],
1865
+ dateTreeEmitFilteredRows: [{ type: Input }],
895
1866
  recordDoubleClick: [{ type: Output }],
896
1867
  actionComplete: [{ type: Output }],
897
1868
  rowSelected: [{ type: Output }],
@@ -908,7 +1879,11 @@ var CommonGridComponent = /** @class */ (function () {
908
1879
  rowSelecting: [{ type: Output }],
909
1880
  rowDrop: [{ type: Output }],
910
1881
  rowDrag: [{ type: Output }],
911
- rowDragStart: [{ type: Output }]
1882
+ rowDragStart: [{ type: Output }],
1883
+ dateTreeFilteredRows: [{ type: Output }],
1884
+ dateTreePopoverRef: [{ type: ViewChild, args: ["dateTreePopoverRef", { read: ElementRef, static: false },] }],
1885
+ onDocumentMouseDown: [{ type: HostListener, args: ["document:mousedown", ["$event"],] }],
1886
+ onDocumentMouseOver: [{ type: HostListener, args: ["document:mouseover", ["$event"],] }]
912
1887
  };
913
1888
  return CommonGridComponent;
914
1889
  }());
@@ -988,6 +1963,27 @@ if (false) {
988
1963
  CommonGridComponent.prototype.defaultRecord;
989
1964
  /** @type {?} */
990
1965
  CommonGridComponent.prototype.disableSystemRow;
1966
+ /**
1967
+ * 开启日期树筛选(默认关闭,不影响现有页面)
1968
+ * @type {?}
1969
+ */
1970
+ CommonGridComponent.prototype.enableDateTreeFilter;
1971
+ /**
1972
+ * 参与日期树筛选的列名或 hint,如 ['CreatedOn', 'ModifiedOn']
1973
+ * @type {?}
1974
+ */
1975
+ CommonGridComponent.prototype.dateTreeFilterFields;
1976
+ /**
1977
+ * 未筛选原始数据(可选)。
1978
+ * 不传时由组件在 dataSource 变更时自动快照;传则由页面自行维护 raw。
1979
+ * @type {?}
1980
+ */
1981
+ CommonGridComponent.prototype.dateTreeSourceRows;
1982
+ /**
1983
+ * 内聚模式下仍向页面同步筛选结果(默认 false,一般无需绑定)
1984
+ * @type {?}
1985
+ */
1986
+ CommonGridComponent.prototype.dateTreeEmitFilteredRows;
991
1987
  /** @type {?} */
992
1988
  CommonGridComponent.prototype.recordDoubleClick;
993
1989
  /** @type {?} */
@@ -1022,6 +2018,30 @@ if (false) {
1022
2018
  CommonGridComponent.prototype.rowDrag;
1023
2019
  /** @type {?} */
1024
2020
  CommonGridComponent.prototype.rowDragStart;
2021
+ /**
2022
+ * 日期树筛选后的行数据(可选,复杂页面与 dateTreeSourceRows 搭配使用)
2023
+ * @type {?}
2024
+ */
2025
+ CommonGridComponent.prototype.dateTreeFilteredRows;
2026
+ /** @type {?} */
2027
+ CommonGridComponent.prototype.dateTreePopoverRef;
2028
+ /** @type {?} */
2029
+ CommonGridComponent.prototype.dateTreeHelper;
2030
+ /**
2031
+ * 内聚模式:表格实际绑定的数据
2032
+ * @type {?}
2033
+ */
2034
+ CommonGridComponent.prototype.dateTreeDisplayRows;
2035
+ /**
2036
+ * @type {?}
2037
+ * @private
2038
+ */
2039
+ CommonGridComponent.prototype.dateTreeRawRows;
2040
+ /**
2041
+ * @type {?}
2042
+ * @private
2043
+ */
2044
+ CommonGridComponent.prototype.dateTreeApplyingFilter;
1025
2045
  /** @type {?} */
1026
2046
  CommonGridComponent.prototype.selectId;
1027
2047
  /** @type {?} */
@@ -1161,6 +2181,905 @@ if (false) {
1161
2181
  GridActionItemComponent.prototype.ImageType;
1162
2182
  }
1163
2183
 
2184
+ /**
2185
+ * @fileoverview added by tsickle
2186
+ * Generated from: lib/date-tree-filter/date-tree-filter-popover/index.component.ts
2187
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
2188
+ */
2189
+ var DateTreeFilterPopoverComponent = /** @class */ (function () {
2190
+ function DateTreeFilterPopoverComponent() {
2191
+ this.field = "";
2192
+ this.sourceRows = [];
2193
+ this.dateFields = [];
2194
+ this.selectedByField = {};
2195
+ this.fieldLabelMap = {};
2196
+ this.apply = new EventEmitter();
2197
+ this.close = new EventEmitter();
2198
+ this.keyword = "";
2199
+ this.years = [];
2200
+ this.expandStateByField = {};
2201
+ this.workingSelectedByField = {};
2202
+ }
2203
+ /**
2204
+ * @param {?} changes
2205
+ * @return {?}
2206
+ */
2207
+ DateTreeFilterPopoverComponent.prototype.ngOnChanges = /**
2208
+ * @param {?} changes
2209
+ * @return {?}
2210
+ */
2211
+ function (changes) {
2212
+ if (changes.field ||
2213
+ changes.sourceRows ||
2214
+ changes.selectedByField ||
2215
+ changes.dateFields) {
2216
+ this.keyword = "";
2217
+ this.workingSelectedByField = this.cloneSelectionMap(this.selectedByField);
2218
+ this.rebuildTree();
2219
+ }
2220
+ };
2221
+ /**
2222
+ * @return {?}
2223
+ */
2224
+ DateTreeFilterPopoverComponent.prototype.closePopover = /**
2225
+ * @return {?}
2226
+ */
2227
+ function () {
2228
+ this.close.emit();
2229
+ };
2230
+ /**
2231
+ * @param {?} value
2232
+ * @return {?}
2233
+ */
2234
+ DateTreeFilterPopoverComponent.prototype.onKeywordChange = /**
2235
+ * @param {?} value
2236
+ * @return {?}
2237
+ */
2238
+ function (value) {
2239
+ this.keyword = value || "";
2240
+ };
2241
+ /**
2242
+ * @return {?}
2243
+ */
2244
+ DateTreeFilterPopoverComponent.prototype.getVisibleYears = /**
2245
+ * @return {?}
2246
+ */
2247
+ function () {
2248
+ /** @type {?} */
2249
+ var searchText = (this.keyword || "").trim().toLowerCase();
2250
+ if (!searchText) {
2251
+ return this.years;
2252
+ }
2253
+ return this.years
2254
+ .map((/**
2255
+ * @param {?} yearNode
2256
+ * @return {?}
2257
+ */
2258
+ function (yearNode) {
2259
+ /** @type {?} */
2260
+ var yearMatched = String(yearNode.year).toLowerCase().indexOf(searchText) > -1;
2261
+ /** @type {?} */
2262
+ var months = yearNode.months
2263
+ .map((/**
2264
+ * @param {?} monthNode
2265
+ * @return {?}
2266
+ */
2267
+ function (monthNode) {
2268
+ /** @type {?} */
2269
+ var monthMatched = String(monthNode.label)
2270
+ .toLowerCase()
2271
+ .indexOf(searchText) > -1;
2272
+ /** @type {?} */
2273
+ var days = monthNode.days.filter((/**
2274
+ * @param {?} dayNode
2275
+ * @return {?}
2276
+ */
2277
+ function (dayNode) {
2278
+ return (String(dayNode.label)
2279
+ .toLowerCase()
2280
+ .indexOf(searchText) > -1);
2281
+ }));
2282
+ if (yearMatched || monthMatched) {
2283
+ return monthNode;
2284
+ }
2285
+ return Object.assign({}, monthNode, { days: days });
2286
+ }))
2287
+ .filter((/**
2288
+ * @param {?} monthNode
2289
+ * @return {?}
2290
+ */
2291
+ function (monthNode) { return monthNode.days.length > 0; }));
2292
+ if (yearMatched) {
2293
+ return yearNode;
2294
+ }
2295
+ return Object.assign({}, yearNode, { months: months });
2296
+ }))
2297
+ .filter((/**
2298
+ * @param {?} yearNode
2299
+ * @return {?}
2300
+ */
2301
+ function (yearNode) { return yearNode.months.length > 0; }));
2302
+ };
2303
+ /**
2304
+ * @param {?} yearNode
2305
+ * @return {?}
2306
+ */
2307
+ DateTreeFilterPopoverComponent.prototype.toggleYearExpanded = /**
2308
+ * @param {?} yearNode
2309
+ * @return {?}
2310
+ */
2311
+ function (yearNode) {
2312
+ /** @type {?} */
2313
+ var state = this.getOrCreateExpandState(this.field);
2314
+ state.years[yearNode.key] = !state.years[yearNode.key];
2315
+ yearNode.expanded = !!state.years[yearNode.key];
2316
+ };
2317
+ /**
2318
+ * @param {?} monthNode
2319
+ * @return {?}
2320
+ */
2321
+ DateTreeFilterPopoverComponent.prototype.toggleMonthExpanded = /**
2322
+ * @param {?} monthNode
2323
+ * @return {?}
2324
+ */
2325
+ function (monthNode) {
2326
+ /** @type {?} */
2327
+ var state = this.getOrCreateExpandState(this.field);
2328
+ state.months[monthNode.key] = !state.months[monthNode.key];
2329
+ monthNode.expanded = !!state.months[monthNode.key];
2330
+ };
2331
+ /**
2332
+ * @return {?}
2333
+ */
2334
+ DateTreeFilterPopoverComponent.prototype.isAllChecked = /**
2335
+ * @return {?}
2336
+ */
2337
+ function () {
2338
+ /** @type {?} */
2339
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2340
+ /** @type {?} */
2341
+ var enabledDayKeys = this.getEnabledDayKeysInCurrentField();
2342
+ if (!enabledDayKeys.length) {
2343
+ return false;
2344
+ }
2345
+ return enabledDayKeys.every((/**
2346
+ * @param {?} key
2347
+ * @return {?}
2348
+ */
2349
+ function (key) { return !!selectedMap[key]; }));
2350
+ };
2351
+ /**
2352
+ * @return {?}
2353
+ */
2354
+ DateTreeFilterPopoverComponent.prototype.isAllIndeterminate = /**
2355
+ * @return {?}
2356
+ */
2357
+ function () {
2358
+ /** @type {?} */
2359
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2360
+ /** @type {?} */
2361
+ var enabledDayKeys = this.getEnabledDayKeysInCurrentField();
2362
+ if (!enabledDayKeys.length) {
2363
+ return false;
2364
+ }
2365
+ /** @type {?} */
2366
+ var selectedCount = enabledDayKeys.filter((/**
2367
+ * @param {?} key
2368
+ * @return {?}
2369
+ */
2370
+ function (key) { return !!selectedMap[key]; }))
2371
+ .length;
2372
+ return selectedCount > 0 && selectedCount < enabledDayKeys.length;
2373
+ };
2374
+ /**
2375
+ * @param {?} checked
2376
+ * @return {?}
2377
+ */
2378
+ DateTreeFilterPopoverComponent.prototype.toggleAllDays = /**
2379
+ * @param {?} checked
2380
+ * @return {?}
2381
+ */
2382
+ function (checked) {
2383
+ /** @type {?} */
2384
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2385
+ /** @type {?} */
2386
+ var enabledDayKeys = this.getEnabledDayKeysInCurrentField();
2387
+ enabledDayKeys.forEach((/**
2388
+ * @param {?} key
2389
+ * @return {?}
2390
+ */
2391
+ function (key) {
2392
+ if (checked) {
2393
+ selectedMap[key] = true;
2394
+ }
2395
+ else {
2396
+ delete selectedMap[key];
2397
+ }
2398
+ }));
2399
+ };
2400
+ /**
2401
+ * @param {?} dayNode
2402
+ * @return {?}
2403
+ */
2404
+ DateTreeFilterPopoverComponent.prototype.isDayChecked = /**
2405
+ * @param {?} dayNode
2406
+ * @return {?}
2407
+ */
2408
+ function (dayNode) {
2409
+ /** @type {?} */
2410
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2411
+ return !!selectedMap[dayNode.key];
2412
+ };
2413
+ /**
2414
+ * @param {?} dayNode
2415
+ * @param {?} checked
2416
+ * @return {?}
2417
+ */
2418
+ DateTreeFilterPopoverComponent.prototype.toggleDay = /**
2419
+ * @param {?} dayNode
2420
+ * @param {?} checked
2421
+ * @return {?}
2422
+ */
2423
+ function (dayNode, checked) {
2424
+ if (dayNode.disabled) {
2425
+ return;
2426
+ }
2427
+ /** @type {?} */
2428
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2429
+ if (checked) {
2430
+ selectedMap[dayNode.key] = true;
2431
+ }
2432
+ else {
2433
+ delete selectedMap[dayNode.key];
2434
+ }
2435
+ };
2436
+ /**
2437
+ * @param {?} monthNode
2438
+ * @return {?}
2439
+ */
2440
+ DateTreeFilterPopoverComponent.prototype.isMonthDisabled = /**
2441
+ * @param {?} monthNode
2442
+ * @return {?}
2443
+ */
2444
+ function (monthNode) {
2445
+ return monthNode.days.every((/**
2446
+ * @param {?} dayNode
2447
+ * @return {?}
2448
+ */
2449
+ function (dayNode) { return dayNode.disabled; }));
2450
+ };
2451
+ /**
2452
+ * @param {?} monthNode
2453
+ * @return {?}
2454
+ */
2455
+ DateTreeFilterPopoverComponent.prototype.isMonthChecked = /**
2456
+ * @param {?} monthNode
2457
+ * @return {?}
2458
+ */
2459
+ function (monthNode) {
2460
+ if (this.isMonthDisabled(monthNode)) {
2461
+ return false;
2462
+ }
2463
+ /** @type {?} */
2464
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2465
+ /** @type {?} */
2466
+ var enabledDays = monthNode.days.filter((/**
2467
+ * @param {?} dayNode
2468
+ * @return {?}
2469
+ */
2470
+ function (dayNode) { return !dayNode.disabled; }));
2471
+ return enabledDays.every((/**
2472
+ * @param {?} dayNode
2473
+ * @return {?}
2474
+ */
2475
+ function (dayNode) { return !!selectedMap[dayNode.key]; }));
2476
+ };
2477
+ /**
2478
+ * @param {?} monthNode
2479
+ * @return {?}
2480
+ */
2481
+ DateTreeFilterPopoverComponent.prototype.isMonthIndeterminate = /**
2482
+ * @param {?} monthNode
2483
+ * @return {?}
2484
+ */
2485
+ function (monthNode) {
2486
+ if (this.isMonthDisabled(monthNode)) {
2487
+ return false;
2488
+ }
2489
+ /** @type {?} */
2490
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2491
+ /** @type {?} */
2492
+ var enabledDays = monthNode.days.filter((/**
2493
+ * @param {?} dayNode
2494
+ * @return {?}
2495
+ */
2496
+ function (dayNode) { return !dayNode.disabled; }));
2497
+ /** @type {?} */
2498
+ var selectedCount = enabledDays.filter((/**
2499
+ * @param {?} dayNode
2500
+ * @return {?}
2501
+ */
2502
+ function (dayNode) {
2503
+ return !!selectedMap[dayNode.key];
2504
+ })).length;
2505
+ return selectedCount > 0 && selectedCount < enabledDays.length;
2506
+ };
2507
+ /**
2508
+ * @param {?} monthNode
2509
+ * @param {?} checked
2510
+ * @return {?}
2511
+ */
2512
+ DateTreeFilterPopoverComponent.prototype.toggleMonth = /**
2513
+ * @param {?} monthNode
2514
+ * @param {?} checked
2515
+ * @return {?}
2516
+ */
2517
+ function (monthNode, checked) {
2518
+ if (this.isMonthDisabled(monthNode)) {
2519
+ return;
2520
+ }
2521
+ /** @type {?} */
2522
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2523
+ monthNode.days.forEach((/**
2524
+ * @param {?} dayNode
2525
+ * @return {?}
2526
+ */
2527
+ function (dayNode) {
2528
+ if (dayNode.disabled) {
2529
+ return;
2530
+ }
2531
+ if (checked) {
2532
+ selectedMap[dayNode.key] = true;
2533
+ }
2534
+ else {
2535
+ delete selectedMap[dayNode.key];
2536
+ }
2537
+ }));
2538
+ };
2539
+ /**
2540
+ * @param {?} yearNode
2541
+ * @return {?}
2542
+ */
2543
+ DateTreeFilterPopoverComponent.prototype.isYearDisabled = /**
2544
+ * @param {?} yearNode
2545
+ * @return {?}
2546
+ */
2547
+ function (yearNode) {
2548
+ var _this = this;
2549
+ return yearNode.months.every((/**
2550
+ * @param {?} monthNode
2551
+ * @return {?}
2552
+ */
2553
+ function (monthNode) {
2554
+ return _this.isMonthDisabled(monthNode);
2555
+ }));
2556
+ };
2557
+ /**
2558
+ * @param {?} yearNode
2559
+ * @return {?}
2560
+ */
2561
+ DateTreeFilterPopoverComponent.prototype.isYearChecked = /**
2562
+ * @param {?} yearNode
2563
+ * @return {?}
2564
+ */
2565
+ function (yearNode) {
2566
+ var _this = this;
2567
+ if (this.isYearDisabled(yearNode)) {
2568
+ return false;
2569
+ }
2570
+ /** @type {?} */
2571
+ var enabledMonths = yearNode.months.filter((/**
2572
+ * @param {?} monthNode
2573
+ * @return {?}
2574
+ */
2575
+ function (monthNode) { return !_this.isMonthDisabled(monthNode); }));
2576
+ return enabledMonths.every((/**
2577
+ * @param {?} monthNode
2578
+ * @return {?}
2579
+ */
2580
+ function (monthNode) { return _this.isMonthChecked(monthNode); }));
2581
+ };
2582
+ /**
2583
+ * @param {?} yearNode
2584
+ * @return {?}
2585
+ */
2586
+ DateTreeFilterPopoverComponent.prototype.isYearIndeterminate = /**
2587
+ * @param {?} yearNode
2588
+ * @return {?}
2589
+ */
2590
+ function (yearNode) {
2591
+ if (this.isYearDisabled(yearNode)) {
2592
+ return false;
2593
+ }
2594
+ /** @type {?} */
2595
+ var selectedMap = this.getFieldDaySelectionMap(this.field);
2596
+ /** @type {?} */
2597
+ var enabledDays = [];
2598
+ yearNode.months.forEach((/**
2599
+ * @param {?} monthNode
2600
+ * @return {?}
2601
+ */
2602
+ function (monthNode) {
2603
+ monthNode.days.forEach((/**
2604
+ * @param {?} dayNode
2605
+ * @return {?}
2606
+ */
2607
+ function (dayNode) {
2608
+ if (!dayNode.disabled) {
2609
+ enabledDays.push(dayNode.key);
2610
+ }
2611
+ }));
2612
+ }));
2613
+ /** @type {?} */
2614
+ var selectedCount = enabledDays.filter((/**
2615
+ * @param {?} key
2616
+ * @return {?}
2617
+ */
2618
+ function (key) { return !!selectedMap[key]; })).length;
2619
+ return selectedCount > 0 && selectedCount < enabledDays.length;
2620
+ };
2621
+ /**
2622
+ * @param {?} yearNode
2623
+ * @param {?} checked
2624
+ * @return {?}
2625
+ */
2626
+ DateTreeFilterPopoverComponent.prototype.toggleYear = /**
2627
+ * @param {?} yearNode
2628
+ * @param {?} checked
2629
+ * @return {?}
2630
+ */
2631
+ function (yearNode, checked) {
2632
+ var _this = this;
2633
+ if (this.isYearDisabled(yearNode)) {
2634
+ return;
2635
+ }
2636
+ yearNode.months.forEach((/**
2637
+ * @param {?} monthNode
2638
+ * @return {?}
2639
+ */
2640
+ function (monthNode) {
2641
+ _this.toggleMonth(monthNode, checked);
2642
+ }));
2643
+ };
2644
+ /**
2645
+ * @return {?}
2646
+ */
2647
+ DateTreeFilterPopoverComponent.prototype.clearSelection = /**
2648
+ * @return {?}
2649
+ */
2650
+ function () {
2651
+ if (this.field) {
2652
+ this.workingSelectedByField[this.field] = {};
2653
+ }
2654
+ this.apply.emit(this.cloneSelectionMap(this.workingSelectedByField));
2655
+ this.rebuildTree();
2656
+ };
2657
+ /**
2658
+ * @return {?}
2659
+ */
2660
+ DateTreeFilterPopoverComponent.prototype.applySelection = /**
2661
+ * @return {?}
2662
+ */
2663
+ function () {
2664
+ this.apply.emit(this.cloneSelectionMap(this.workingSelectedByField));
2665
+ this.closePopover();
2666
+ };
2667
+ /**
2668
+ * @private
2669
+ * @return {?}
2670
+ */
2671
+ DateTreeFilterPopoverComponent.prototype.rebuildTree = /**
2672
+ * @private
2673
+ * @return {?}
2674
+ */
2675
+ function () {
2676
+ var _this = this;
2677
+ if (!this.field) {
2678
+ this.years = [];
2679
+ return;
2680
+ }
2681
+ /** @type {?} */
2682
+ var sourceRows = this.sourceRows || [];
2683
+ /** @type {?} */
2684
+ var rowsByOtherFilters = this.filterRowsBySelectedDateTree(sourceRows, this.field);
2685
+ /** @type {?} */
2686
+ var availableDayKeyMap = {};
2687
+ rowsByOtherFilters.forEach((/**
2688
+ * @param {?} row
2689
+ * @return {?}
2690
+ */
2691
+ function (row) {
2692
+ /** @type {?} */
2693
+ var dayKey = _this.getDayKeyByRowValue(row[_this.field]);
2694
+ if (dayKey) {
2695
+ availableDayKeyMap[dayKey] = true;
2696
+ }
2697
+ }));
2698
+ /** @type {?} */
2699
+ var groupedMap = {};
2700
+ sourceRows.forEach((/**
2701
+ * @param {?} row
2702
+ * @return {?}
2703
+ */
2704
+ function (row) {
2705
+ /** @type {?} */
2706
+ var date = _this.parseDateValue(row[_this.field]);
2707
+ if (!date) {
2708
+ return;
2709
+ }
2710
+ /** @type {?} */
2711
+ var year = date.getFullYear();
2712
+ /** @type {?} */
2713
+ var month = date.getMonth() + 1;
2714
+ /** @type {?} */
2715
+ var day = date.getDate();
2716
+ if (!groupedMap[year]) {
2717
+ groupedMap[year] = {};
2718
+ }
2719
+ if (!groupedMap[year][month]) {
2720
+ groupedMap[year][month] = {};
2721
+ }
2722
+ if (!groupedMap[year][month][day]) {
2723
+ groupedMap[year][month][day] = 0;
2724
+ }
2725
+ groupedMap[year][month][day] += 1;
2726
+ }));
2727
+ /** @type {?} */
2728
+ var expandState = this.getOrCreateExpandState(this.field);
2729
+ this.years = Object.keys(groupedMap)
2730
+ .map((/**
2731
+ * @param {?} key
2732
+ * @return {?}
2733
+ */
2734
+ function (key) { return Number(key); }))
2735
+ .sort((/**
2736
+ * @param {?} a
2737
+ * @param {?} b
2738
+ * @return {?}
2739
+ */
2740
+ function (a, b) { return b - a; }))
2741
+ .map((/**
2742
+ * @param {?} year
2743
+ * @return {?}
2744
+ */
2745
+ function (year) {
2746
+ /** @type {?} */
2747
+ var months = Object.keys(groupedMap[year])
2748
+ .map((/**
2749
+ * @param {?} key
2750
+ * @return {?}
2751
+ */
2752
+ function (key) { return Number(key); }))
2753
+ .sort((/**
2754
+ * @param {?} a
2755
+ * @param {?} b
2756
+ * @return {?}
2757
+ */
2758
+ function (a, b) { return a - b; }))
2759
+ .map((/**
2760
+ * @param {?} month
2761
+ * @return {?}
2762
+ */
2763
+ function (month) {
2764
+ /** @type {?} */
2765
+ var monthKey = year + "-" + _this.pad2(month);
2766
+ if (expandState.months[monthKey] === undefined) {
2767
+ expandState.months[monthKey] = true;
2768
+ }
2769
+ /** @type {?} */
2770
+ var days = Object.keys(groupedMap[year][month])
2771
+ .map((/**
2772
+ * @param {?} key
2773
+ * @return {?}
2774
+ */
2775
+ function (key) { return Number(key); }))
2776
+ .sort((/**
2777
+ * @param {?} a
2778
+ * @param {?} b
2779
+ * @return {?}
2780
+ */
2781
+ function (a, b) { return a - b; }))
2782
+ .map((/**
2783
+ * @param {?} day
2784
+ * @return {?}
2785
+ */
2786
+ function (day) {
2787
+ /** @type {?} */
2788
+ var dayKey = _this.toDayKey(year, month, day);
2789
+ /** @type {?} */
2790
+ var dayDate = new Date(year, month - 1, day);
2791
+ return {
2792
+ key: dayKey,
2793
+ day: day,
2794
+ label: moment(dayDate).format("D MMM YYYY"),
2795
+ count: groupedMap[year][month][day],
2796
+ disabled: !availableDayKeyMap[dayKey],
2797
+ };
2798
+ }));
2799
+ return {
2800
+ key: monthKey,
2801
+ month: month,
2802
+ label: moment()
2803
+ .month(month - 1)
2804
+ .format("MMM"),
2805
+ expanded: !!expandState.months[monthKey],
2806
+ days: days,
2807
+ };
2808
+ }));
2809
+ /** @type {?} */
2810
+ var yearKey = String(year);
2811
+ if (expandState.years[yearKey] === undefined) {
2812
+ expandState.years[yearKey] = true;
2813
+ }
2814
+ return {
2815
+ key: yearKey,
2816
+ year: year,
2817
+ expanded: !!expandState.years[yearKey],
2818
+ months: months,
2819
+ };
2820
+ }));
2821
+ };
2822
+ /**
2823
+ * @private
2824
+ * @param {?} rows
2825
+ * @param {?=} excludeField
2826
+ * @return {?}
2827
+ */
2828
+ DateTreeFilterPopoverComponent.prototype.filterRowsBySelectedDateTree = /**
2829
+ * @private
2830
+ * @param {?} rows
2831
+ * @param {?=} excludeField
2832
+ * @return {?}
2833
+ */
2834
+ function (rows, excludeField) {
2835
+ var _this = this;
2836
+ /** @type {?} */
2837
+ var filteredRows = rows ? rows.slice() : [];
2838
+ (this.dateFields || []).forEach((/**
2839
+ * @param {?} field
2840
+ * @return {?}
2841
+ */
2842
+ function (field) {
2843
+ if (excludeField && field === excludeField) {
2844
+ return;
2845
+ }
2846
+ /** @type {?} */
2847
+ var selectedMap = _this.getFieldDaySelectionMap(field);
2848
+ /** @type {?} */
2849
+ var selectedKeys = Object.keys(selectedMap);
2850
+ if (!selectedKeys.length) {
2851
+ return;
2852
+ }
2853
+ filteredRows = filteredRows.filter((/**
2854
+ * @param {?} row
2855
+ * @return {?}
2856
+ */
2857
+ function (row) {
2858
+ /** @type {?} */
2859
+ var dayKey = _this.getDayKeyByRowValue(row[field]);
2860
+ return dayKey ? !!selectedMap[dayKey] : false;
2861
+ }));
2862
+ }));
2863
+ return filteredRows;
2864
+ };
2865
+ /**
2866
+ * @private
2867
+ * @param {?} value
2868
+ * @return {?}
2869
+ */
2870
+ DateTreeFilterPopoverComponent.prototype.parseDateValue = /**
2871
+ * @private
2872
+ * @param {?} value
2873
+ * @return {?}
2874
+ */
2875
+ function (value) {
2876
+ if (!value) {
2877
+ return null;
2878
+ }
2879
+ if (value instanceof Date) {
2880
+ return value;
2881
+ }
2882
+ /** @type {?} */
2883
+ var parsed = moment(value, [
2884
+ "YYYY-MM-DD",
2885
+ "MM/DD/YYYY",
2886
+ "DD/MM/YYYY",
2887
+ "YYYY/MM/DD",
2888
+ "DD-MMM-YYYY",
2889
+ "MMM DD, YYYY",
2890
+ moment.ISO_8601,
2891
+ ], true);
2892
+ if (parsed.isValid()) {
2893
+ return parsed.toDate();
2894
+ }
2895
+ /** @type {?} */
2896
+ var fallback = new Date(value);
2897
+ return isNaN(fallback.getTime()) ? null : fallback;
2898
+ };
2899
+ /**
2900
+ * @private
2901
+ * @param {?} field
2902
+ * @return {?}
2903
+ */
2904
+ DateTreeFilterPopoverComponent.prototype.getOrCreateExpandState = /**
2905
+ * @private
2906
+ * @param {?} field
2907
+ * @return {?}
2908
+ */
2909
+ function (field) {
2910
+ if (!this.expandStateByField[field]) {
2911
+ this.expandStateByField[field] = { years: {}, months: {} };
2912
+ }
2913
+ return this.expandStateByField[field];
2914
+ };
2915
+ /**
2916
+ * @private
2917
+ * @param {?} field
2918
+ * @return {?}
2919
+ */
2920
+ DateTreeFilterPopoverComponent.prototype.getFieldDaySelectionMap = /**
2921
+ * @private
2922
+ * @param {?} field
2923
+ * @return {?}
2924
+ */
2925
+ function (field) {
2926
+ if (!this.workingSelectedByField[field]) {
2927
+ this.workingSelectedByField[field] = {};
2928
+ }
2929
+ return this.workingSelectedByField[field];
2930
+ };
2931
+ /**
2932
+ * @private
2933
+ * @param {?} year
2934
+ * @param {?} month
2935
+ * @param {?} day
2936
+ * @return {?}
2937
+ */
2938
+ DateTreeFilterPopoverComponent.prototype.toDayKey = /**
2939
+ * @private
2940
+ * @param {?} year
2941
+ * @param {?} month
2942
+ * @param {?} day
2943
+ * @return {?}
2944
+ */
2945
+ function (year, month, day) {
2946
+ return year + "-" + this.pad2(month) + "-" + this.pad2(day);
2947
+ };
2948
+ /**
2949
+ * @private
2950
+ * @param {?} value
2951
+ * @return {?}
2952
+ */
2953
+ DateTreeFilterPopoverComponent.prototype.pad2 = /**
2954
+ * @private
2955
+ * @param {?} value
2956
+ * @return {?}
2957
+ */
2958
+ function (value) {
2959
+ return value < 10 ? "0" + value : String(value);
2960
+ };
2961
+ /**
2962
+ * @private
2963
+ * @param {?} value
2964
+ * @return {?}
2965
+ */
2966
+ DateTreeFilterPopoverComponent.prototype.getDayKeyByRowValue = /**
2967
+ * @private
2968
+ * @param {?} value
2969
+ * @return {?}
2970
+ */
2971
+ function (value) {
2972
+ /** @type {?} */
2973
+ var date = this.parseDateValue(value);
2974
+ if (!date) {
2975
+ return "";
2976
+ }
2977
+ return this.toDayKey(date.getFullYear(), date.getMonth() + 1, date.getDate());
2978
+ };
2979
+ /**
2980
+ * @private
2981
+ * @return {?}
2982
+ */
2983
+ DateTreeFilterPopoverComponent.prototype.getEnabledDayKeysInCurrentField = /**
2984
+ * @private
2985
+ * @return {?}
2986
+ */
2987
+ function () {
2988
+ /** @type {?} */
2989
+ var keys = [];
2990
+ this.years.forEach((/**
2991
+ * @param {?} yearNode
2992
+ * @return {?}
2993
+ */
2994
+ function (yearNode) {
2995
+ yearNode.months.forEach((/**
2996
+ * @param {?} monthNode
2997
+ * @return {?}
2998
+ */
2999
+ function (monthNode) {
3000
+ monthNode.days.forEach((/**
3001
+ * @param {?} dayNode
3002
+ * @return {?}
3003
+ */
3004
+ function (dayNode) {
3005
+ if (!dayNode.disabled) {
3006
+ keys.push(dayNode.key);
3007
+ }
3008
+ }));
3009
+ }));
3010
+ }));
3011
+ return keys;
3012
+ };
3013
+ /**
3014
+ * @private
3015
+ * @param {?} source
3016
+ * @return {?}
3017
+ */
3018
+ DateTreeFilterPopoverComponent.prototype.cloneSelectionMap = /**
3019
+ * @private
3020
+ * @param {?} source
3021
+ * @return {?}
3022
+ */
3023
+ function (source) {
3024
+ try {
3025
+ return source ? JSON.parse(JSON.stringify(source)) : {};
3026
+ }
3027
+ catch (e) {
3028
+ return {};
3029
+ }
3030
+ };
3031
+ DateTreeFilterPopoverComponent.decorators = [
3032
+ { type: Component, args: [{
3033
+ selector: "rs-date-tree-filter-popover",
3034
+ template: "<div class=\"date-tree-filter-popover\">\r\n <div class=\"popover-search\">\r\n <span class=\"search-icon\"><img src=\"/assets/img/search.svg\" alt=\"\" /></span>\r\n <input\r\n type=\"text\"\r\n [placeholder]=\"translation.SEARCH || '.SEARCH'\"\r\n [value]=\"keyword\"\r\n (input)=\"onKeywordChange($event.target.value)\"\r\n />\r\n </div>\r\n\r\n <div class=\"popover-tree\">\r\n <label class=\"tree-row all-row\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"isAllChecked()\"\r\n [indeterminate]=\"isAllIndeterminate()\"\r\n (change)=\"toggleAllDays($event.target.checked)\"\r\n />\r\n <span class=\"row-label\">{{ translation.ALL || '.ALL' }}</span>\r\n </label>\r\n\r\n <div class=\"year-block\" *ngFor=\"let yearNode of getVisibleYears()\">\r\n <div class=\"tree-row\">\r\n <button\r\n type=\"button\"\r\n class=\"tree-toggle-btn\"\r\n (click)=\"toggleYearExpanded(yearNode); $event.stopPropagation()\"\r\n >\r\n <span class=\"tree-arrow\" [ngClass]=\"{ expanded: yearNode.expanded }\"></span>\r\n </button>\r\n <input\r\n type=\"checkbox\"\r\n [disabled]=\"isYearDisabled(yearNode)\"\r\n [checked]=\"isYearChecked(yearNode)\"\r\n [indeterminate]=\"isYearIndeterminate(yearNode)\"\r\n (change)=\"toggleYear(yearNode, $event.target.checked)\"\r\n />\r\n <span class=\"row-label\">{{ yearNode.year }}</span>\r\n </div>\r\n\r\n <div class=\"month-block\" *ngIf=\"yearNode.expanded\">\r\n <div class=\"month-item\" *ngFor=\"let monthNode of yearNode.months\">\r\n <div class=\"tree-row\">\r\n <button\r\n type=\"button\"\r\n class=\"tree-toggle-btn\"\r\n (click)=\"toggleMonthExpanded(monthNode); $event.stopPropagation()\"\r\n >\r\n <span class=\"tree-arrow\" [ngClass]=\"{ expanded: monthNode.expanded }\"></span>\r\n </button>\r\n <input\r\n type=\"checkbox\"\r\n [disabled]=\"isMonthDisabled(monthNode)\"\r\n [checked]=\"isMonthChecked(monthNode)\"\r\n [indeterminate]=\"isMonthIndeterminate(monthNode)\"\r\n (change)=\"toggleMonth(monthNode, $event.target.checked)\"\r\n />\r\n <span class=\"row-label\">{{ monthNode.label }}</span>\r\n </div>\r\n\r\n <div class=\"day-block\" *ngIf=\"monthNode.expanded\">\r\n <label\r\n class=\"tree-row day-row\"\r\n *ngFor=\"let dayNode of monthNode.days\"\r\n [ngClass]=\"{ disabled: dayNode.disabled }\"\r\n >\r\n <span class=\"tree-toggle-spacer\"></span>\r\n <input\r\n type=\"checkbox\"\r\n [disabled]=\"dayNode.disabled\"\r\n [checked]=\"isDayChecked(dayNode)\"\r\n (change)=\"toggleDay(dayNode, $event.target.checked)\"\r\n />\r\n <span class=\"row-label\">{{ dayNode.label }}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"popover-footer\">\r\n <button type=\"button\" (click)=\"clearSelection()\">\r\n {{ translation.CLEAR || '.CLEAR' }}\r\n </button>\r\n <button type=\"button\" class=\"primary-btn\" (click)=\"applySelection()\">\r\n {{ translation.APPLY || '.APPLY' }}\r\n </button>\r\n </div>\r\n</div>\r\n",
3035
+ styles: [":host{position:fixed;left:12px;top:12px;z-index:20;width:300px}.date-tree-filter-popover{background:#fff;border:1px solid #eaedf0;border-radius:10px;box-shadow:0 0 4px rgba(0,0,0,.25);padding:4px 8px;display:flex;flex-direction:column;color:#44566c;font-family:Arial}.popover-search{position:relative;padding:4px 0 8px}.popover-search .search-icon{position:absolute;left:10px;top:10px;color:#929dab;font-size:12px;line-height:12px}.popover-search input{width:100%;height:28px;border:1px solid #eaedf0;border-radius:16px;padding:0 10px 0 28px;outline:0;font-size:12px;color:#44566c}.popover-tree{max-height:320px;overflow:auto;padding-right:2px}.tree-row{display:flex;align-items:center;min-height:24px;font-size:11px;line-height:14px;color:#44566c}.tree-row input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;margin:0 6px 0 0;box-sizing:border-box;border:1px solid #d8d8d8;border-radius:3px;background-color:#fff;cursor:pointer;vertical-align:middle;flex-shrink:0}.tree-row input[type=checkbox]:checked{border-color:#1f7bff;background-color:#1f7bff;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9' fill='none'%3E%3Cpath d='M0.5 4.31818L3 7.5L5.75 4L8.5 0.5' stroke='white' stroke-linecap='round'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;background-size:9px 9px}.tree-row input[type=checkbox]:indeterminate{border-color:#1f7bff;background-color:#1f7bff;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 9 9' fill='none'%3E%3Cpath d='M1.5 4.5H7.5' stroke='white' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center;background-size:9px 9px}.tree-row input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.all-row{padding-left:20px;margin-bottom:2px}.year-block{margin-bottom:2px}.month-block{padding-left:20px}.day-block{padding-left:24px}.tree-toggle-btn{width:16px;height:16px;padding:0;margin-right:4px;border:none;background:0 0;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.tree-arrow{display:inline-block;width:6px;height:6px;border-right:1px solid #6c7c90;border-bottom:1px solid #6c7c90;transform:rotate(-45deg);transition:transform .15s}.tree-arrow.expanded{transform:rotate(45deg)}.tree-toggle-spacer{width:20px;display:inline-block}.row-label{color:#44566c}.day-row.disabled .row-label{color:#adb5bd}.popover-footer{margin-top:8px;padding:12px 0 8px;border-top:1px solid #eaedf0;display:flex;justify-content:flex-end;gap:12px}.popover-footer button{min-width:56px;height:26px;padding:0 8px;border-radius:4px;border:1px solid #dbe1e7;background:#fff;font-size:11px;color:#44566c;cursor:pointer}.popover-footer .primary-btn{background:#1364b3;border-color:#1364b3;color:#fff}"]
3036
+ }] }
3037
+ ];
3038
+ DateTreeFilterPopoverComponent.propDecorators = {
3039
+ field: [{ type: Input }],
3040
+ translation: [{ type: Input }],
3041
+ sourceRows: [{ type: Input }],
3042
+ dateFields: [{ type: Input }],
3043
+ selectedByField: [{ type: Input }],
3044
+ fieldLabelMap: [{ type: Input }],
3045
+ apply: [{ type: Output }],
3046
+ close: [{ type: Output }]
3047
+ };
3048
+ return DateTreeFilterPopoverComponent;
3049
+ }());
3050
+ if (false) {
3051
+ /** @type {?} */
3052
+ DateTreeFilterPopoverComponent.prototype.field;
3053
+ /** @type {?} */
3054
+ DateTreeFilterPopoverComponent.prototype.translation;
3055
+ /** @type {?} */
3056
+ DateTreeFilterPopoverComponent.prototype.sourceRows;
3057
+ /** @type {?} */
3058
+ DateTreeFilterPopoverComponent.prototype.dateFields;
3059
+ /** @type {?} */
3060
+ DateTreeFilterPopoverComponent.prototype.selectedByField;
3061
+ /** @type {?} */
3062
+ DateTreeFilterPopoverComponent.prototype.fieldLabelMap;
3063
+ /** @type {?} */
3064
+ DateTreeFilterPopoverComponent.prototype.apply;
3065
+ /** @type {?} */
3066
+ DateTreeFilterPopoverComponent.prototype.close;
3067
+ /** @type {?} */
3068
+ DateTreeFilterPopoverComponent.prototype.keyword;
3069
+ /** @type {?} */
3070
+ DateTreeFilterPopoverComponent.prototype.years;
3071
+ /**
3072
+ * @type {?}
3073
+ * @private
3074
+ */
3075
+ DateTreeFilterPopoverComponent.prototype.expandStateByField;
3076
+ /**
3077
+ * @type {?}
3078
+ * @private
3079
+ */
3080
+ DateTreeFilterPopoverComponent.prototype.workingSelectedByField;
3081
+ }
3082
+
1164
3083
  /**
1165
3084
  * @fileoverview added by tsickle
1166
3085
  * Generated from: lib/float-box/index.component.ts
@@ -53639,6 +55558,7 @@ var RaiseCommonLibModule = /** @class */ (function () {
53639
55558
  CommonGridComponent,
53640
55559
  GridActionComponent,
53641
55560
  GridActionItemComponent,
55561
+ DateTreeFilterPopoverComponent,
53642
55562
  FloatBoxComponent,
53643
55563
  RsPageListComponent,
53644
55564
  RsPageTabComponent,
@@ -53825,6 +55745,7 @@ var RaiseCommonLibModule = /** @class */ (function () {
53825
55745
  CommonGridComponent,
53826
55746
  GridActionComponent,
53827
55747
  GridActionItemComponent,
55748
+ DateTreeFilterPopoverComponent,
53828
55749
  FloatBoxComponent,
53829
55750
  RsPageListComponent,
53830
55751
  RsPageTabComponent,
@@ -53891,5 +55812,5 @@ var RaiseCommonLibModule = /** @class */ (function () {
53891
55812
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
53892
55813
  */
53893
55814
 
53894
- export { API_SERVICE_TOKEN, CheckboxGroupComponent, CommonDialogComponent, CommonFunctionService, CommonGridComponent, DefaultDrawerConfig, DialogService, DrawerComponent, DrawerFormComponent, DrawerService, EmailPattern, EncryptedInputComponent, FloatBoxComponent, GridActionComponent, GridActionItemComponent, GridBoxComponent, IconLoaderService, KeepAliveService, MainContainerComponent, MessageType, MultiTabComponent, PBF_TOKEN, PaneGroupNewComponent, ROLE_SERVICE_TOKEN, RSAsideComponent, RSFooterComponent, RSHeaderComponent, RSNavCardGroupComponent, RSStepperComponent, RSToolbarComponent, RadioGroupComponent, RaiseCommonLibModule, RsCommentaryComponent, RsPageListComponent, RsPageTabComponent, SearchInputComponent, SmartPopupComponent, StaticResourceService, SwitchInputComponent, TagInputComponent, ToolbarItemComponent, TranslationService, TruncatedTextToggleComponent, filterShowSection, Debounce as ɵa, DashboardService as ɵb, ApiList as ɵc, DashboardPorletsService as ɵd, debounce as ɵe, RichtexteditorComponent as ɵf, ConfirmSelectComponent as ɵg, NewActionNotificationComponent as ɵh, CommonDeleteComponent as ɵi, SidebarIconlistNewComponent as ɵj, EmptyIconPromptComponent as ɵk, GadgetTableComponent as ɵl, GadgetPivotComponent as ɵm, GadgetPivotChartComponent as ɵn, GadgetTransposeComponent as ɵo, PortletTypeNewComponent as ɵp, FieldFilterComponent as ɵq, FieldFormatComponent as ɵr, DataMartNewComponent as ɵs, BarChartsComponent as ɵt, PaneDownloadComponent as ɵu };
55815
+ export { API_SERVICE_TOKEN, CheckboxGroupComponent, CommonDialogComponent, CommonFunctionService, CommonGridComponent, DATE_TREE_DEFAULT_DATE_FORMATS, DateTreeFilterHelper, DateTreeFilterPopoverComponent, DefaultDrawerConfig, DialogService, DrawerComponent, DrawerFormComponent, DrawerService, EmailPattern, EncryptedInputComponent, FloatBoxComponent, GridActionComponent, GridActionItemComponent, GridBoxComponent, IconLoaderService, KeepAliveService, MainContainerComponent, MessageType, MultiTabComponent, PBF_TOKEN, PaneGroupNewComponent, ROLE_SERVICE_TOKEN, RSAsideComponent, RSFooterComponent, RSHeaderComponent, RSNavCardGroupComponent, RSStepperComponent, RSToolbarComponent, RadioGroupComponent, RaiseCommonLibModule, RsCommentaryComponent, RsPageListComponent, RsPageTabComponent, SearchInputComponent, SmartPopupComponent, StaticResourceService, SwitchInputComponent, TagInputComponent, ToolbarItemComponent, TranslationService, TruncatedTextToggleComponent, createRsCommonGridDateTreeHelper, filterShowSection, Debounce as ɵa, DashboardService as ɵb, ApiList as ɵc, DashboardPorletsService as ɵd, debounce as ɵe, RichtexteditorComponent as ɵf, ConfirmSelectComponent as ɵg, NewActionNotificationComponent as ɵh, CommonDeleteComponent as ɵi, SidebarIconlistNewComponent as ɵj, EmptyIconPromptComponent as ɵk, GadgetTableComponent as ɵl, GadgetPivotComponent as ɵm, GadgetPivotChartComponent as ɵn, GadgetTransposeComponent as ɵo, PortletTypeNewComponent as ɵp, FieldFilterComponent as ɵq, FieldFormatComponent as ɵr, DataMartNewComponent as ɵs, BarChartsComponent as ɵt, PaneDownloadComponent as ɵu };
53895
55816
  //# sourceMappingURL=raise-common-lib.js.map