@tylertech/forge 2.20.1 → 2.21.1

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 (70) hide show
  1. package/custom-elements.json +51 -17
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/calendar/index.js +1 -1
  6. package/dist/esm/chunks/{chunk.K55FBLTW.js → chunk.2GDEYC4V.js} +2 -2
  7. package/dist/esm/chunks/{chunk.HGGP6G7L.js → chunk.43RHBWGI.js} +2 -2
  8. package/dist/esm/chunks/{chunk.ZWL2Q7E6.js → chunk.45KYMP5J.js} +2 -2
  9. package/dist/esm/chunks/{chunk.KNVCEYY2.js → chunk.5E2BG6O3.js} +2 -2
  10. package/dist/esm/chunks/{chunk.2VWASAUU.js → chunk.AIUIUCZH.js} +2 -2
  11. package/dist/esm/chunks/{chunk.AD4NVLFA.js → chunk.COS4RDZB.js} +2 -2
  12. package/dist/esm/chunks/chunk.DPZU5F27.js +7 -0
  13. package/dist/esm/chunks/chunk.DPZU5F27.js.map +7 -0
  14. package/dist/esm/chunks/chunk.F5LXG5X7.js +7 -0
  15. package/dist/esm/chunks/chunk.F5LXG5X7.js.map +7 -0
  16. package/dist/esm/chunks/chunk.PWHMNJ5Y.js +7 -0
  17. package/dist/esm/chunks/{chunk.WPJEXVHM.js.map → chunk.PWHMNJ5Y.js.map} +2 -2
  18. package/dist/esm/chunks/chunk.Q7HX26UO.js +7 -0
  19. package/dist/esm/chunks/chunk.Q7HX26UO.js.map +7 -0
  20. package/dist/esm/chunks/{chunk.O7IKUHRR.js → chunk.RD7SYOAI.js} +2 -2
  21. package/dist/esm/chunks/{chunk.4E4ZOFQI.js → chunk.TBSCULSM.js} +2 -2
  22. package/dist/esm/chunks/{chunk.4E4ZOFQI.js.map → chunk.TBSCULSM.js.map} +1 -1
  23. package/dist/esm/chunks/{chunk.4HWB754J.js → chunk.UQTJSPU4.js} +2 -2
  24. package/dist/esm/chunks/chunk.Y7YPNMPI.js +7 -0
  25. package/dist/esm/chunks/chunk.Y7YPNMPI.js.map +7 -0
  26. package/dist/esm/date-picker/index.js +1 -1
  27. package/dist/esm/date-range-picker/index.js +1 -1
  28. package/dist/esm/expansion-panel/index.js +1 -1
  29. package/dist/esm/index.js +1 -1
  30. package/dist/esm/menu/index.js +1 -1
  31. package/dist/esm/paginator/index.js +1 -1
  32. package/dist/esm/split-view/index.js +1 -1
  33. package/dist/esm/split-view/split-view/index.js +1 -1
  34. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  35. package/dist/esm/stepper/index.js +1 -1
  36. package/dist/esm/stepper/step/index.js +1 -1
  37. package/dist/esm/stepper/stepper/index.js +1 -1
  38. package/dist/esm/table/index.js +1 -1
  39. package/esm/calendar/calendar-foundation.js +2 -1
  40. package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -0
  41. package/esm/date-range-picker/date-range-picker-foundation.js +4 -0
  42. package/esm/expansion-panel/expansion-panel-adapter.js +0 -5
  43. package/esm/menu/menu-adapter.d.ts +3 -3
  44. package/esm/menu/menu-constants.d.ts +1 -1
  45. package/esm/menu/menu-foundation.d.ts +1 -0
  46. package/esm/menu/menu-foundation.js +11 -4
  47. package/esm/paginator/paginator-constants.d.ts +9 -0
  48. package/esm/paginator/paginator-foundation.d.ts +5 -2
  49. package/esm/paginator/paginator-foundation.js +29 -8
  50. package/esm/paginator/paginator.d.ts +3 -1
  51. package/esm/paginator/paginator.js +3 -0
  52. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  53. package/package.json +1 -1
  54. package/dist/esm/chunks/chunk.JOLJ7WVN.js +0 -7
  55. package/dist/esm/chunks/chunk.JOLJ7WVN.js.map +0 -7
  56. package/dist/esm/chunks/chunk.RH4E52PS.js +0 -7
  57. package/dist/esm/chunks/chunk.RH4E52PS.js.map +0 -7
  58. package/dist/esm/chunks/chunk.SZNMBPMR.js +0 -7
  59. package/dist/esm/chunks/chunk.SZNMBPMR.js.map +0 -7
  60. package/dist/esm/chunks/chunk.WPJEXVHM.js +0 -7
  61. package/dist/esm/chunks/chunk.XY3WCDVX.js +0 -7
  62. package/dist/esm/chunks/chunk.XY3WCDVX.js.map +0 -7
  63. /package/dist/esm/chunks/{chunk.K55FBLTW.js.map → chunk.2GDEYC4V.js.map} +0 -0
  64. /package/dist/esm/chunks/{chunk.HGGP6G7L.js.map → chunk.43RHBWGI.js.map} +0 -0
  65. /package/dist/esm/chunks/{chunk.ZWL2Q7E6.js.map → chunk.45KYMP5J.js.map} +0 -0
  66. /package/dist/esm/chunks/{chunk.KNVCEYY2.js.map → chunk.5E2BG6O3.js.map} +0 -0
  67. /package/dist/esm/chunks/{chunk.2VWASAUU.js.map → chunk.AIUIUCZH.js.map} +0 -0
  68. /package/dist/esm/chunks/{chunk.AD4NVLFA.js.map → chunk.COS4RDZB.js.map} +0 -0
  69. /package/dist/esm/chunks/{chunk.O7IKUHRR.js.map → chunk.RD7SYOAI.js.map} +0 -0
  70. /package/dist/esm/chunks/{chunk.4HWB754J.js.map → chunk.UQTJSPU4.js.map} +0 -0
@@ -86,10 +86,16 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
86
86
  return this._flatOptions.filter(o => !o.divider);
87
87
  }
88
88
  get _flatOptions() {
89
- if (isListDropdownOptionType(this._options, ListDropdownOptionType.Group)) {
90
- return this._options.reduce((previousValue, currentValue) => previousValue.concat(currentValue.options), []);
89
+ return this._flattenOptions(this._options);
90
+ }
91
+ _flattenOptions(options) {
92
+ if (isListDropdownOptionType(options, ListDropdownOptionType.Group)) {
93
+ return options
94
+ .reduce((previousValue, currentValue) => {
95
+ return currentValue.options ? previousValue.concat(currentValue.options) : previousValue;
96
+ }, []);
91
97
  }
92
- return this._options;
98
+ return options;
93
99
  }
94
100
  _onTargetClick(evt) {
95
101
  if (this._open) {
@@ -283,7 +289,8 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
283
289
  return Promise.resolve(this._optionsFactory())
284
290
  .then(results => {
285
291
  if (!this._persistSelection) {
286
- results.forEach(o => o.selected = false);
292
+ const flatResults = this._flattenOptions(results);
293
+ flatResults.filter(o => o.selected).forEach(o => o.selected = false);
287
294
  }
288
295
  if (this._open) {
289
296
  if (results && isArray(results) && results.length) {
@@ -72,3 +72,12 @@ export interface IPaginatorChangeEvent {
72
72
  pageIndex: number;
73
73
  offset: number;
74
74
  }
75
+ export interface IPaginatorRangeState {
76
+ pageSize: number;
77
+ pageIndex: number;
78
+ offset: number;
79
+ pageStart: number;
80
+ pageEnd: number;
81
+ total: number;
82
+ }
83
+ export declare type PaginatorRangeLabelBuilder = ((state: IPaginatorRangeState) => string) | undefined | null;
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { ICustomElementFoundation } from '@tylertech/forge-core';
7
7
  import { IPaginatorAdapter } from './paginator-adapter';
8
- import { PaginatorAlternativeAlignment } from './paginator-constants';
8
+ import { PaginatorAlternativeAlignment, PaginatorRangeLabelBuilder } from './paginator-constants';
9
9
  export interface IPaginatorFoundation extends ICustomElementFoundation {
10
10
  pageIndex: number;
11
11
  pageSize: number;
@@ -13,6 +13,7 @@ export interface IPaginatorFoundation extends ICustomElementFoundation {
13
13
  total: number;
14
14
  pageSizeOptions: number[] | boolean;
15
15
  pageSizeLabel: string;
16
+ rangeLabelCallback: PaginatorRangeLabelBuilder;
16
17
  focus(options?: FocusOptions): void;
17
18
  }
18
19
  export declare class PaginatorFoundation {
@@ -28,7 +29,7 @@ export declare class PaginatorFoundation {
28
29
  private _disabled;
29
30
  private _alternative;
30
31
  private _alignment;
31
- private _rangeLabel;
32
+ private _rangeLabelCallback;
32
33
  private _firstPageListener;
33
34
  private _previousPageListener;
34
35
  private _nextPageListener;
@@ -84,4 +85,6 @@ export declare class PaginatorFoundation {
84
85
  set alternative(value: boolean);
85
86
  get alignment(): PaginatorAlternativeAlignment;
86
87
  set alignment(value: PaginatorAlternativeAlignment);
88
+ get rangeLabelCallback(): PaginatorRangeLabelBuilder;
89
+ set rangeLabelCallback(value: PaginatorRangeLabelBuilder);
87
90
  }
@@ -118,17 +118,31 @@ export class PaginatorFoundation {
118
118
  return Math.ceil(this._total / this._pageSize) - 1;
119
119
  }
120
120
  _updateRangeLabel() {
121
- if (this.pageSize > 1) {
122
- const startIndex = this._pageIndex * this._pageSize;
123
- const indexStart = Math.floor(startIndex / this._pageSize) || 0;
124
- const pageStart = (indexStart * this._pageSize) + 1;
125
- const pageEnd = startIndex < this._total ? Math.min(startIndex + this._pageSize, this._total) : startIndex + this._pageSize;
126
- this._rangeLabel = `${pageStart}-${pageEnd} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;
121
+ let rangeLabel;
122
+ if (typeof this._rangeLabelCallback === 'function') {
123
+ const state = {
124
+ pageSize: this._pageSize,
125
+ pageIndex: this._pageIndex,
126
+ offset: this._offset,
127
+ pageStart: (this._pageIndex * this._pageSize) + 1,
128
+ pageEnd: Math.min((this._pageIndex + 1) * this._pageSize, this._total),
129
+ total: this._total
130
+ };
131
+ rangeLabel = this._rangeLabelCallback.call(null, state);
127
132
  }
128
133
  else {
129
- this._rangeLabel = `${this._pageIndex + 1} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;
134
+ if (this.pageSize > 1) {
135
+ const startIndex = this._pageIndex * this._pageSize;
136
+ const indexStart = Math.floor(startIndex / this._pageSize) || 0;
137
+ const pageStart = (indexStart * this._pageSize) + 1;
138
+ const pageEnd = startIndex < this._total ? Math.min(startIndex + this._pageSize, this._total) : startIndex + this._pageSize;
139
+ rangeLabel = `${pageStart}-${pageEnd} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;
140
+ }
141
+ else {
142
+ rangeLabel = `${this._pageIndex + 1} ${PAGINATOR_CONSTANTS.strings.RANGE_SEPARATOR_LABEL} ${this._total}`;
143
+ }
130
144
  }
131
- this._adapter.setRangeLabel(this._rangeLabel);
145
+ this._adapter.setRangeLabel(rangeLabel);
132
146
  }
133
147
  _syncInteractionState() {
134
148
  this._adapter.enableFirstPageButton();
@@ -379,4 +393,11 @@ export class PaginatorFoundation {
379
393
  this._applyAlternativeAlignment();
380
394
  }
381
395
  }
396
+ get rangeLabelCallback() {
397
+ return this._rangeLabelCallback;
398
+ }
399
+ set rangeLabelCallback(value) {
400
+ this._rangeLabelCallback = value;
401
+ this._updateRangeLabel();
402
+ }
382
403
  }
@@ -3,7 +3,7 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { PaginatorAlternativeAlignment, IPaginatorChangeEvent } from './paginator-constants';
6
+ import { PaginatorAlternativeAlignment, IPaginatorChangeEvent, PaginatorRangeLabelBuilder } from './paginator-constants';
7
7
  import { BaseComponent, IBaseComponent } from '../core/base/base-component';
8
8
  export interface IPaginatorComponent extends IBaseComponent {
9
9
  pageIndex: number;
@@ -17,6 +17,7 @@ export interface IPaginatorComponent extends IBaseComponent {
17
17
  disabled: boolean;
18
18
  alternative: boolean;
19
19
  alignment: PaginatorAlternativeAlignment;
20
+ rangeLabelCallback: PaginatorRangeLabelBuilder;
20
21
  }
21
22
  declare global {
22
23
  interface HTMLElementTagNameMap {
@@ -56,5 +57,6 @@ export declare class PaginatorComponent extends BaseComponent implements IPagina
56
57
  disabled: boolean;
57
58
  alternative: boolean;
58
59
  alignment: PaginatorAlternativeAlignment;
60
+ rangeLabelCallback: PaginatorRangeLabelBuilder;
59
61
  focus(options?: FocusOptions): void;
60
62
  }
@@ -126,6 +126,9 @@ __decorate([
126
126
  __decorate([
127
127
  FoundationProperty()
128
128
  ], PaginatorComponent.prototype, "alignment", void 0);
129
+ __decorate([
130
+ FoundationProperty()
131
+ ], PaginatorComponent.prototype, "rangeLabelCallback", void 0);
129
132
  PaginatorComponent = __decorate([
130
133
  CustomElement({
131
134
  name: PAGINATOR_CONSTANTS.elementName,
@@ -14,7 +14,7 @@ import { SplitViewPanelAdapter } from './split-view-panel-adapter';
14
14
  import { IconComponent, IconRegistry } from '../../icon';
15
15
  import { RippleComponent } from '../../ripple';
16
16
  const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-ripple id=\"ripple\" part=\"ripple\"></forge-ripple></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
17
- const styles = '@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-split-view-panel{display:-webkit-box;display:flex;width:100%;height:100%;overflow:hidden;contain:paint size}.forge-split-view-panel__handle{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,.54));background-color:#e0e0e0;background-color:var(--forge-theme-border-color,#e0e0e0);display:-webkit-box;display:flex;flex-shrink:0;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;outline:0}.forge-split-view-panel__content{-webkit-box-flex:1;flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:8px;min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:8px;width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:unhqqyb;animation-name:unhqqyb;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes unhqqyb{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes unhqqyb{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:unhqqyf;animation-name:unhqqyf;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes unhqqyf{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes unhqqyf{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:unhqqyw;animation-name:unhqqyw;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes unhqqyw{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes unhqqyw{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:unhqqzk;animation-name:unhqqzk;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes unhqqzk{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes unhqqzk{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:8px;min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:8px;height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:unhqqzz;animation-name:unhqqzz;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes unhqqzz{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes unhqqzz{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:unhqr00;animation-name:unhqr00;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes unhqr00{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes unhqr00{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:unhqr0e;animation-name:unhqr0e;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes unhqr0e{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes unhqr0e{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:unhqr13;animation-name:unhqr13;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes unhqr13{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes unhqr13{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;-webkit-box-flex:0;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){-webkit-box-flex:1;flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}';
17
+ const styles = '@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-split-view-panel{display:-webkit-box;display:flex;width:100%;height:100%;overflow:hidden;contain:paint size}.forge-split-view-panel__handle{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,.54));background-color:#e0e0e0;background-color:var(--forge-theme-border-color,#e0e0e0);display:-webkit-box;display:flex;flex-shrink:0;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;outline:0}.forge-split-view-panel__content{-webkit-box-flex:1;flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:8px;min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:8px;width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uutjpx6;animation-name:uutjpx6;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uutjpx6{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes uutjpx6{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:uutjpxb;animation-name:uutjpxb;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uutjpxb{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes uutjpxb{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uutjpxp;animation-name:uutjpxp;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uutjpxp{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes uutjpxp{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:uutjpyk;animation-name:uutjpyk;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uutjpyk{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes uutjpyk{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:8px;min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:8px;height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uutjpyl;animation-name:uutjpyl;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uutjpyl{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes uutjpyl{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:uutjpzl;animation-name:uutjpzl;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uutjpzl{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes uutjpzl{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uutjpzq;animation-name:uutjpzq;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uutjpzq{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes uutjpzq{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:uutjq0i;animation-name:uutjq0i;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uutjq0i{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes uutjq0i{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;-webkit-box-flex:0;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){-webkit-box-flex:1;flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}';
18
18
  /**
19
19
  * The custom element class behind the `<forge-split-view-panel>` element.
20
20
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tylertech/forge",
3
3
  "description": "Tyler Forge™ Web Components library",
4
- "version": "2.20.1",
4
+ "version": "2.21.1",
5
5
  "author": "Tyler Technologies, Inc.",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2023 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- import{a as z,b as B,c as H,d as K,e as U}from"./chunk.QZ2NXIGY.js";import{E as S}from"./chunk.WPJEXVHM.js";import{F as O}from"./chunk.44WDRTRR.js";import{a}from"./chunk.YPZNIYQL.js";import{a as _}from"./chunk.NMKDIHFB.js";import{e as v}from"./chunk.DONAMICM.js";import{e as w}from"./chunk.3C44DXZ2.js";import{b as N}from"./chunk.RLWX5BFQ.js";import{l as A}from"./chunk.MZLPUI6R.js";import{a as V}from"./chunk.YI4JTY4T.js";import{d as R,l as x}from"./chunk.IWICN773.js";import{a as L}from"./chunk.2KXSGD3S.js";import{b as T}from"./chunk.FVRSGKJD.js";import{e as p}from"./chunk.U6WGJELL.js";import{a as E}from"./chunk.KTGSZEAG.js";import{a as M,b as F}from"./chunk.QOA2O575.js";import{a as y,e as P,i as D}from"./chunk.HOXFK44F.js";import{s as k}from"./chunk.4LA6HEA7.js";import{f as g,g as b}from"./chunk.J2M2MXP2.js";import{f as h}from"./chunk.MCIQXNKY.js";var d=`${F}date-range-picker`,l=class{constructor(r){r&&(this.from=r.from,this.to=r.to)}copy(){return new l(this)}},q={FROM:"from",TO:"to",END_VALUE:"end-value"},G={INPUT:"input"},W={CHANGE:`${d}-change`,OPEN:`${d}-open`,CLOSE:`${d}-close`,INPUT:`${d}-input`},n={elementName:d,selectors:G,events:W,observedAttributes:q};var m=class extends K{constructor(t){super(t);this._dropdownIdentifier=`forge-date-range-picker-${this._identifier}`}_initializeInput(){if(this._fromInputElement=this._component.querySelectorAll(n.selectors.INPUT)[0],this._toInputElement=this._component.querySelectorAll(n.selectors.INPUT)[1],!this._fromInputElement||!this._fromInputElement)throw new Error(`The ${n.elementName} requires two inputs`)}_initializeCalendarDropdown(){let t=this._getDefaultTargetElement();this._calendarDropdown=new O(t,this._dropdownIdentifier)}initializeMask(t){var e;(e=this._fromInputMask)==null||e.destroy(),this._fromInputMask=new T(this._fromInputElement,t)}destroyMask(){var t;(t=this._fromInputMask)==null||t.destroy(),this._fromInputMask=void 0}initializeToMask(t){var e;(e=this._toInputMask)==null||e.destroy(),this._toInputMask=new T(this._toInputElement,t)}destroyToMask(){var t;(t=this._toInputMask)==null||t.destroy(),this._toInputMask=void 0}destroy(){super.destroy(),this._destroyToValueChangeListener()}_destroyToValueChangeListener(){typeof this._toValueChangeListener=="function"&&this._toValueChangeListener()}initializeAccessibility(){this._applyToInputs(t=>t.setAttribute("autocomplete","off")),this._applyToInputs(t=>t.setAttribute("autocorrect","off")),this._applyToInputs(t=>t.setAttribute("autocapitalize","off")),this._applyToInputs(t=>t.setAttribute("spellcheck","false")),this._applyToInputs(t=>t.setAttribute("role","combobox")),this._applyToInputs(t=>t.setAttribute("aria-live","assertive")),this._applyToInputs(t=>t.setAttribute("aria-atomic","true")),this._applyToInputs(t=>t.setAttribute("aria-haspopup","true")),this._applyToInputs(t=>t.setAttribute("aria-expanded","false")),this._applyToInputs(t=>t.setAttribute("aria-owns",this._dropdownIdentifier))}addInputListener(t,e,i){var o;(o=this._fromInputElement)==null||o.addEventListener(t,e,{capture:i})}addToInputListener(t,e,i){var o;(o=this._toInputElement)==null||o.addEventListener(t,e,{capture:i})}removeInputListener(t,e){var i;(i=this._fromInputElement)==null||i.removeEventListener(t,e)}removeToInputListener(t,e){var i;(i=this._toInputElement)==null||i.removeEventListener(t,e)}setInputValueChangedListener(t,e){this._valueChangeListeners.length&&this.destroyValueChangeListener();let i=v(t,this._fromInputElement,"value",e);this._valueChangeListeners.push(i)}setToInputValueChangedListener(t,e){this._destroyToValueChangeListener(),this._toValueChangeListener=v(t,this._toInputElement,"value",e)}hasInputElement(){return!!this._fromInputElement&&!!this._toInputElement}attachCalendar(t,e){super.attachCalendar(t,e),this._fromInputElement.setAttribute("aria-expanded","true")}detachCalendar(){super.detachCalendar(),this._fromInputElement&&(this._fromInputElement.setAttribute("aria-expanded","false"),this._fromInputElement.removeAttribute("aria-activedescendant"))}setActiveDescendant(t){this._fromInputElement.setAttribute("aria-activedescendant",t)}setInputValue(t,e){this._fromInputElement.value!==t&&(this._fromInputElement.value=t,this._fromInputMask&&this._fromInputMask.updateMask(),e&&(this._fromInputElement.dispatchEvent(new Event("change")),this._fromInputElement.dispatchEvent(new Event("input"))))}setToInputValue(t,e){this._toInputElement.value!==t&&(this._toInputElement.value=t,this._toInputMask&&this._toInputMask.updateMask(),e&&(this._toInputElement.dispatchEvent(new Event("change")),this._toInputElement.dispatchEvent(new Event("input"))))}isInputDisabled(){return this._fromInputElement.disabled}isInputFocused(t){if(t&&this._toInputElement===t||this._fromInputElement===t)return!0;let e=k(this._component.ownerDocument);return this._toInputElement===e||this._fromInputElement===e}getInputValue(){return this._fromInputElement.value}getToInputValue(){return this._toInputElement.value}setDisabled(t){this._fromInputElement.disabled=t,this._toInputElement.disabled=t,this._toInputElement.setAttribute("aria-disabled",t.toString()),this._fromInputElement.setAttribute("aria-disabled",t.toString()),this._toggleElement&&(this._toggleElement.setAttribute("aria-disabled",t.toString()),this._toggleElement.hasOwnProperty("disabled")&&(this._toggleElement.disabled=t))}emitInputEvent(t,e){D(this._fromInputElement,t,e)}emitToInputEvent(t,e){D(this._toInputElement,t,e)}_createToggleElement(){return H("date_range")}tryFocusInput(){this._fromInputElement.focus()}tryBlurInput(){this._fromInputElement.blur()}selectInputText(){this._fromInputElement.select()}selectToInputText(){this._toInputElement.select()}_applyToInputs(t){[this._fromInputElement,this._toInputElement].forEach(t)}};var c=class extends U{constructor(t){super(t);this._mode="range";this._from=null;this._to=null;this._toInputListener=e=>this._onToInput(e),this._toInputValueChangedListener=e=>this._onToInputValueChanged(e),this._toInputKeydownListener=e=>this._onInputKeydown(e),this._toInputFocusListener=e=>this._onToInputFocus(),this._toInputBlurListener=e=>this._onToInputBlur(e)}_initializeState(){this._applyToMask(),this._from||(this._from=this._coerceDateValue(this._adapter.getInputValue())),this._to||(this._to=this._coerceDateValue(this._adapter.getToInputValue()))}_initializeListeners(){super._initializeListeners(),this._adapter.addToInputListener("keydown",this._toInputKeydownListener),this._adapter.addToInputListener("focus",this._toInputFocusListener),this._adapter.addToInputListener("blur",this._toInputBlurListener)}_initializeValueChangedListeners(){super._initializeValueChangedListeners(),this._adapter.setToInputValueChangedListener(this,this._toInputValueChangedListener)}_setInputChangeListeners(){super._setInputChangeListeners(),this._adapter.addToInputListener("input",this._toInputListener)}_removeInputChangeListeners(){super._removeInputChangeListeners(),this._adapter.removeToInputListener("input",this._toInputListener)}_openCalendar(t){this._formatToInputValue(),super._openCalendar(t);let e=this._getCurrentValue();e!=null&&e.to?this._adapter.goToCalendarDate(new Date(e.to)):e!=null&&e.from&&this._adapter.goToCalendarDate(new Date(e.from))}_emitChangeEvent(t,e){let i=this._getTypedValue(t&&t.from||null),o=this._getTypedValue(t&&t.to||null),u=new l({from:i,to:o});return this._adapter.emitHostEvent(n.events.CHANGE,u,!0,!e)?(this._setValue(this._coerceDateValue(t&&t.from||null)),this._setToValue(this._coerceDateValue(t&&t.to||null)),!0):!1}_emitOpenEvent(){this._adapter.emitHostEvent(n.events.OPEN,void 0,!1)}_emitCloseEvent(){this._adapter.emitHostEvent(n.events.CLOSE,void 0,!1)}_onToday(){let t=new Date,e=this._open?new a({from:this._from||t,to:this._to||void 0}):new a({from:t});!this._isDateRangeAcceptable(e)||(this.value=e,this._onDateSelected({date:t,range:e,selected:!0,type:"date"}),this._adapter.setCalendarActiveDate(t))}_onClear(){this._onDateSelected({date:null,range:new a,selected:!1,type:"date"}),this._closeCalendar(!0)}_getCurrentValue(){return this._value}_applyToMask(){this._masked?this._initializeToMask():(this._adapter.destroyToMask(),this._formatToInputValue())}_formatToInputValue(){let t=this._adapter.getToInputValue();if(t){let e=this._parseDateString(t);if(b(e)&&this._isDateValueAcceptable(e)){let i=this._formatDate(e);i&&this._adapter.setToInputValue(i,this._notifyInputValueChanges)}else this._allowInvalidDate||this._adapter.setToInputValue("",this._notifyInputValueChanges)}}_setFormattedInputValue(t){let e=this._formatDate(this._from);!e&&!this._allowInvalidDate&&(e=""),this._adapter.setInputValue(e,t?!1:this._notifyInputValueChanges)}_setFormattedToInputValue(t){let e=this._formatDate(this._to);!e&&!this._allowInvalidDate&&(e=""),this._adapter.setToInputValue(e,t?!1:this._notifyInputValueChanges)}_isDateRangeAcceptable(t){if(!(t!=null&&t.to))return!0;let e=()=>this._isDateValueAcceptable(t.from),i=()=>this._isDateValueAcceptable(t.to),o=()=>(t==null?void 0:t.from)&&(t==null?void 0:t.to)?t.from.getTime()<=t.to.getTime():!0;return e()&&i()&&o()}_setValue(t){this._isDateValueAcceptable(t)&&(this._from=t||null,this._value?this._value.from=this._from:this._value={from:this._from,to:this._to})}_setToValue(t){this._isDateValueAcceptable(t)&&(this._to=t||null,this._value?this._value.to=this._to:this._value={from:this._from,to:this._to})}_onDateSelected(t){let e=t.range;if(t.rangeSelectionState==="to"&&this._closeCalendar(!0),!this._emitChangeEvent(e!=null?e:null))return;let i=this._formatDate(e&&e.from||null),o=this._formatDate(e&&e.to||null);this._adapter.setInputValue(i,this._notifyInputValueChanges),this._adapter.setToInputValue(o,this._notifyInputValueChanges),this._formatInputValue(),this._formatToInputValue(),this._from=e&&e.from||null,this._to=e&&e.to||null,V.isMobile||(o?this._adapter.selectToInputText():this._adapter.selectInputText())}_applyMin(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue()),super._applyMin()}_applyMax(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue()),super._applyMax()}_initializeToMask(){if(!this._masked)return;let t={showMaskFormat:this._showMaskFormat&&this._adapter.isInputFocused(),pattern:this._maskFormat,onChange:e=>this._handleToInput(e)};this._prepareMaskCallback&&(t.prepareCallback=(e,i,o,u)=>this._prepareMaskCallback.call(null,e,i,o,u)),this._adapter.initializeToMask(t)}_applyDisabledDates(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(new a({to:this._to||void 0}),!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(new a({from:this._from||void 0}),!0),this._setFormattedToInputValue())}_applyDisabledDaysOfWeek(){this._from&&!this._isDateValueAcceptable(this._from)&&(this._emitChangeEvent(null,!0),this._setFormattedInputValue()),this._to&&!this._isDateValueAcceptable(this._to)&&(this._emitChangeEvent(null,!0),this._setFormattedToInputValue())}_onToInput(t){this._handleInput(this._adapter.getInputValue())}_handleInput(t){let e=this._getSanitizedDateString(t),i=this._coerceDateValue(e);this._masked&&this._adapter.emitInputEvent(n.events.INPUT,e),!p(i,this._from)&&this._isDateValueAcceptable(i)&&this._emitChangeEvent(new a({from:i||void 0,to:this._to||void 0}))}_handleToInput(t){let e=this._getSanitizedDateString(t),i=this._coerceDateValue(e);this._masked&&this._adapter.emitToInputEvent(n.events.INPUT,e),!p(i,this._to)&&this._isDateValueAcceptable(i)&&this._emitChangeEvent(new a({from:this._from||void 0,to:i||void 0}))}_onToInputFocus(){this.masked&&this._showMaskFormat&&(this._initializeMask(),this._initializeToMask()),this._adapter.selectToInputText()}_onToInputBlur(t){this._masked&&!this._adapter.isInputFocused(t.relatedTarget)&&(this._initializeMask(),this._initializeToMask()),this._formatToInputValue(),this._open&&this._closeCalendar(!0)}_onInputFocus(t){this.masked&&this._showMaskFormat&&(this._initializeMask(),this._initializeToMask()),this._adapter.selectInputText()}_onInputBlur(t){this.masked&&!this._adapter.isInputFocused(t.relatedTarget)&&(this._initializeMask(),this._initializeToMask()),this._formatInputValue(),this._open&&!this._adapter.isInputFocused(t.relatedTarget)&&this._closeCalendar(!0)}_onInputValueChanged(t){if(this._masked)return;let e=this._getSanitizedDateString(t),i=this._coerceDateValue(e);p(i,this._from)||(this.from=i,this._emitChangeEvent(new a({from:i||void 0,to:this._to||void 0})))}_onToInputValueChanged(t){if(this._masked)return;let e=this._getSanitizedDateString(t),i=this._coerceDateValue(e);p(i,this._to)||(this.to=i,this._emitChangeEvent(new a({from:this._from||void 0,to:i||void 0})))}get value(){return{from:this.from,to:this.to}}set value(t){t||(t={from:null,to:null}),t.from===void 0&&(t.from=null),t.to===void 0&&(t.to=null),this.from=t.from,this.to=t.to,this._value={from:this.from,to:this.to}}get from(){let t=this._getTypedValue(this._from);return t?g(t)?new Date(t.getTime()):t:null}set from(t){this._from!==t&&(this._setValue(this._coerceDateValue(t)),this._isInitialized&&(this._setFormattedInputValue(),this._open&&this._adapter.setCalendarValue(new a({from:this._coerceDateValue(t)||void 0,to:this._coerceDateValue(this._to)||void 0}))))}get to(){let t=this._getTypedValue(this._to);return t?g(t)?new Date(t.getTime()):t:null}set to(t){this._to!==t&&(this._setToValue(this._coerceDateValue(t)),this._isInitialized&&(this._setFormattedToInputValue(),this._open&&this._adapter.setCalendarValue(new a({to:this._coerceDateValue(t)||void 0,from:this._coerceDateValue(this._from)||void 0}))))}};var X="<template><slot></slot></template>",j=":host{display:block}:host([hidden]){display:none}",s=class extends B{constructor(){super();R.define(A),P(this,X,j),this._foundation=new c(new m(this))}static get observedAttributes(){return[...Object.values(z.observedAttributes),n.observedAttributes.FROM,n.observedAttributes.TO]}attributeChangedCallback(t,e,i){switch(t){case n.observedAttributes.FROM:this.from=i;return;case n.observedAttributes.TO:this.to=i;return}super.attributeChangedCallback(t,e,i)}};h([E()],s.prototype,"from",2),h([E()],s.prototype,"to",2),s=h([M({name:n.elementName,dependencies:[w,S,N,x]})],s);var $=class extends L{constructor(t){super(t)}_build(){let t=document.createElement(n.elementName);return this._attachTextField(t),t}get fromInput(){return this._textField.querySelector(`input[${_.attributes.MULTI_INPUT}-0]`)}get toInput(){return this._textField.querySelector(`input[${_.attributes.MULTI_INPUT}-1]`)}get textField(){return this._textField}get value(){return this._element.value}set value(t){this._element.value=t}get disabled(){return this._element.disabled}set disabled(t){this._element.disabled=t}get invalid(){return this._textField.invalid||!1}set invalid(t){this._textField.invalid=t}onChange(t){this._element.addEventListener(n.events.CHANGE,e=>t(e.detail))}onFocus(t){this._element.addEventListener("focusin",e=>{!this._element.contains(e.relatedTarget)&&t(e)})}onBlur(t){this._element.addEventListener("focusout",e=>{!this._element.contains(e.relatedTarget)&&t(e)})}_attachTextField(t){var i,o,u,I,C;this._textField=document.createElement(_.elementName),(i=this._config.options)!=null&&i.required&&(this._textField.required=!0),(o=this._config.options)!=null&&o.density&&(this._textField.density=this._config.options.density),this._fromInput=document.createElement("input"),this._fromInput.type="text",this._fromInput.placeholder=((u=this._config.options)==null?void 0:u.fromPlaceholder)||"From",this._textField.appendChild(this._fromInput),this._toInput=document.createElement("input"),this._toInput.type="text",this._toInput.placeholder=((I=this._config.options)==null?void 0:I.toPlaceholder)||"To",this._textField.appendChild(this._toInput);let e=document.createElement("label");e.textContent=((C=this._config.options)==null?void 0:C.label)||"Choose date range",this._textField.appendChild(e),t.appendChild(this._textField)}};function $t(){y(s)}export{l as a,n as b,m as c,c as d,s as e,$ as f,$t as g};
7
- //# sourceMappingURL=chunk.JOLJ7WVN.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/date-range-picker/date-range-picker-constants.ts", "../../src/date-range-picker/date-range-picker-adapter.ts", "../../src/date-range-picker/date-range-picker-foundation.ts", "../../src/date-range-picker/date-range-picker.ts", "../../src/date-range-picker/date-range-picker-component-delegate.ts", "../../src/date-range-picker/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}date-range-picker`;\n\nexport class DatePickerRange implements IDatePickerRange {\n public from?: Date | string | null;\n public to?: Date | string | null;\n constructor(range?: IDatePickerRange) {\n if (range) {\n this.from = range.from;\n this.to = range.to;\n }\n }\n\n public copy(): DatePickerRange {\n return new DatePickerRange(this);\n }\n}\n\nexport interface IDatePickerRange {\n from?: Date | string | null;\n to?: Date | string | null;\n}\n\nconst observedAttributes = {\n FROM: 'from',\n TO: 'to',\n END_VALUE: 'end-value'\n};\n\nconst selectors = {\n INPUT: 'input'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n INPUT: `${elementName}-input`\n};\n\nexport const DATE_RANGE_PICKER_CONSTANTS = {\n elementName,\n selectors,\n events,\n observedAttributes\n};\n\n\nexport interface IDateRangePickerChangeEventData extends DatePickerRange {}\n", "import { emitEvent, listenOwnProperty, getActiveElement } from '@tylertech/forge-core';\nimport { CalendarDropdown, ICalendarDropdownPopupConfig } from '../calendar/calendar-dropdown';\nimport { DateInputMask, IDateInputMaskOptions } from '../core';\nimport { BaseDatePickerAdapter, IBaseDatePickerAdapter } from '../date-picker/base/base-date-picker-adapter';\nimport { IDatePickerCalendarDropdownConfig } from '../date-picker/base/base-date-picker-constants';\nimport { createToggleElement } from '../date-picker/base/base-date-picker-utils';\nimport { DateRangePickerComponent, IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS } from './date-range-picker-constants';\n\nexport interface IDateRangePickerAdapter extends IBaseDatePickerAdapter {\n initializeToMask(toOptions: IDateInputMaskOptions): void;\n addToInputListener(type: string, listener: (event: Event) => void): void;\n removeToInputListener(type: string, listener: (event: Event) => void): void;\n setToInputValueChangedListener(context: any, listener: (value: any) => void): void;\n getToInputValue(): string;\n setToInputValue(value: string, emitEvents: boolean): void;\n emitInputEvent(type: string, data?: any): void;\n emitToInputEvent(type: string, data?: any): void;\n tryFocusInput(): void;\n tryBlurInput(): void;\n selectToInputText(): void;\n destroyToMask(): void;\n}\n\nexport class DateRangePickerAdapter extends BaseDatePickerAdapter<IDateRangePickerComponent> implements IDateRangePickerAdapter {\n private _fromInputElement: HTMLInputElement;\n private _toInputElement: HTMLInputElement;\n private _toInputMask: DateInputMask | undefined;\n private _fromInputMask: DateInputMask | undefined;\n private _dropdownIdentifier: string;\n private _toValueChangeListener: (() => void) | undefined;\n\n constructor(component: DateRangePickerComponent) {\n super(component);\n this._dropdownIdentifier = `forge-date-range-picker-${this._identifier}`;\n }\n\n protected _initializeInput(): void {\n this._fromInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[0] as HTMLInputElement;\n this._toInputElement = this._component.querySelectorAll(DATE_RANGE_PICKER_CONSTANTS.selectors.INPUT)[1] as HTMLInputElement;\n\n if (!this._fromInputElement || !this._fromInputElement) {\n throw new Error(`The ${DATE_RANGE_PICKER_CONSTANTS.elementName} requires two inputs`);\n }\n }\n\n protected _initializeCalendarDropdown(): void {\n const targetElement = this._getDefaultTargetElement();\n this._calendarDropdown = new CalendarDropdown(targetElement, this._dropdownIdentifier);\n }\n\n public override initializeMask(fromOptions: IDateInputMaskOptions): void {\n this._fromInputMask?.destroy();\n this._fromInputMask = new DateInputMask(this._fromInputElement, fromOptions);\n }\n\n public override destroyMask(): void {\n this._fromInputMask?.destroy();\n this._fromInputMask = undefined;\n }\n\n public initializeToMask(toOptions: IDateInputMaskOptions): void {\n this._toInputMask?.destroy();\n this._toInputMask = new DateInputMask(this._toInputElement, toOptions);\n }\n\n public destroyToMask(): void {\n this._toInputMask?.destroy();\n this._toInputMask = undefined;\n }\n\n public override destroy(): void {\n super.destroy();\n this._destroyToValueChangeListener();\n }\n\n private _destroyToValueChangeListener(): void {\n if (typeof this._toValueChangeListener === 'function') {\n this._toValueChangeListener();\n }\n }\n\n public initializeAccessibility(): void {\n this._applyToInputs(input => input.setAttribute('autocomplete', 'off'));\n this._applyToInputs(input => input.setAttribute('autocorrect', 'off'));\n this._applyToInputs(input => input.setAttribute('autocapitalize', 'off'));\n this._applyToInputs(input => input.setAttribute('spellcheck', 'false'));\n this._applyToInputs(input => input.setAttribute('role', 'combobox'));\n this._applyToInputs(input => input.setAttribute('aria-live', 'assertive'));\n this._applyToInputs(input => input.setAttribute('aria-atomic', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-haspopup', 'true'));\n this._applyToInputs(input => input.setAttribute('aria-expanded', 'false'));\n this._applyToInputs(input => input.setAttribute('aria-owns', this._dropdownIdentifier));\n }\n\n public addInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._fromInputElement?.addEventListener(type, listener, { capture });\n }\n\n public addToInputListener(type: string, listener: (event: Event) => void, capture?: boolean): void {\n this._toInputElement?.addEventListener(type, listener, { capture });\n }\n\n public removeInputListener(type: string, listener: (event: Event) => void): void {\n this._fromInputElement?.removeEventListener(type, listener);\n }\n \n public removeToInputListener(type: string, listener: (event: Event) => void): void {\n this._toInputElement?.removeEventListener(type, listener);\n }\n\n public setInputValueChangedListener(context: any, listener: (value: any) => void): void {\n if (this._valueChangeListeners.length) {\n this.destroyValueChangeListener();\n }\n const destroyListenerCb = listenOwnProperty(context, this._fromInputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListenerCb);\n }\n\n public setToInputValueChangedListener(context: any, listener: (value: any) => void): void {\n this._destroyToValueChangeListener();\n this._toValueChangeListener = listenOwnProperty(context, this._toInputElement, 'value', listener);\n }\n\n public hasInputElement(): boolean {\n return !!this._fromInputElement && !!this._toInputElement;\n }\n\n public override attachCalendar(calendarConfig: IDatePickerCalendarDropdownConfig<Date | null>, dropdownConfig?: ICalendarDropdownPopupConfig): void {\n super.attachCalendar(calendarConfig, dropdownConfig);\n this._fromInputElement.setAttribute('aria-expanded', 'true');\n }\n\n public override detachCalendar(): void {\n super.detachCalendar();\n if (this._fromInputElement) {\n this._fromInputElement.setAttribute('aria-expanded', 'false');\n this._fromInputElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public setActiveDescendant(id: string): void {\n this._fromInputElement.setAttribute('aria-activedescendant', id);\n }\n\n public setInputValue(value: string, emitEvents: boolean): void {\n if (this._fromInputElement.value === value) {\n return;\n }\n\n this._fromInputElement.value = value;\n \n if (this._fromInputMask) {\n this._fromInputMask.updateMask();\n }\n\n if (emitEvents) {\n this._fromInputElement.dispatchEvent(new Event('change'));\n this._fromInputElement.dispatchEvent(new Event('input'));;\n }\n }\n\n public setToInputValue(value: string, emitEvents: boolean): void {\n if (this._toInputElement.value === value) {\n return;\n }\n\n this._toInputElement.value = value;\n \n if (this._toInputMask) {\n this._toInputMask.updateMask();\n }\n \n if (emitEvents) {\n this._toInputElement.dispatchEvent(new Event('change'));\n this._toInputElement.dispatchEvent(new Event('input'));\n }\n }\n\n public isInputDisabled(): boolean {\n return this._fromInputElement.disabled;\n }\n\n public isInputFocused(target?: EventTarget | null): boolean {\n if (target && this._toInputElement === target || this._fromInputElement === target) {\n return true;\n }\n const activeEl = getActiveElement(this._component.ownerDocument);\n return this._toInputElement === activeEl || this._fromInputElement === activeEl;\n }\n\n public getInputValue(): string {\n return this._fromInputElement.value;\n }\n\n public getToInputValue(): string {\n return this._toInputElement.value;\n }\n\n public setDisabled(isDisabled: boolean): void {\n this._fromInputElement.disabled = isDisabled;\n this._toInputElement.disabled = isDisabled;\n\n this._toInputElement.setAttribute('aria-disabled', isDisabled.toString());\n this._fromInputElement.setAttribute('aria-disabled', isDisabled.toString());\n\n if (this._toggleElement) {\n this._toggleElement.setAttribute('aria-disabled', isDisabled.toString());\n if (this._toggleElement.hasOwnProperty('disabled')) {\n (this._toggleElement as HTMLButtonElement).disabled = isDisabled;\n }\n }\n }\n\n public emitInputEvent(type: string, data?: any): void {\n emitEvent(this._fromInputElement, type, data);\n }\n\n public emitToInputEvent(type: string, data?: any): void {\n emitEvent(this._toInputElement, type, data);\n }\n\n protected override _createToggleElement(): HTMLElement {\n return createToggleElement('date_range');\n }\n\n public tryFocusInput(): void {\n this._fromInputElement.focus();\n }\n\n public tryBlurInput(): void {\n this._fromInputElement.blur();\n }\n\n public selectInputText(): void {\n this._fromInputElement.select();\n }\n\n public selectToInputText(): void {\n this._toInputElement.select();\n }\n\n private _applyToInputs(action: (input: HTMLInputElement) => void): void {\n [this._fromInputElement, this._toInputElement].forEach(action);\n }\n}\n", "import { isDate, isValidDate, Platform } from '@tylertech/forge-core';\nimport { CalendarMode, DateRange, ICalendarDateSelectEventData } from '../calendar';\nimport { isSameDate } from '../core/utils/date-utils';\nimport { IDateInputMaskOptions } from '../core/mask/date-input-mask';\nimport { BaseDatePickerFoundation, IBaseDatePickerFoundation } from '../date-picker/base/base-date-picker-foundation';\nimport { IDateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DatePickerRange, DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport interface IDateRangePickerFoundation extends IBaseDatePickerFoundation<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\nexport class DateRangePickerFoundation extends BaseDatePickerFoundation<IDateRangePickerAdapter, IDatePickerRange> implements IDateRangePickerFoundation {\n protected _mode: CalendarMode = 'range';\n private _from?: Date | null = null;\n private _to?: Date | null = null;\n private _toInputListener: (evt: Event) => void;\n private _toInputKeydownListener: (evt: KeyboardEvent) => void;\n private _toInputFocusListener: (evt: FocusEvent) => void;\n private _toInputBlurListener: (evt: FocusEvent) => void;\n private _toInputValueChangedListener: (value: string) => void;\n\n constructor(adapter: IDateRangePickerAdapter) {\n super(adapter);\n this._toInputListener = evt => this._onToInput(evt);\n this._toInputValueChangedListener = value => this._onToInputValueChanged(value);\n this._toInputKeydownListener = evt => this._onInputKeydown(evt);\n this._toInputFocusListener = evt => this._onToInputFocus();\n this._toInputBlurListener = evt => this._onToInputBlur(evt);\n }\n\n protected _initializeState(): void {\n this._applyToMask();\n\n if (!this._from) {\n this._from = this._coerceDateValue(this._adapter.getInputValue());\n }\n if (!this._to) {\n this._to = this._coerceDateValue(this._adapter.getToInputValue());\n }\n }\n\n protected override _initializeListeners(): void {\n super._initializeListeners();\n this._adapter.addToInputListener('keydown', this._toInputKeydownListener);\n this._adapter.addToInputListener('focus', this._toInputFocusListener);\n this._adapter.addToInputListener('blur', this._toInputBlurListener);\n }\n\n protected override _initializeValueChangedListeners(): void {\n super._initializeValueChangedListeners();\n this._adapter.setToInputValueChangedListener(this, this._toInputValueChangedListener);\n }\n\n protected override _setInputChangeListeners(): void {\n super._setInputChangeListeners();\n this._adapter.addToInputListener('input', this._toInputListener);\n }\n\n protected override _removeInputChangeListeners(): void {\n super._removeInputChangeListeners();\n this._adapter.removeToInputListener('input', this._toInputListener);\n }\n\n protected override _openCalendar(emitOpenEvent?: boolean): void {\n this._formatToInputValue();\n super._openCalendar(emitOpenEvent);\n\n const currentValue = this._getCurrentValue();\n if (!!currentValue?.to) {\n this._adapter.goToCalendarDate(new Date(currentValue.to));\n } else if (!!currentValue?.from) {\n this._adapter.goToCalendarDate(new Date(currentValue.from));\n }\n }\n\n protected _emitChangeEvent(value: DateRange | null | undefined, force?: boolean): boolean {\n const typedStartValue = this._getTypedValue((value && value.from) || null);\n const typedEndValue = this._getTypedValue((value && value.to) || null);\n const detail: IDateRangePickerChangeEventData = new DatePickerRange({ from: typedStartValue, to: typedEndValue });\n const wasCancelled = !this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, detail, true, !force);\n if (!wasCancelled) {\n this._setValue(this._coerceDateValue((value && value.from) || null));\n this._setToValue(this._coerceDateValue((value && value.to) || null));\n return true;\n }\n return false;\n }\n\n protected _emitOpenEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.OPEN, undefined, false);\n }\n\n protected _emitCloseEvent(): void {\n this._adapter.emitHostEvent(DATE_RANGE_PICKER_CONSTANTS.events.CLOSE, undefined, false);\n }\n \n protected _onToday(): void {\n const today = new Date();\n const range = this._open ? new DateRange({ from: this._from || today, to: this._to || undefined }) : new DateRange({ from: today });\n if (!this._isDateRangeAcceptable(range)) {\n return;\n }\n this.value = range;\n this._onDateSelected({ date: today, range, selected: true, type: 'date' });\n this._adapter.setCalendarActiveDate(today);\n }\n\n protected _onClear(): void {\n this._onDateSelected({ date: null, range: new DateRange(), selected: false, type: 'date' });\n this._closeCalendar(true);\n }\n\n protected _getCurrentValue(): IDatePickerRange | null | undefined {\n return this._value;\n }\n\n private _applyToMask(): void {\n if (this._masked) {\n this._initializeToMask();\n } else {\n this._adapter.destroyToMask();\n this._formatToInputValue();\n }\n }\n\n private _formatToInputValue(): void {\n const inputValue = this._adapter.getToInputValue();\n if (inputValue) {\n const parsedDate = this._parseDateString(inputValue);\n if (isValidDate(parsedDate) && this._isDateValueAcceptable(parsedDate)) {\n const formattedDate = this._formatDate(parsedDate);\n if (formattedDate) {\n this._adapter.setToInputValue(formattedDate, this._notifyInputValueChanges);\n }\n } else {\n if (!this._allowInvalidDate) {\n this._adapter.setToInputValue('', this._notifyInputValueChanges);\n }\n }\n }\n }\n\n protected _setFormattedInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._from);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n private _setFormattedToInputValue(suppressValueChanges?: boolean): void {\n let formattedDate = this._formatDate(this._to);\n if (!formattedDate && !this._allowInvalidDate) {\n formattedDate = '';\n }\n this._adapter.setToInputValue(formattedDate, suppressValueChanges ? false : this._notifyInputValueChanges);\n }\n\n protected _isDateRangeAcceptable(value?: DateRange | null | undefined): boolean {\n if (!value?.to) {\n return true;\n }\n\n const passesMinDate = (): boolean => this._isDateValueAcceptable(value.from);\n const passesMaxDate = (): boolean => this._isDateValueAcceptable(value.to);\n const passesDateRange = (): boolean => value?.from && value?.to ? value.from.getTime() <= value.to.getTime() : true;\n\n return passesMinDate() && passesMaxDate() && passesDateRange();\n }\n\n protected _setValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._from = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.from = this._from;\n }\n }\n }\n\n private _setToValue(value: Date | null | undefined): void {\n if (this._isDateValueAcceptable(value)) {\n this._to = value || null;\n if (!this._value) {\n this._value = { from: this._from, to: this._to };\n } else {\n this._value.to = this._to;\n }\n }\n }\n\n protected _onDateSelected(event: ICalendarDateSelectEventData): void {\n const value = event.range;\n\n if (event.rangeSelectionState === 'to') {\n this._closeCalendar(true);\n }\n\n if (!this._emitChangeEvent(value ?? null)) {\n return;\n }\n\n const formattedFromValue = this._formatDate((value && value.from) || null);\n const formattedToValue = this._formatDate((value && value.to) || null);\n this._adapter.setInputValue(formattedFromValue, this._notifyInputValueChanges);\n this._adapter.setToInputValue(formattedToValue, this._notifyInputValueChanges);\n this._formatInputValue();\n this._formatToInputValue();\n\n this._from = (value && value.from) || null;\n this._to = (value && value.to) || null;\n\n if (!Platform.isMobile) {\n if (formattedToValue) {\n this._adapter.selectToInputText();\n } else {\n this._adapter.selectInputText();\n }\n }\n }\n\n protected override _applyMin(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMin();\n }\n\n protected override _applyMax(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n super._applyMax();\n }\n\n protected _initializeToMask(): void {\n if (!this._masked) {\n return;\n }\n\n const options: IDateInputMaskOptions = {\n showMaskFormat: this._showMaskFormat && this._adapter.isInputFocused(),\n pattern: this._maskFormat,\n onChange: (value: string) => this._handleToInput(value)\n };\n\n if (this._prepareMaskCallback) {\n options.prepareCallback = (value, masked, flags, maskInstance) => {\n return this._prepareMaskCallback.call(null, value, masked, flags, maskInstance);\n };\n }\n\n this._adapter.initializeToMask(options);\n }\n\n protected _applyDisabledDates(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(new DateRange({ to: this._to || undefined }), true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined }), true);\n this._setFormattedToInputValue();\n }\n }\n\n protected _applyDisabledDaysOfWeek(): void {\n if (this._from && !this._isDateValueAcceptable(this._from)) {\n this._emitChangeEvent(null, true);\n this._setFormattedInputValue();\n }\n if (this._to && !this._isDateValueAcceptable(this._to)) {\n this._emitChangeEvent(null, true);\n this._setFormattedToInputValue();\n }\n }\n\n private _onToInput(evt: Event): void {\n this._handleInput(this._adapter.getInputValue());\n }\n\n protected _handleInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._from) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _handleToInput(value: string): void {\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (this._masked) {\n this._adapter.emitToInputEvent(DATE_RANGE_PICKER_CONSTANTS.events.INPUT, sanitizedValue);\n }\n if (!isSameDate(date, this._to) && this._isDateValueAcceptable(date)) {\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n private _onToInputFocus(): void {\n if (this.masked && this._showMaskFormat) {\n this._initializeMask();\n this._initializeToMask();\n }\n this._adapter.selectToInputText();\n }\n\n private _onToInputBlur(evt: FocusEvent): void {\n if (this._masked && !this._adapter.isInputFocused(evt.relatedTarget)) {\n this._initializeMask();\n this._initializeToMask();\n }\n\n this._formatToInputValue();\n\n if (this._open) {\n this._closeCalendar(true);\n }\n }\n\n protected override _onInputFocus(evt: FocusEvent): void {\n if (this.masked && this._showMaskFormat) {\n this._initializeMask();\n this._initializeToMask();\n }\n this._adapter.selectInputText();\n }\n\n protected override _onInputBlur(evt: FocusEvent): void {\n if (this.masked && !this._adapter.isInputFocused(evt.relatedTarget)) {\n this._initializeMask();\n this._initializeToMask();\n }\n\n this._formatInputValue();\n\n if (this._open && !this._adapter.isInputFocused(evt.relatedTarget)) {\n this._closeCalendar(true);\n }\n }\n\n protected _onInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._from)) {\n this.from = date;\n this._emitChangeEvent(new DateRange({ from: date || undefined, to: this._to || undefined }));\n }\n }\n\n private _onToInputValueChanged(value: string): void {\n if (this._masked) {\n return;\n }\n const sanitizedValue = this._getSanitizedDateString(value);\n const date = this._coerceDateValue(sanitizedValue);\n if (!isSameDate(date, this._to)) {\n this.to = date;\n this._emitChangeEvent(new DateRange({ from: this._from || undefined, to: date || undefined }));\n }\n }\n\n public get value(): IDatePickerRange | null | undefined {\n return { from: this.from, to: this.to };\n }\n public set value(value: IDatePickerRange | null | undefined) {\n if (!value) {\n value = { from: null, to: null };\n }\n\n if (value.from === undefined) {\n value.from = null;\n }\n\n if (value.to === undefined) {\n value.to = null;\n }\n\n this.from = value.from;\n this.to = value.to;\n\n this._value = { from: this.from, to: this.to };\n }\n\n public get from(): Date | string | null | undefined {\n const date = this._getTypedValue(this._from);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set from(value: Date | string | null | undefined) {\n if (this._from !== value) {\n this._setValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ from: this._coerceDateValue(value) || undefined, to: this._coerceDateValue(this._to) || undefined }));\n }\n }\n }\n }\n\n public get to(): Date | string | null | undefined {\n const date = this._getTypedValue(this._to);\n\n if (!date) {\n return null;\n }\n\n if (isDate(date)) {\n return new Date(date.getTime());\n }\n\n return date;\n }\n public set to(value: Date | string | null | undefined) {\n if (this._to !== value) {\n this._setToValue(this._coerceDateValue(value));\n if (this._isInitialized) {\n this._setFormattedToInputValue();\n if (this._open) {\n this._adapter.setCalendarValue(new DateRange({ to: this._coerceDateValue(value) || undefined, from: this._coerceDateValue(this._from) || undefined }));\n }\n }\n }\n }\n}\n", "import { attachShadowTemplate, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconDateRange } from '@tylertech/tyler-icons/standard';\nimport { CalendarComponent } from '../calendar';\nimport { BaseDatePickerComponent, IBaseDatePickerComponent } from '../date-picker/base/base-date-picker';\nimport { BASE_DATE_PICKER_CONSTANTS } from '../date-picker/base/base-date-picker-constants';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { PopupComponent } from '../popup';\nimport { DateRangePickerAdapter } from './date-range-picker-adapter';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDatePickerRange, IDateRangePickerChangeEventData } from './date-range-picker-constants';\nimport { DateRangePickerFoundation } from './date-range-picker-foundation';\n\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:block}:host([hidden]){display:none}';\n\nexport interface IDateRangePickerComponent extends IBaseDatePickerComponent<IDatePickerRange> {\n from: Date | string | null | undefined;\n to: Date | string | null | undefined;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-date-range-picker': IDateRangePickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-date-range-picker-change': CustomEvent<IDateRangePickerChangeEventData>;\n 'forge-date-range-picker-open': CustomEvent<void>;\n 'forge-date-range-picker-close': CustomEvent<void>;\n 'forge-date-range-picker-input': CustomEvent<string>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-date-range-picker>` element.\n * \n * @tag forge-date-range-picker\n */\n@CustomElement({\n name: DATE_RANGE_PICKER_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n CalendarComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class DateRangePickerComponent extends BaseDatePickerComponent<IDatePickerRange, IDatePickerRange, DateRangePickerFoundation> implements IDateRangePickerComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(BASE_DATE_PICKER_CONSTANTS.observedAttributes),\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM,\n DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define(tylIconDateRange);\n attachShadowTemplate(this, template, styles);\n this._foundation = new DateRangePickerFoundation(new DateRangePickerAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.FROM:\n this.from = newValue;\n return;\n case DATE_RANGE_PICKER_CONSTANTS.observedAttributes.TO:\n this.to = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n /** Gets/sets the \"from\" date range value. */\n @FoundationProperty()\n public declare from: Date | string | null | undefined;\n\n /** Gets/sets the \"to\" date range value. */\n @FoundationProperty()\n public declare to: Date | string | null | undefined;\n}\n", "import { FormFieldComponentDelegate, IFormFieldComponentDelegateOptions, IBaseComponentDelegateConfig } from '../core/delegates';\nimport { FieldDensityType } from '../field/field-constants';\nimport { ITextFieldComponent, TEXT_FIELD_CONSTANTS } from '../text-field';\nimport { IDateRangePickerComponent } from './date-range-picker';\nimport { DATE_RANGE_PICKER_CONSTANTS, IDateRangePickerChangeEventData } from './date-range-picker-constants';\n\nexport type DateRangePickerComponentDelegateProps = Partial<IDateRangePickerComponent>;\nexport interface IDateRangePickerComponentDelegateOptions extends IFormFieldComponentDelegateOptions {\n useDropdownIcon?: boolean;\n fromPlaceholder?: string;\n toPlaceholder?: string;\n label?: string;\n required?: boolean;\n density?: FieldDensityType;\n}\nexport interface IDateRangePickerComponentDelegateConfig extends IBaseComponentDelegateConfig<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {}\n\nexport class DateRangeComponentDelegate extends FormFieldComponentDelegate<IDateRangePickerComponent, IDateRangePickerComponentDelegateOptions> {\n private _textField: ITextFieldComponent;\n private _fromInput: HTMLInputElement;\n private _toInput: HTMLInputElement;\n\n constructor(config?: IDateRangePickerComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IDateRangePickerComponent {\n const dateRangePicker = document.createElement(DATE_RANGE_PICKER_CONSTANTS.elementName) as IDateRangePickerComponent;\n this._attachTextField(dateRangePicker);\n return dateRangePicker;\n }\n\n public get fromInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-0]`) as HTMLInputElement;\n }\n\n public get toInput(): HTMLInputElement {\n return this._textField.querySelector(`input[${TEXT_FIELD_CONSTANTS.attributes.MULTI_INPUT}-1]`) as HTMLInputElement;\n }\n\n public get textField(): ITextFieldComponent {\n return this._textField;\n }\n\n public get value(): any {\n return this._element.value;\n }\n public set value(value: any) {\n this._element.value = value;\n }\n\n public get disabled(): boolean {\n return this._element.disabled;\n }\n public set disabled(value: boolean) {\n this._element.disabled = value;\n }\n\n public get invalid(): boolean {\n return this._textField.invalid || false;\n }\n public set invalid(value: boolean) {\n this._textField.invalid = value;\n }\n\n public onChange(listener: (value: IDateRangePickerChangeEventData) => void): void {\n this._element.addEventListener(DATE_RANGE_PICKER_CONSTANTS.events.CHANGE, (evt: CustomEvent<IDateRangePickerChangeEventData>) => listener(evt.detail));\n }\n\n public onFocus(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusin', (evt: FocusEvent) => {\n const isFocusWithin = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusWithin) {\n listener(evt);\n }\n });\n }\n\n public onBlur(listener: (evt: FocusEvent) => void): void {\n this._element.addEventListener('focusout', (evt: FocusEvent) => {\n const isFocusOutside = !this._element.contains(evt.relatedTarget as Node);\n if (isFocusOutside) {\n listener(evt);\n }\n });\n }\n\n private _attachTextField(dateRangePicker: IDateRangePickerComponent): void {\n this._textField = document.createElement(TEXT_FIELD_CONSTANTS.elementName);\n\n if (this._config.options?.required) {\n this._textField.required = true;\n }\n if (this._config.options?.density) {\n this._textField.density = this._config.options.density;\n }\n\n this._fromInput = document.createElement('input');\n this._fromInput.type = 'text';\n this._fromInput.placeholder = this._config.options?.fromPlaceholder || 'From';\n this._textField.appendChild(this._fromInput);\n\n this._toInput = document.createElement('input');\n this._toInput.type = 'text';\n this._toInput.placeholder = this._config.options?.toPlaceholder || 'To';\n this._textField.appendChild(this._toInput);\n\n const label = document.createElement('label');\n label.textContent = this._config.options?.label || 'Choose date range';\n this._textField.appendChild(label);\n\n dateRangePicker.appendChild(this._textField);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DateRangePickerComponent } from './date-range-picker';\n\nexport * from './date-range-picker';\nexport * from './date-range-picker-adapter';\nexport * from './date-range-picker-constants';\nexport * from './date-range-picker-foundation';\nexport * from './date-range-picker-component-delegate';\n\nexport function defineDateRangePickerComponent(): void {\n defineCustomElement(DateRangePickerComponent);\n}\n"],
5
- "mappings": "01BAEA,IAAMA,EAA2C,GAAGC,qBAEvCC,EAAN,KAAkD,CAGvD,YAAYC,EAA0B,CAChCA,IACF,KAAK,KAAOA,EAAM,KAClB,KAAK,GAAKA,EAAM,GAEpB,CAEO,MAAwB,CAC7B,OAAO,IAAID,EAAgB,IAAI,CACjC,CACF,EAOME,EAAqB,CACzB,KAAM,OACN,GAAI,KACJ,UAAW,WACb,EAEMC,EAAY,CAChB,MAAO,OACT,EAEMC,EAAS,CACb,OAAQ,GAAGN,WACX,KAAM,GAAGA,SACT,MAAO,GAAGA,UACV,MAAO,GAAGA,SACZ,EAEaO,EAA8B,CACzC,YAAAP,EACA,UAAAK,EACA,OAAAC,EACA,mBAAAF,CACF,ECtBO,IAAMI,EAAN,cAAqCC,CAAoF,CAQ9H,YAAYC,EAAqC,CAC/C,MAAMA,CAAS,EACf,KAAK,oBAAsB,2BAA2B,KAAK,aAC7D,CAEU,kBAAyB,CAIjC,GAHA,KAAK,kBAAoB,KAAK,WAAW,iBAAiBC,EAA4B,UAAU,KAAK,EAAE,GACvG,KAAK,gBAAkB,KAAK,WAAW,iBAAiBA,EAA4B,UAAU,KAAK,EAAE,GAEjG,CAAC,KAAK,mBAAqB,CAAC,KAAK,kBACnC,MAAM,IAAI,MAAM,OAAOA,EAA4B,iCAAiC,CAExF,CAEU,6BAAoC,CAC5C,IAAMC,EAAgB,KAAK,yBAAyB,EACpD,KAAK,kBAAoB,IAAIC,EAAiBD,EAAe,KAAK,mBAAmB,CACvF,CAEgB,eAAeE,EAA0C,CAnD3E,IAAAC,GAoDIA,EAAA,KAAK,iBAAL,MAAAA,EAAqB,UACrB,KAAK,eAAiB,IAAIC,EAAc,KAAK,kBAAmBF,CAAW,CAC7E,CAEgB,aAAoB,CAxDtC,IAAAC,GAyDIA,EAAA,KAAK,iBAAL,MAAAA,EAAqB,UACrB,KAAK,eAAiB,MACxB,CAEO,iBAAiBE,EAAwC,CA7DlE,IAAAF,GA8DIA,EAAA,KAAK,eAAL,MAAAA,EAAmB,UACnB,KAAK,aAAe,IAAIC,EAAc,KAAK,gBAAiBC,CAAS,CACvE,CAEO,eAAsB,CAlE/B,IAAAF,GAmEIA,EAAA,KAAK,eAAL,MAAAA,EAAmB,UACnB,KAAK,aAAe,MACtB,CAEgB,SAAgB,CAC9B,MAAM,QAAQ,EACd,KAAK,8BAA8B,CACrC,CAEQ,+BAAsC,CACxC,OAAO,KAAK,wBAA2B,YACzC,KAAK,uBAAuB,CAEhC,CAEO,yBAAgC,CACrC,KAAK,eAAeG,GAASA,EAAM,aAAa,eAAgB,KAAK,CAAC,EACtE,KAAK,eAAeA,GAASA,EAAM,aAAa,cAAe,KAAK,CAAC,EACrE,KAAK,eAAeA,GAASA,EAAM,aAAa,iBAAkB,KAAK,CAAC,EACxE,KAAK,eAAeA,GAASA,EAAM,aAAa,aAAc,OAAO,CAAC,EACtE,KAAK,eAAeA,GAASA,EAAM,aAAa,OAAQ,UAAU,CAAC,EACnE,KAAK,eAAeA,GAASA,EAAM,aAAa,YAAa,WAAW,CAAC,EACzE,KAAK,eAAeA,GAASA,EAAM,aAAa,cAAe,MAAM,CAAC,EACtE,KAAK,eAAeA,GAASA,EAAM,aAAa,gBAAiB,MAAM,CAAC,EACxE,KAAK,eAAeA,GAASA,EAAM,aAAa,gBAAiB,OAAO,CAAC,EACzE,KAAK,eAAeA,GAASA,EAAM,aAAa,YAAa,KAAK,mBAAmB,CAAC,CACxF,CAEO,iBAAiBC,EAAcC,EAAkCC,EAAyB,CA/FnG,IAAAN,GAgGIA,EAAA,KAAK,oBAAL,MAAAA,EAAwB,iBAAiBI,EAAMC,EAAU,CAAE,QAAAC,CAAQ,EACrE,CAEO,mBAAmBF,EAAcC,EAAkCC,EAAyB,CAnGrG,IAAAN,GAoGIA,EAAA,KAAK,kBAAL,MAAAA,EAAsB,iBAAiBI,EAAMC,EAAU,CAAE,QAAAC,CAAQ,EACnE,CAEO,oBAAoBF,EAAcC,EAAwC,CAvGnF,IAAAL,GAwGIA,EAAA,KAAK,oBAAL,MAAAA,EAAwB,oBAAoBI,EAAMC,EACpD,CAEO,sBAAsBD,EAAcC,EAAwC,CA3GrF,IAAAL,GA4GIA,EAAA,KAAK,kBAAL,MAAAA,EAAsB,oBAAoBI,EAAMC,EAClD,CAEO,6BAA6BE,EAAcF,EAAsC,CAClF,KAAK,sBAAsB,QAC7B,KAAK,2BAA2B,EAElC,IAAMG,EAAoBC,EAAkBF,EAAS,KAAK,kBAAmB,QAASF,CAAQ,EAC9F,KAAK,sBAAsB,KAAKG,CAAiB,CACnD,CAEO,+BAA+BD,EAAcF,EAAsC,CACxF,KAAK,8BAA8B,EACnC,KAAK,uBAAyBI,EAAkBF,EAAS,KAAK,gBAAiB,QAASF,CAAQ,CAClG,CAEO,iBAA2B,CAChC,MAAO,CAAC,CAAC,KAAK,mBAAqB,CAAC,CAAC,KAAK,eAC5C,CAEgB,eAAeK,EAAgEC,EAAqD,CAClJ,MAAM,eAAeD,EAAgBC,CAAc,EACnD,KAAK,kBAAkB,aAAa,gBAAiB,MAAM,CAC7D,CAEgB,gBAAuB,CACrC,MAAM,eAAe,EACjB,KAAK,oBACP,KAAK,kBAAkB,aAAa,gBAAiB,OAAO,EAC5D,KAAK,kBAAkB,gBAAgB,uBAAuB,EAElE,CAEO,oBAAoBC,EAAkB,CAC3C,KAAK,kBAAkB,aAAa,wBAAyBA,CAAE,CACjE,CAEO,cAAcC,EAAeC,EAA2B,CACzD,KAAK,kBAAkB,QAAUD,IAIrC,KAAK,kBAAkB,MAAQA,EAE3B,KAAK,gBACP,KAAK,eAAe,WAAW,EAG7BC,IACF,KAAK,kBAAkB,cAAc,IAAI,MAAM,QAAQ,CAAC,EACxD,KAAK,kBAAkB,cAAc,IAAI,MAAM,OAAO,CAAC,GAE3D,CAEO,gBAAgBD,EAAeC,EAA2B,CAC3D,KAAK,gBAAgB,QAAUD,IAInC,KAAK,gBAAgB,MAAQA,EAEzB,KAAK,cACP,KAAK,aAAa,WAAW,EAG3BC,IACF,KAAK,gBAAgB,cAAc,IAAI,MAAM,QAAQ,CAAC,EACtD,KAAK,gBAAgB,cAAc,IAAI,MAAM,OAAO,CAAC,GAEzD,CAEO,iBAA2B,CAChC,OAAO,KAAK,kBAAkB,QAChC,CAEO,eAAeC,EAAsC,CAC1D,GAAIA,GAAU,KAAK,kBAAoBA,GAAU,KAAK,oBAAsBA,EAC1E,MAAO,GAET,IAAMC,EAAWC,EAAiB,KAAK,WAAW,aAAa,EAC/D,OAAO,KAAK,kBAAoBD,GAAY,KAAK,oBAAsBA,CACzE,CAEO,eAAwB,CAC7B,OAAO,KAAK,kBAAkB,KAChC,CAEO,iBAA0B,CAC/B,OAAO,KAAK,gBAAgB,KAC9B,CAEO,YAAYE,EAA2B,CAC5C,KAAK,kBAAkB,SAAWA,EAClC,KAAK,gBAAgB,SAAWA,EAEhC,KAAK,gBAAgB,aAAa,gBAAiBA,EAAW,SAAS,CAAC,EACxE,KAAK,kBAAkB,aAAa,gBAAiBA,EAAW,SAAS,CAAC,EAEtE,KAAK,iBACP,KAAK,eAAe,aAAa,gBAAiBA,EAAW,SAAS,CAAC,EACnE,KAAK,eAAe,eAAe,UAAU,IAC9C,KAAK,eAAqC,SAAWA,GAG5D,CAEO,eAAed,EAAce,EAAkB,CACpDC,EAAU,KAAK,kBAAmBhB,EAAMe,CAAI,CAC9C,CAEO,iBAAiBf,EAAce,EAAkB,CACtDC,EAAU,KAAK,gBAAiBhB,EAAMe,CAAI,CAC5C,CAEmB,sBAAoC,CACrD,OAAOE,EAAoB,YAAY,CACzC,CAEO,eAAsB,CAC3B,KAAK,kBAAkB,MAAM,CAC/B,CAEO,cAAqB,CAC1B,KAAK,kBAAkB,KAAK,CAC9B,CAEO,iBAAwB,CAC7B,KAAK,kBAAkB,OAAO,CAChC,CAEO,mBAA0B,CAC/B,KAAK,gBAAgB,OAAO,CAC9B,CAEQ,eAAeC,EAAiD,CACtE,CAAC,KAAK,kBAAmB,KAAK,eAAe,EAAE,QAAQA,CAAM,CAC/D,CACF,ECxOO,IAAMC,EAAN,cAAwCC,CAA0G,CAUvJ,YAAYC,EAAkC,CAC5C,MAAMA,CAAO,EAVf,KAAU,MAAsB,QAChC,KAAQ,MAAsB,KAC9B,KAAQ,IAAoB,KAS1B,KAAK,iBAAmBC,GAAO,KAAK,WAAWA,CAAG,EAClD,KAAK,6BAA+BC,GAAS,KAAK,uBAAuBA,CAAK,EAC9E,KAAK,wBAA0BD,GAAO,KAAK,gBAAgBA,CAAG,EAC9D,KAAK,sBAAwBA,GAAO,KAAK,gBAAgB,EACzD,KAAK,qBAAuBA,GAAO,KAAK,eAAeA,CAAG,CAC5D,CAEU,kBAAyB,CACjC,KAAK,aAAa,EAEb,KAAK,QACR,KAAK,MAAQ,KAAK,iBAAiB,KAAK,SAAS,cAAc,CAAC,GAE7D,KAAK,MACR,KAAK,IAAM,KAAK,iBAAiB,KAAK,SAAS,gBAAgB,CAAC,EAEpE,CAEmB,sBAA6B,CAC9C,MAAM,qBAAqB,EAC3B,KAAK,SAAS,mBAAmB,UAAW,KAAK,uBAAuB,EACxE,KAAK,SAAS,mBAAmB,QAAS,KAAK,qBAAqB,EACpE,KAAK,SAAS,mBAAmB,OAAQ,KAAK,oBAAoB,CACpE,CAEmB,kCAAyC,CAC1D,MAAM,iCAAiC,EACvC,KAAK,SAAS,+BAA+B,KAAM,KAAK,4BAA4B,CACtF,CAEmB,0BAAiC,CAClD,MAAM,yBAAyB,EAC/B,KAAK,SAAS,mBAAmB,QAAS,KAAK,gBAAgB,CACjE,CAEmB,6BAAoC,CACrD,MAAM,4BAA4B,EAClC,KAAK,SAAS,sBAAsB,QAAS,KAAK,gBAAgB,CACpE,CAEmB,cAAcE,EAA+B,CAC9D,KAAK,oBAAoB,EACzB,MAAM,cAAcA,CAAa,EAEjC,IAAMC,EAAe,KAAK,iBAAiB,EACrCA,GAAA,MAAAA,EAAc,GAClB,KAAK,SAAS,iBAAiB,IAAI,KAAKA,EAAa,EAAE,CAAC,EAC7CA,GAAA,MAAAA,EAAc,MACzB,KAAK,SAAS,iBAAiB,IAAI,KAAKA,EAAa,IAAI,CAAC,CAE9D,CAEU,iBAAiBF,EAAqCG,EAA0B,CACxF,IAAMC,EAAkB,KAAK,eAAgBJ,GAASA,EAAM,MAAS,IAAI,EACnEK,EAAgB,KAAK,eAAgBL,GAASA,EAAM,IAAO,IAAI,EAC/DM,EAA0C,IAAIC,EAAgB,CAAE,KAAMH,EAAiB,GAAIC,CAAc,CAAC,EAEhH,OADsB,KAAK,SAAS,cAAcG,EAA4B,OAAO,OAAQF,EAAQ,GAAM,CAACH,CAAK,GAE/G,KAAK,UAAU,KAAK,iBAAkBH,GAASA,EAAM,MAAS,IAAI,CAAC,EACnE,KAAK,YAAY,KAAK,iBAAkBA,GAASA,EAAM,IAAO,IAAI,CAAC,EAC5D,IAEF,EACT,CAEU,gBAAuB,CAC/B,KAAK,SAAS,cAAcQ,EAA4B,OAAO,KAAM,OAAW,EAAK,CACvF,CAEU,iBAAwB,CAChC,KAAK,SAAS,cAAcA,EAA4B,OAAO,MAAO,OAAW,EAAK,CACxF,CAEU,UAAiB,CACzB,IAAMC,EAAQ,IAAI,KACZC,EAAQ,KAAK,MAAQ,IAAIC,EAAU,CAAE,KAAM,KAAK,OAASF,EAAO,GAAI,KAAK,KAAO,MAAU,CAAC,EAAI,IAAIE,EAAU,CAAE,KAAMF,CAAM,CAAC,EAC9H,CAAC,KAAK,uBAAuBC,CAAK,IAGtC,KAAK,MAAQA,EACb,KAAK,gBAAgB,CAAE,KAAMD,EAAO,MAAAC,EAAO,SAAU,GAAM,KAAM,MAAO,CAAC,EACzE,KAAK,SAAS,sBAAsBD,CAAK,EAC3C,CAEU,UAAiB,CACzB,KAAK,gBAAgB,CAAE,KAAM,KAAM,MAAO,IAAIE,EAAa,SAAU,GAAO,KAAM,MAAO,CAAC,EAC1F,KAAK,eAAe,EAAI,CAC1B,CAEU,kBAAwD,CAChE,OAAO,KAAK,MACd,CAEQ,cAAqB,CACvB,KAAK,QACP,KAAK,kBAAkB,GAEvB,KAAK,SAAS,cAAc,EAC5B,KAAK,oBAAoB,EAE7B,CAEQ,qBAA4B,CAClC,IAAMC,EAAa,KAAK,SAAS,gBAAgB,EACjD,GAAIA,EAAY,CACd,IAAMC,EAAa,KAAK,iBAAiBD,CAAU,EACnD,GAAIE,EAAYD,CAAU,GAAK,KAAK,uBAAuBA,CAAU,EAAG,CACtE,IAAME,EAAgB,KAAK,YAAYF,CAAU,EAC7CE,GACF,KAAK,SAAS,gBAAgBA,EAAe,KAAK,wBAAwB,CAE9E,MACO,KAAK,mBACR,KAAK,SAAS,gBAAgB,GAAI,KAAK,wBAAwB,CAGrE,CACF,CAEU,wBAAwBC,EAAsC,CACtE,IAAID,EAAgB,KAAK,YAAY,KAAK,KAAK,EAC3C,CAACA,GAAiB,CAAC,KAAK,oBAC1BA,EAAgB,IAElB,KAAK,SAAS,cAAcA,EAAeC,EAAuB,GAAQ,KAAK,wBAAwB,CACzG,CAEQ,0BAA0BA,EAAsC,CACtE,IAAID,EAAgB,KAAK,YAAY,KAAK,GAAG,EACzC,CAACA,GAAiB,CAAC,KAAK,oBAC1BA,EAAgB,IAElB,KAAK,SAAS,gBAAgBA,EAAeC,EAAuB,GAAQ,KAAK,wBAAwB,CAC3G,CAEU,uBAAuBhB,EAA+C,CAC9E,GAAI,EAACA,GAAA,MAAAA,EAAO,IACV,MAAO,GAGT,IAAMiB,EAAgB,IAAe,KAAK,uBAAuBjB,EAAM,IAAI,EACrEkB,EAAgB,IAAe,KAAK,uBAAuBlB,EAAM,EAAE,EACnEmB,EAAkB,KAAenB,GAAA,YAAAA,EAAO,QAAQA,GAAA,YAAAA,EAAO,IAAKA,EAAM,KAAK,QAAQ,GAAKA,EAAM,GAAG,QAAQ,EAAI,GAE/G,OAAOiB,EAAc,GAAKC,EAAc,GAAKC,EAAgB,CAC/D,CAEU,UAAUnB,EAAsC,CACpD,KAAK,uBAAuBA,CAAK,IACnC,KAAK,MAAQA,GAAS,KACjB,KAAK,OAGR,KAAK,OAAO,KAAO,KAAK,MAFxB,KAAK,OAAS,CAAE,KAAM,KAAK,MAAO,GAAI,KAAK,GAAI,EAKrD,CAEQ,YAAYA,EAAsC,CACpD,KAAK,uBAAuBA,CAAK,IACnC,KAAK,IAAMA,GAAS,KACf,KAAK,OAGR,KAAK,OAAO,GAAK,KAAK,IAFtB,KAAK,OAAS,CAAE,KAAM,KAAK,MAAO,GAAI,KAAK,GAAI,EAKrD,CAEU,gBAAgBoB,EAA2C,CACnE,IAAMpB,EAAQoB,EAAM,MAMpB,GAJIA,EAAM,sBAAwB,MAChC,KAAK,eAAe,EAAI,EAGtB,CAAC,KAAK,iBAAiBpB,GAAA,KAAAA,EAAS,IAAI,EACtC,OAGF,IAAMqB,EAAqB,KAAK,YAAarB,GAASA,EAAM,MAAS,IAAI,EACnEsB,EAAmB,KAAK,YAAatB,GAASA,EAAM,IAAO,IAAI,EACrE,KAAK,SAAS,cAAcqB,EAAoB,KAAK,wBAAwB,EAC7E,KAAK,SAAS,gBAAgBC,EAAkB,KAAK,wBAAwB,EAC7E,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAEzB,KAAK,MAAStB,GAASA,EAAM,MAAS,KACtC,KAAK,IAAOA,GAASA,EAAM,IAAO,KAE7BuB,EAAS,WACRD,EACF,KAAK,SAAS,kBAAkB,EAEhC,KAAK,SAAS,gBAAgB,EAGpC,CAEmB,WAAkB,CAC/B,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,IACvD,KAAK,iBAAiB,IAAIX,EAAU,CAAE,GAAI,KAAK,KAAO,MAAU,CAAC,EAAG,EAAI,EACxE,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,IACnD,KAAK,iBAAiB,IAAIA,EAAU,CAAE,KAAM,KAAK,OAAS,MAAU,CAAC,EAAG,EAAI,EAC5E,KAAK,0BAA0B,GAEjC,MAAM,UAAU,CAClB,CAEmB,WAAkB,CAC/B,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,IACvD,KAAK,iBAAiB,IAAIA,EAAU,CAAE,GAAI,KAAK,KAAO,MAAU,CAAC,EAAG,EAAI,EACxE,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,IACnD,KAAK,iBAAiB,IAAIA,EAAU,CAAE,KAAM,KAAK,OAAS,MAAU,CAAC,EAAG,EAAI,EAC5E,KAAK,0BAA0B,GAEjC,MAAM,UAAU,CAClB,CAEU,mBAA0B,CAClC,GAAI,CAAC,KAAK,QACR,OAGF,IAAMa,EAAiC,CACrC,eAAgB,KAAK,iBAAmB,KAAK,SAAS,eAAe,EACrE,QAAS,KAAK,YACd,SAAWxB,GAAkB,KAAK,eAAeA,CAAK,CACxD,EAEI,KAAK,uBACPwB,EAAQ,gBAAkB,CAACxB,EAAOyB,EAAQC,EAAOC,IACxC,KAAK,qBAAqB,KAAK,KAAM3B,EAAOyB,EAAQC,EAAOC,CAAY,GAIlF,KAAK,SAAS,iBAAiBH,CAAO,CACxC,CAEU,qBAA4B,CAChC,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,IACvD,KAAK,iBAAiB,IAAIb,EAAU,CAAE,GAAI,KAAK,KAAO,MAAU,CAAC,EAAG,EAAI,EACxE,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,IACnD,KAAK,iBAAiB,IAAIA,EAAU,CAAE,KAAM,KAAK,OAAS,MAAU,CAAC,EAAG,EAAI,EAC5E,KAAK,0BAA0B,EAEnC,CAEU,0BAAiC,CACrC,KAAK,OAAS,CAAC,KAAK,uBAAuB,KAAK,KAAK,IACvD,KAAK,iBAAiB,KAAM,EAAI,EAChC,KAAK,wBAAwB,GAE3B,KAAK,KAAO,CAAC,KAAK,uBAAuB,KAAK,GAAG,IACnD,KAAK,iBAAiB,KAAM,EAAI,EAChC,KAAK,0BAA0B,EAEnC,CAEQ,WAAWZ,EAAkB,CACnC,KAAK,aAAa,KAAK,SAAS,cAAc,CAAC,CACjD,CAEU,aAAaC,EAAqB,CAC1C,IAAM4B,EAAiB,KAAK,wBAAwB5B,CAAK,EACnD6B,EAAO,KAAK,iBAAiBD,CAAc,EAC7C,KAAK,SACP,KAAK,SAAS,eAAepB,EAA4B,OAAO,MAAOoB,CAAc,EAEnF,CAACE,EAAWD,EAAM,KAAK,KAAK,GAAK,KAAK,uBAAuBA,CAAI,GACnE,KAAK,iBAAiB,IAAIlB,EAAU,CAAE,KAAMkB,GAAQ,OAAW,GAAI,KAAK,KAAO,MAAU,CAAC,CAAC,CAE/F,CAEQ,eAAe7B,EAAqB,CAC1C,IAAM4B,EAAiB,KAAK,wBAAwB5B,CAAK,EACnD6B,EAAO,KAAK,iBAAiBD,CAAc,EAC7C,KAAK,SACP,KAAK,SAAS,iBAAiBpB,EAA4B,OAAO,MAAOoB,CAAc,EAErF,CAACE,EAAWD,EAAM,KAAK,GAAG,GAAK,KAAK,uBAAuBA,CAAI,GACjE,KAAK,iBAAiB,IAAIlB,EAAU,CAAE,KAAM,KAAK,OAAS,OAAW,GAAIkB,GAAQ,MAAU,CAAC,CAAC,CAEjG,CAEQ,iBAAwB,CAC1B,KAAK,QAAU,KAAK,kBACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GAEzB,KAAK,SAAS,kBAAkB,CAClC,CAEQ,eAAe9B,EAAuB,CACxC,KAAK,SAAW,CAAC,KAAK,SAAS,eAAeA,EAAI,aAAa,IACjE,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GAGzB,KAAK,oBAAoB,EAErB,KAAK,OACP,KAAK,eAAe,EAAI,CAE5B,CAEmB,cAAcA,EAAuB,CAClD,KAAK,QAAU,KAAK,kBACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GAEzB,KAAK,SAAS,gBAAgB,CAChC,CAEmB,aAAaA,EAAuB,CACjD,KAAK,QAAU,CAAC,KAAK,SAAS,eAAeA,EAAI,aAAa,IAChE,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GAGzB,KAAK,kBAAkB,EAEnB,KAAK,OAAS,CAAC,KAAK,SAAS,eAAeA,EAAI,aAAa,GAC/D,KAAK,eAAe,EAAI,CAE5B,CAEU,qBAAqBC,EAAqB,CAClD,GAAI,KAAK,QACP,OAEF,IAAM4B,EAAiB,KAAK,wBAAwB5B,CAAK,EACnD6B,EAAO,KAAK,iBAAiBD,CAAc,EAC5CE,EAAWD,EAAM,KAAK,KAAK,IAC9B,KAAK,KAAOA,EACZ,KAAK,iBAAiB,IAAIlB,EAAU,CAAE,KAAMkB,GAAQ,OAAW,GAAI,KAAK,KAAO,MAAU,CAAC,CAAC,EAE/F,CAEQ,uBAAuB7B,EAAqB,CAClD,GAAI,KAAK,QACP,OAEF,IAAM4B,EAAiB,KAAK,wBAAwB5B,CAAK,EACnD6B,EAAO,KAAK,iBAAiBD,CAAc,EAC5CE,EAAWD,EAAM,KAAK,GAAG,IAC5B,KAAK,GAAKA,EACV,KAAK,iBAAiB,IAAIlB,EAAU,CAAE,KAAM,KAAK,OAAS,OAAW,GAAIkB,GAAQ,MAAU,CAAC,CAAC,EAEjG,CAEA,IAAW,OAA6C,CACtD,MAAO,CAAE,KAAM,KAAK,KAAM,GAAI,KAAK,EAAG,CACxC,CACA,IAAW,MAAM7B,EAA4C,CACtDA,IACHA,EAAQ,CAAE,KAAM,KAAM,GAAI,IAAK,GAG7BA,EAAM,OAAS,SACjBA,EAAM,KAAO,MAGXA,EAAM,KAAO,SACfA,EAAM,GAAK,MAGb,KAAK,KAAOA,EAAM,KAClB,KAAK,GAAKA,EAAM,GAEhB,KAAK,OAAS,CAAE,KAAM,KAAK,KAAM,GAAI,KAAK,EAAG,CAC/C,CAEA,IAAW,MAAyC,CAClD,IAAM6B,EAAO,KAAK,eAAe,KAAK,KAAK,EAE3C,OAAKA,EAIDE,EAAOF,CAAI,EACN,IAAI,KAAKA,EAAK,QAAQ,CAAC,EAGzBA,EAPE,IAQX,CACA,IAAW,KAAK7B,EAAyC,CACnD,KAAK,QAAUA,IACjB,KAAK,UAAU,KAAK,iBAAiBA,CAAK,CAAC,EACvC,KAAK,iBACP,KAAK,wBAAwB,EACzB,KAAK,OACP,KAAK,SAAS,iBAAiB,IAAIW,EAAU,CAAE,KAAM,KAAK,iBAAiBX,CAAK,GAAK,OAAW,GAAI,KAAK,iBAAiB,KAAK,GAAG,GAAK,MAAU,CAAC,CAAC,GAI3J,CAEA,IAAW,IAAuC,CAChD,IAAM6B,EAAO,KAAK,eAAe,KAAK,GAAG,EAEzC,OAAKA,EAIDE,EAAOF,CAAI,EACN,IAAI,KAAKA,EAAK,QAAQ,CAAC,EAGzBA,EAPE,IAQX,CACA,IAAW,GAAG7B,EAAyC,CACjD,KAAK,MAAQA,IACf,KAAK,YAAY,KAAK,iBAAiBA,CAAK,CAAC,EACzC,KAAK,iBACP,KAAK,0BAA0B,EAC3B,KAAK,OACP,KAAK,SAAS,iBAAiB,IAAIW,EAAU,CAAE,GAAI,KAAK,iBAAiBX,CAAK,GAAK,OAAW,KAAM,KAAK,iBAAiB,KAAK,KAAK,GAAK,MAAU,CAAC,CAAC,GAI7J,CACF,ECzbA,IAAMgC,EAAW,qCACXC,EAAS,oDAkCFC,EAAN,cAAuCC,CAA4H,CASxK,aAAc,CACZ,MAAM,EACNC,EAAa,OAAOC,CAAgB,EACpCC,EAAqB,KAAMN,EAAUC,CAAM,EAC3C,KAAK,YAAc,IAAIM,EAA0B,IAAIC,EAAuB,IAAI,CAAC,CACnF,CAbA,WAAkB,oBAA+B,CAC/C,MAAO,CACL,GAAG,OAAO,OAAOC,EAA2B,kBAAkB,EAC9DC,EAA4B,mBAAmB,KAC/CA,EAA4B,mBAAmB,EACjD,CACF,CASO,yBAAyBC,EAAcC,EAAkBC,EAAwB,CACtF,OAAQF,QACDD,EAA4B,mBAAmB,KAClD,KAAK,KAAOG,EACZ,YACGH,EAA4B,mBAAmB,GAClD,KAAK,GAAKG,EACV,OAEJ,MAAM,yBAAyBF,EAAMC,EAAUC,CAAQ,CACzD,CASF,EALiBC,EAAA,CADdC,EAAmB,GA7BTb,EA8BI,oBAIAY,EAAA,CADdC,EAAmB,GAjCTb,EAkCI,kBAlCJA,EAANY,EAAA,CATNE,EAAc,CACb,KAAMN,EAA4B,YAClC,aAAc,CACZO,EACAC,EACAC,EACAC,CACF,CACF,CAAC,GACYlB,GC9BN,IAAMmB,EAAN,cAAyCC,CAAgG,CAK9I,YAAYC,EAAkD,CAC5D,MAAMA,CAAM,CACd,CAEU,QAAoC,CAC5C,IAAMC,EAAkB,SAAS,cAAcC,EAA4B,WAAW,EACtF,YAAK,iBAAiBD,CAAe,EAC9BA,CACT,CAEA,IAAW,WAA8B,CACvC,OAAO,KAAK,WAAW,cAAc,SAASE,EAAqB,WAAW,gBAAgB,CAChG,CAEA,IAAW,SAA4B,CACrC,OAAO,KAAK,WAAW,cAAc,SAASA,EAAqB,WAAW,gBAAgB,CAChG,CAEA,IAAW,WAAiC,CAC1C,OAAO,KAAK,UACd,CAEA,IAAW,OAAa,CACtB,OAAO,KAAK,SAAS,KACvB,CACA,IAAW,MAAMC,EAAY,CAC3B,KAAK,SAAS,MAAQA,CACxB,CAEA,IAAW,UAAoB,CAC7B,OAAO,KAAK,SAAS,QACvB,CACA,IAAW,SAASA,EAAgB,CAClC,KAAK,SAAS,SAAWA,CAC3B,CAEA,IAAW,SAAmB,CAC5B,OAAO,KAAK,WAAW,SAAW,EACpC,CACA,IAAW,QAAQA,EAAgB,CACjC,KAAK,WAAW,QAAUA,CAC5B,CAEO,SAASC,EAAkE,CAChF,KAAK,SAAS,iBAAiBH,EAA4B,OAAO,OAASI,GAAsDD,EAASC,EAAI,MAAM,CAAC,CACvJ,CAEO,QAAQD,EAA2C,CACxD,KAAK,SAAS,iBAAiB,UAAYC,GAAoB,CACvC,CAAC,KAAK,SAAS,SAASA,EAAI,aAAqB,GAErED,EAASC,CAAG,CAEhB,CAAC,CACH,CAEO,OAAOD,EAA2C,CACvD,KAAK,SAAS,iBAAiB,WAAaC,GAAoB,CACvC,CAAC,KAAK,SAAS,SAASA,EAAI,aAAqB,GAEtED,EAASC,CAAG,CAEhB,CAAC,CACH,CAEQ,iBAAiBL,EAAkD,CAvF7E,IAAAM,EAAAC,EAAAC,EAAAC,EAAAC,EAwFI,KAAK,WAAa,SAAS,cAAcR,EAAqB,WAAW,GAErEI,EAAA,KAAK,QAAQ,UAAb,MAAAA,EAAsB,WACxB,KAAK,WAAW,SAAW,KAEzBC,EAAA,KAAK,QAAQ,UAAb,MAAAA,EAAsB,UACxB,KAAK,WAAW,QAAU,KAAK,QAAQ,QAAQ,SAGjD,KAAK,WAAa,SAAS,cAAc,OAAO,EAChD,KAAK,WAAW,KAAO,OACvB,KAAK,WAAW,cAAcC,EAAA,KAAK,QAAQ,UAAb,YAAAA,EAAsB,kBAAmB,OACvE,KAAK,WAAW,YAAY,KAAK,UAAU,EAE3C,KAAK,SAAW,SAAS,cAAc,OAAO,EAC9C,KAAK,SAAS,KAAO,OACrB,KAAK,SAAS,cAAcC,EAAA,KAAK,QAAQ,UAAb,YAAAA,EAAsB,gBAAiB,KACnE,KAAK,WAAW,YAAY,KAAK,QAAQ,EAEzC,IAAME,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,cAAcD,EAAA,KAAK,QAAQ,UAAb,YAAAA,EAAsB,QAAS,oBACnD,KAAK,WAAW,YAAYC,CAAK,EAEjCX,EAAgB,YAAY,KAAK,UAAU,CAC7C,CACF,ECxGO,SAASY,IAAuC,CACrDC,EAAoBC,CAAwB,CAC9C",
6
- "names": ["elementName", "COMPONENT_NAME_PREFIX", "DatePickerRange", "range", "observedAttributes", "selectors", "events", "DATE_RANGE_PICKER_CONSTANTS", "DateRangePickerAdapter", "BaseDatePickerAdapter", "component", "DATE_RANGE_PICKER_CONSTANTS", "targetElement", "CalendarDropdown", "fromOptions", "_a", "DateInputMask", "toOptions", "input", "type", "listener", "capture", "context", "destroyListenerCb", "listenOwnProperty", "calendarConfig", "dropdownConfig", "id", "value", "emitEvents", "target", "activeEl", "getActiveElement", "isDisabled", "data", "emitEvent", "createToggleElement", "action", "DateRangePickerFoundation", "BaseDatePickerFoundation", "adapter", "evt", "value", "emitOpenEvent", "currentValue", "force", "typedStartValue", "typedEndValue", "detail", "DatePickerRange", "DATE_RANGE_PICKER_CONSTANTS", "today", "range", "DateRange", "inputValue", "parsedDate", "isValidDate", "formattedDate", "suppressValueChanges", "passesMinDate", "passesMaxDate", "passesDateRange", "event", "formattedFromValue", "formattedToValue", "Platform", "options", "masked", "flags", "maskInstance", "sanitizedValue", "date", "isSameDate", "isDate", "template", "styles", "DateRangePickerComponent", "BaseDatePickerComponent", "IconRegistry", "tylIconDateRange", "attachShadowTemplate", "DateRangePickerFoundation", "DateRangePickerAdapter", "BASE_DATE_PICKER_CONSTANTS", "DATE_RANGE_PICKER_CONSTANTS", "name", "oldValue", "newValue", "__decorateClass", "FoundationProperty", "CustomElement", "PopupComponent", "CalendarComponent", "IconButtonComponent", "IconComponent", "DateRangeComponentDelegate", "FormFieldComponentDelegate", "config", "dateRangePicker", "DATE_RANGE_PICKER_CONSTANTS", "TEXT_FIELD_CONSTANTS", "value", "listener", "evt", "_a", "_b", "_c", "_d", "_e", "label", "defineDateRangePickerComponent", "defineCustomElement", "DateRangePickerComponent"]
7
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2023 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- import{a as L}from"./chunk.7IHNVPY5.js";import{a as N}from"./chunk.4DAIIJ37.js";import{a as T}from"./chunk.5KC43VFL.js";import{a as d}from"./chunk.KTGSZEAG.js";import{a as A,b as y}from"./chunk.QOA2O575.js";import{a as O,e as f,g as h,l as I}from"./chunk.HOXFK44F.js";import{k as v,o as u}from"./chunk.J2M2MXP2.js";import{f as a}from"./chunk.MCIQXNKY.js";var C=`${y}expansion-panel`,c={CONTAINER:"forge-expansion-panel",HEADER:"forge-expansion-panel__header",CONTENT:"forge-expansion-panel__content"},x={CONTAINER:`.${c.CONTAINER}`,HEADER:`.${c.HEADER}`,CONTENT:`.${c.CONTENT}`,HEADER_SLOT:`.${c.HEADER} > slot[name=header]`,OPEN_ICON:`[slot=header] ${L.elementName}`},k={TOGGLE:`${C}-toggle`},P={OPEN:"open",ORIENTATION:"orientation",USE_ANIMATIONS:"use-animations",IGNORE:"data-forge-ignore",IGNORE_ALT:"forge-ignore"},p={COLLAPSE_ANIMATION_DURATION:400,CLICK_DEBOUNCE_THRESHOLD:200},S={ORIENTATION_VERTICAL:"vertical",ORIENTATION_HORIZONTAL:"horizontal",EXPANSION_VERTICAL_TRANSITION:`height ${p.COLLAPSE_ANIMATION_DURATION}ms cubic-bezier(0.4, 0, 0.2, 1), opacity ${p.COLLAPSE_ANIMATION_DURATION}ms ease-in-out`,EXPANSION_HORIZONTAL_TRANSITION:`width ${p.COLLAPSE_ANIMATION_DURATION}ms cubic-bezier(0.4, 0, 0.2, 1), opacity ${p.COLLAPSE_ANIMATION_DURATION}ms ease-in-out`},i={elementName:C,classes:c,selectors:x,events:k,attributes:P,numbers:p,strings:S};var m=class extends T{constructor(t){super(t);this._headerElement=h(this._component,i.selectors.HEADER),this._contentElement=h(this._component,i.selectors.CONTENT),this._headerSlotElement=h(this._component,i.selectors.HEADER_SLOT)}initialize(t,n="vertical"){let r=this._headerElement.children[0].assignedNodes();if(this.setHeaderVisibility(!!r.length),n===i.strings.ORIENTATION_HORIZONTAL&&(this._contentElement.style.height="",this._contentElement.style.width="0px"),t){n==="vertical"?this._contentElement.style.height="":this._contentElement.style.width="",this._contentElement.style.removeProperty("opacity"),this._contentElement.style.removeProperty("visibility");let l=this._component.querySelector(i.selectors.OPEN_ICON);l&&(l.open=!0)}this._headerElement.setAttribute("aria-expanded",t?"true":"false")}setHeaderVisibility(t){t?this._headerElement.style.display="":this._headerElement.style.display="none"}setOpenState(t,n=i.strings.ORIENTATION_VERTICAL,r=!0){let l=this._contentElement.children[0].assignedNodes(),s=this._component.querySelector(i.selectors.OPEN_ICON);if(r&&l&&l.length&&l[0]){let E=({propertyName:g})=>{if(this._component.open!==t){this._contentElement.removeEventListener("transitionend",E);return}(g==="height"||g==="width")&&(this._contentElement.removeEventListener("transitionend",E),this._contentElement.style.removeProperty("transition"),t?(n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.width="":this._contentElement.style.height="",this._contentElement.style.removeProperty("opacity")):this._contentElement.style.visibility="hidden")};this._contentElement.addEventListener("transitionend",E),t?(n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.width="0px":this._contentElement.style.height="0px",this._contentElement.style.opacity="0",this._contentElement.style.removeProperty("visibility")):(n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.width=`${this._contentElement.scrollWidth}px`:this._contentElement.style.height=`${this._contentElement.scrollHeight}px`,this._contentElement.style.opacity="1"),n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.transition=i.strings.EXPANSION_HORIZONTAL_TRANSITION:this._contentElement.style.transition=i.strings.EXPANSION_VERTICAL_TRANSITION,this._activeAnimationFrame=window.requestAnimationFrame(()=>{this._activeAnimationFrame=window.requestAnimationFrame(()=>{this._activeAnimationFrame=void 0,t?(n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.width=`${this._contentElement.scrollWidth}px`:this._contentElement.style.height=`${this._contentElement.scrollHeight}px`,this._contentElement.style.opacity="1",this._headerElement.setAttribute("aria-expanded","true"),s&&(s.open=!0)):(n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.width="0px":this._contentElement.style.height="0px",this._contentElement.style.opacity="0",this._headerElement.setAttribute("aria-expanded","false"),s&&(s.open=!1))})})}else this._activeAnimationFrame&&(window.cancelAnimationFrame(this._activeAnimationFrame),this._activeAnimationFrame=void 0),this._contentElement.style.removeProperty("transition"),t?(n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.width="":this._contentElement.style.height="",this._contentElement.style.removeProperty("visibility"),this._contentElement.style.removeProperty("opacity"),this._headerElement.setAttribute("aria-expanded","true"),s&&(s.open=!0)):(n===i.strings.ORIENTATION_HORIZONTAL?this._contentElement.style.width="0px":this._contentElement.style.height="0px",this._contentElement.style.opacity="0",this._contentElement.style.visibility="hidden",this._headerElement.setAttribute("aria-expanded","false"),s&&(s.open=!1))}registerClickListener(t){this._headerElement.addEventListener("click",t)}deregisterClickListener(t){this._headerElement.removeEventListener("click",t)}registerKeydownListener(t){this._headerElement.addEventListener("keydown",t)}deregisterKeydownListener(t){this._headerElement.removeEventListener("keydown",t)}registerHeaderSlotListener(t){this._headerSlotElement.addEventListener("slotchange",t)}deregisterHeaderSlotListener(t){this._headerSlotElement.removeEventListener("slotchange",t)}};var _=class{constructor(e){this._adapter=e;this._open=!1;this._useAnimations=!0;this._orientation=i.strings.ORIENTATION_VERTICAL;this._isInitialized=!1;this._clickListener=u(t=>this._onClick(t),i.numbers.CLICK_DEBOUNCE_THRESHOLD,!0),this._keydownListener=t=>this._onKeydown(t),this._headerSlotChangeListener=t=>this._onHeaderSlotChanged(t)}initialize(){this.connect(),this._adapter.initialize(this._open,this._orientation),this._isInitialized=!0}connect(){this._adapter.registerHeaderSlotListener(this._headerSlotChangeListener),this._adapter.registerClickListener(this._clickListener),this._adapter.registerKeydownListener(this._keydownListener)}disconnect(){this._adapter.deregisterHeaderSlotListener(this._headerSlotChangeListener),this._adapter.deregisterClickListener(this._clickListener),this._adapter.deregisterKeydownListener(this._keydownListener)}setOpenImmediate(e){e?this._openPanel(!1):this._closePanel(!1)}_applyOpen(e){if(!this._isInitialized){this._open=e;return}e?this._openCallback?Promise.resolve(this._openCallback()).then(()=>{this._open=e,this._openPanel(this._useAnimations)}).catch(()=>{}):(this._open=e,this._openPanel(this._useAnimations)):this._closeCallback?Promise.resolve(this._closeCallback()).then(()=>{this._open=e,this._closePanel(this._useAnimations)}).catch(()=>{}):(this._open=e,this._closePanel(this._useAnimations))}get open(){return this._open}set open(e){e=Boolean(e),this._open!==e&&this._applyOpen(e)}get openCallback(){return this._openCallback}set openCallback(e){this._openCallback=e}get closeCallback(){return this._closeCallback}set closeCallback(e){this._closeCallback=e}get orientation(){return this._orientation}set orientation(e){this._orientation=e}get useAnimations(){return this._useAnimations}set useAnimations(e){this._useAnimations!==!!e&&(this._useAnimations=!!e,this._adapter.setHostAttribute(i.attributes.USE_ANIMATIONS,`${this._useAnimations}`))}_onClick(e){N(e).find(t=>t.nodeType===1&&(t.hasAttribute(i.attributes.IGNORE)||t.hasAttribute(i.attributes.IGNORE_ALT)))||(e.stopPropagation(),this._toggle(),this._emitEvent())}_onKeydown(e){(e.key===" "||e.key==="Enter")&&(e.stopPropagation(),e.preventDefault(),this._toggle(),this._emitEvent())}_emitEvent(){this._adapter.emitHostEvent(i.events.TOGGLE,this._open)}_toggle(){this.open=!this.open}_openPanel(e){this._adapter.setHostAttribute(i.attributes.OPEN,""),this._adapter.setOpenState(!0,this._orientation,e)}_closePanel(e){this._adapter.removeHostAttribute(i.attributes.OPEN),this._adapter.setOpenState(!1,this._orientation,e)}_onHeaderSlotChanged(e){this._adapter.setHeaderVisibility(!!e.target.assignedNodes().length)}};var R='<template><div class="forge-expansion-panel" part="root"><div class="forge-expansion-panel__header" part="header"><slot name="header"></slot></div><div class="forge-expansion-panel__content" style="height: 0; opacity: 0; visibility: hidden;" part="content"><slot></slot></div></div></template>',w=".forge-expansion-panel{display:block;display:var(--forge-expansion-panel-display,block);height:auto;height:var(--forge-expansion-panel-height,auto)}.forge-expansion-panel__header{outline:0}.forge-expansion-panel__header:hover{cursor:pointer}.forge-expansion-panel__header forge-open-icon{margin-left:auto}.forge-expansion-panel__content{overflow:hidden;overflow:var(--forge-expansion-panel-content-overflow,hidden);max-height:none;max-height:var(--forge-expansion-panel-content-max-height,none)}.forge-expansion-panel__content::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-expansion-panel__content::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-expansion-panel__content::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-expansion-panel__content::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-expansion-panel__content::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-expansion-panel__content::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}:host{display:block}:host([hidden]){display:none}",o=class extends I{constructor(){super();f(this,R,w),this._foundation=new _(new m(this))}static get observedAttributes(){return[i.attributes.OPEN,i.attributes.ORIENTATION,i.attributes.USE_ANIMATIONS]}initializedCallback(){this._foundation.initialize()}connectedCallback(){this._foundation.connect()}attributeChangedCallback(t,n,r){switch(t){case i.attributes.OPEN:this.open=v(r);break;case i.attributes.ORIENTATION:this.orientation=r;break;case i.attributes.USE_ANIMATIONS:this.useAnimations=v(r);break}}disconnectedCallback(){this._foundation.disconnect()}toggle(){this.open=!this.open}setOpenImmediate(t){this._foundation.setOpenImmediate(t)}};a([d()],o.prototype,"open",2),a([d()],o.prototype,"openCallback",2),a([d()],o.prototype,"closeCallback",2),a([d()],o.prototype,"orientation",2),a([d()],o.prototype,"useAnimations",2),o=a([A({name:i.elementName})],o);function ie(){O(o)}export{i as a,m as b,_ as c,o as d,ie as e};
7
- //# sourceMappingURL=chunk.RH4E52PS.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/expansion-panel/expansion-panel-constants.ts", "../../src/expansion-panel/expansion-panel-adapter.ts", "../../src/expansion-panel/expansion-panel-foundation.ts", "../../src/expansion-panel/expansion-panel.ts", "../../src/expansion-panel/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { OPEN_ICON_CONSTANTS } from '../open-icon';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}expansion-panel`;\n\nconst classes = {\n CONTAINER: 'forge-expansion-panel',\n HEADER: 'forge-expansion-panel__header',\n CONTENT: 'forge-expansion-panel__content'\n};\n\nconst selectors = {\n CONTAINER: `.${classes.CONTAINER}`,\n HEADER: `.${classes.HEADER}`,\n CONTENT: `.${classes.CONTENT}`,\n HEADER_SLOT: `.${classes.HEADER} > slot[name=header]`,\n OPEN_ICON: `[slot=header] ${OPEN_ICON_CONSTANTS.elementName}`\n};\n\nconst events = {\n TOGGLE: `${elementName}-toggle`\n};\n\nconst attributes = {\n OPEN: 'open',\n ORIENTATION: 'orientation',\n USE_ANIMATIONS: 'use-animations',\n IGNORE: 'data-forge-ignore',\n IGNORE_ALT: 'forge-ignore'\n};\n\nconst numbers = {\n COLLAPSE_ANIMATION_DURATION: 400,\n CLICK_DEBOUNCE_THRESHOLD: 200\n};\n\nconst strings = {\n ORIENTATION_VERTICAL: 'vertical',\n ORIENTATION_HORIZONTAL: 'horizontal',\n EXPANSION_VERTICAL_TRANSITION: `height ${numbers.COLLAPSE_ANIMATION_DURATION}ms cubic-bezier(0.4, 0, 0.2, 1), opacity ${numbers.COLLAPSE_ANIMATION_DURATION}ms ease-in-out`,\n EXPANSION_HORIZONTAL_TRANSITION: `width ${numbers.COLLAPSE_ANIMATION_DURATION}ms cubic-bezier(0.4, 0, 0.2, 1), opacity ${numbers.COLLAPSE_ANIMATION_DURATION}ms ease-in-out`\n};\n\nexport const EXPANSION_PANEL_CONSTANTS = {\n elementName,\n classes,\n selectors,\n events,\n attributes,\n numbers,\n strings\n};\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { OpenIconComponent } from '../open-icon';\nimport { IExpansionPanelComponent } from './expansion-panel';\nimport { EXPANSION_PANEL_CONSTANTS } from './expansion-panel-constants';\n\nexport interface IExpansionPanelAdapter extends IBaseAdapter {\n initialize: (open: boolean, orientation: string) => void;\n setHeaderVisibility: (visible: boolean) => void;\n setOpenState: (open: boolean, orientation: string, animate: boolean) => void;\n registerClickListener: (listener: (evt: MouseEvent) => void) => void;\n deregisterClickListener: (listener: (evt: MouseEvent) => void) => void;\n registerKeydownListener: (listener: (evt: KeyboardEvent) => void) => void;\n deregisterKeydownListener: (listener: (evt: KeyboardEvent) => void) => void;\n registerHeaderSlotListener: (listener: (evt: Event) => void) => void;\n deregisterHeaderSlotListener: (listener: (evt: Event) => void) => void;\n}\n\nexport class ExpansionPanelAdapter extends BaseAdapter<IExpansionPanelComponent> implements IExpansionPanelAdapter {\n private _headerElement: HTMLElement;\n private _contentElement: HTMLElement;\n private _headerSlotElement: HTMLSlotElement;\n private _activeAnimationFrame: number | undefined;\n\n constructor(component: IExpansionPanelComponent) {\n super(component);\n this._headerElement = getShadowElement(this._component, EXPANSION_PANEL_CONSTANTS.selectors.HEADER);\n this._contentElement = getShadowElement(this._component, EXPANSION_PANEL_CONSTANTS.selectors.CONTENT);\n this._headerSlotElement = getShadowElement(this._component, EXPANSION_PANEL_CONSTANTS.selectors.HEADER_SLOT) as HTMLSlotElement;\n }\n\n public initialize(open: boolean, orientation = 'vertical'): void {\n const assignedNodes = (this._headerElement.children[0] as HTMLSlotElement).assignedNodes();\n this.setHeaderVisibility(!!assignedNodes.length);\n\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.height = '';\n this._contentElement.style.width = '0px';\n }\n\n if (open) {\n if (orientation === 'vertical') {\n this._contentElement.style.height = '';\n } else {\n this._contentElement.style.width = '';\n }\n this._contentElement.style.removeProperty('opacity');\n this._contentElement.style.removeProperty('visibility');\n const openIconElement = this._component.querySelector(EXPANSION_PANEL_CONSTANTS.selectors.OPEN_ICON) as OpenIconComponent;\n if (openIconElement) {\n openIconElement.open = true;\n }\n }\n\n this._headerElement.setAttribute('aria-expanded', open ? 'true' : 'false');\n }\n\n public setHeaderVisibility(visible: boolean): void {\n if (visible) {\n this._headerElement.style.display = '';\n } else {\n this._headerElement.style.display = 'none';\n }\n }\n\n public setOpenState(opening: boolean, orientation = EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_VERTICAL, animate = true): void {\n const assignedNodes = (this._contentElement.children[0] as HTMLSlotElement).assignedNodes();\n const openIconElement = this._component.querySelector(EXPANSION_PANEL_CONSTANTS.selectors.OPEN_ICON) as OpenIconComponent;\n\n if (animate && assignedNodes && assignedNodes.length && assignedNodes[0]) {\n const transitionEndListener = ({ propertyName }: TransitionEvent): void => {\n // If the state has changed since it started, then ignore the transition\n if (this._component.open !== opening) {\n this._contentElement.removeEventListener('transitionend', transitionEndListener);\n return;\n }\n if (propertyName === 'height' || propertyName === 'width') {\n this._contentElement.removeEventListener('transitionend', transitionEndListener);\n this._contentElement.style.removeProperty('transition');\n if (opening) {\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.width = '';\n } else {\n this._contentElement.style.height = '';\n }\n this._contentElement.style.removeProperty('opacity');\n } else {\n // We set to hidden to ensure that collapsed elements are non-interactive\n this._contentElement.style.visibility = 'hidden';\n }\n }\n };\n this._contentElement.addEventListener('transitionend', transitionEndListener);\n\n if (opening) {\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.width = '0px';\n } else {\n this._contentElement.style.height = '0px';\n }\n this._contentElement.style.opacity = '0';\n this._contentElement.style.removeProperty('visibility');\n } else {\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.width = `${this._contentElement.scrollWidth}px`;\n } else {\n this._contentElement.style.height = `${this._contentElement.scrollHeight}px`;\n }\n this._contentElement.style.opacity = '1';\n }\n\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.transition = EXPANSION_PANEL_CONSTANTS.strings.EXPANSION_HORIZONTAL_TRANSITION;\n } else {\n this._contentElement.style.transition = EXPANSION_PANEL_CONSTANTS.strings.EXPANSION_VERTICAL_TRANSITION;\n }\n\n this._activeAnimationFrame = window.requestAnimationFrame(() => {\n this._activeAnimationFrame = window.requestAnimationFrame(() => {\n this._activeAnimationFrame = undefined;\n if (opening) {\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.width = `${this._contentElement.scrollWidth}px`;\n } else {\n this._contentElement.style.height = `${this._contentElement.scrollHeight}px`;\n }\n this._contentElement.style.opacity = '1';\n this._headerElement.setAttribute('aria-expanded', 'true');\n if (openIconElement) {\n openIconElement.open = true;\n }\n } else {\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.width = '0px';\n } else {\n this._contentElement.style.height = '0px';\n }\n this._contentElement.style.opacity = '0';\n this._headerElement.setAttribute('aria-expanded', 'false');\n if (openIconElement) {\n openIconElement.open = false;\n }\n }\n });\n });\n } else {\n if (this._activeAnimationFrame) {\n window.cancelAnimationFrame(this._activeAnimationFrame);\n this._activeAnimationFrame = undefined;\n }\n\n this._contentElement.style.removeProperty('transition');\n if (opening) {\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.width = '';\n } else {\n this._contentElement.style.height = '';\n }\n this._contentElement.style.removeProperty('visibility');\n this._contentElement.style.removeProperty('opacity');\n this._headerElement.setAttribute('aria-expanded', 'true');\n if (openIconElement) {\n openIconElement.open = true;\n }\n } else {\n if (orientation === EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_HORIZONTAL) {\n this._contentElement.style.width = '0px';\n } else {\n this._contentElement.style.height = '0px';\n }\n this._contentElement.style.opacity = '0';\n this._contentElement.style.visibility = 'hidden';\n this._headerElement.setAttribute('aria-expanded', 'false');\n if (openIconElement) {\n openIconElement.open = false;\n }\n }\n }\n }\n\n public registerClickListener(listener: (evt: MouseEvent) => void): void {\n this._headerElement.addEventListener('click', listener);\n }\n\n public deregisterClickListener(listener: (evt: MouseEvent) => void): void {\n this._headerElement.removeEventListener('click', listener);\n }\n\n public registerKeydownListener(listener: (evt: KeyboardEvent) => void): void {\n this._headerElement.addEventListener('keydown', listener);\n }\n\n public deregisterKeydownListener(listener: (evt: KeyboardEvent) => void): void {\n this._headerElement.removeEventListener('keydown', listener);\n }\n\n public registerHeaderSlotListener(listener: (evt: Event) => void): void {\n this._headerSlotElement.addEventListener('slotchange', listener);\n }\n\n public deregisterHeaderSlotListener(listener: (evt: Event) => void): void {\n this._headerSlotElement.removeEventListener('slotchange', listener);\n }\n}\n", "import { debounce, getEventPath, ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IExpansionPanelAdapter } from './expansion-panel-adapter';\nimport { EXPANSION_PANEL_CONSTANTS } from './expansion-panel-constants';\n\nexport interface IExpansionPanelFoundation extends ICustomElementFoundation {\n open: boolean;\n orientation: string;\n useAnimations: boolean;\n openCallback: () => void | Promise<void>;\n closeCallback: () => void | Promise<void>;\n setOpenImmediate(open: boolean): void;\n}\n\nexport class ExpansionPanelFoundation implements IExpansionPanelFoundation {\n private _open = false;\n private _useAnimations = true;\n private _openCallback: () => void | Promise<void>;\n private _closeCallback: () => void | Promise<void>;\n private _orientation = EXPANSION_PANEL_CONSTANTS.strings.ORIENTATION_VERTICAL;\n private _clickListener: (evt: MouseEvent) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _headerSlotChangeListener: (evt: Event) => void;\n private _isInitialized = false;\n\n constructor(private _adapter: IExpansionPanelAdapter) {\n this._clickListener = debounce((evt: MouseEvent) => this._onClick(evt), EXPANSION_PANEL_CONSTANTS.numbers.CLICK_DEBOUNCE_THRESHOLD, true);\n this._keydownListener = (evt: KeyboardEvent) => this._onKeydown(evt);\n this._headerSlotChangeListener = (evt: Event) => this._onHeaderSlotChanged(evt);\n }\n\n public initialize(): void {\n this.connect();\n this._adapter.initialize(this._open, this._orientation);\n this._isInitialized = true;\n }\n\n public connect(): void {\n this._adapter.registerHeaderSlotListener(this._headerSlotChangeListener);\n this._adapter.registerClickListener(this._clickListener);\n this._adapter.registerKeydownListener(this._keydownListener);\n }\n\n public disconnect(): void {\n this._adapter.deregisterHeaderSlotListener(this._headerSlotChangeListener);\n this._adapter.deregisterClickListener(this._clickListener);\n this._adapter.deregisterKeydownListener(this._keydownListener);\n }\n\n public setOpenImmediate(open: boolean): void {\n if (open) {\n this._openPanel(false);\n } else {\n this._closePanel(false);\n }\n }\n\n private _applyOpen(value: boolean): void {\n if (!this._isInitialized) {\n this._open = value;\n return;\n }\n\n if (value) {\n if (this._openCallback) {\n Promise.resolve(this._openCallback())\n .then(() => {\n this._open = value;\n this._openPanel(this._useAnimations);\n })\n .catch(() => {});\n } else {\n this._open = value;\n this._openPanel(this._useAnimations);\n }\n } else {\n if (this._closeCallback) {\n Promise.resolve(this._closeCallback())\n .then(() => {\n this._open = value;\n this._closePanel(this._useAnimations);\n })\n .catch(() => {});\n } else {\n this._open = value;\n this._closePanel(this._useAnimations);\n }\n }\n }\n\n /** Controls the open state of the panel. */\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._applyOpen(value);\n }\n }\n\n public get openCallback(): () => void | Promise<void> {\n return this._openCallback;\n }\n public set openCallback(callback: () => void | Promise<void>) {\n this._openCallback = callback;\n }\n\n public get closeCallback(): () => void | Promise<void> {\n return this._closeCallback;\n }\n public set closeCallback(callback: () => void | Promise<void>) {\n this._closeCallback = callback;\n }\n\n public get orientation(): string {\n return this._orientation;\n }\n public set orientation(value: string) {\n this._orientation = value;\n }\n\n public get useAnimations(): boolean {\n return this._useAnimations;\n }\n public set useAnimations(value: boolean) {\n if (this._useAnimations !== !!value) {\n this._useAnimations = !!value;\n this._adapter.setHostAttribute(EXPANSION_PANEL_CONSTANTS.attributes.USE_ANIMATIONS, `${this._useAnimations}`);\n }\n }\n\n /**\n * Handles click events on the header element.\n * @param {MouseEvent} evt The click event.\n */\n private _onClick(evt: MouseEvent): void {\n if (getEventPath(evt).find(p => p.nodeType === 1 && (p.hasAttribute(EXPANSION_PANEL_CONSTANTS.attributes.IGNORE) || p.hasAttribute(EXPANSION_PANEL_CONSTANTS.attributes.IGNORE_ALT)))) {\n return;\n }\n\n evt.stopPropagation();\n this._toggle();\n this._emitEvent();\n }\n\n /**\n * Handles keydown events on the header.\n * @param {KeyboardEvent} evt The keydown event\n */\n private _onKeydown(evt: KeyboardEvent): void {\n if (evt.key === ' ' || evt.key === 'Enter') {\n evt.stopPropagation();\n evt.preventDefault();\n this._toggle();\n this._emitEvent();\n }\n }\n\n private _emitEvent(): void {\n this._adapter.emitHostEvent(EXPANSION_PANEL_CONSTANTS.events.TOGGLE, this._open);\n }\n\n private _toggle(): void {\n this.open = !this.open;\n }\n\n private _openPanel(animate: boolean): void {\n this._adapter.setHostAttribute(EXPANSION_PANEL_CONSTANTS.attributes.OPEN, '');\n this._adapter.setOpenState(true, this._orientation, animate);\n }\n\n private _closePanel(animate: boolean): void {\n this._adapter.removeHostAttribute(EXPANSION_PANEL_CONSTANTS.attributes.OPEN);\n this._adapter.setOpenState(false, this._orientation, animate);\n }\n\n private _onHeaderSlotChanged(evt: Event): void {\n this._adapter.setHeaderVisibility(!!(evt.target as HTMLSlotElement).assignedNodes().length);\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { ExpansionPanelAdapter } from './expansion-panel-adapter';\nimport { EXPANSION_PANEL_CONSTANTS } from './expansion-panel-constants';\nimport { ExpansionPanelFoundation } from './expansion-panel-foundation';\n\nconst template = '<template><div class=\\\"forge-expansion-panel\\\" part=\\\"root\\\"><div class=\\\"forge-expansion-panel__header\\\" part=\\\"header\\\"><slot name=\\\"header\\\"></slot></div><div class=\\\"forge-expansion-panel__content\\\" style=\\\"height: 0; opacity: 0; visibility: hidden;\\\" part=\\\"content\\\"><slot></slot></div></div></template>';\nconst styles = '.forge-expansion-panel{display:block;display:var(--forge-expansion-panel-display,block);height:auto;height:var(--forge-expansion-panel-height,auto)}.forge-expansion-panel__header{outline:0}.forge-expansion-panel__header:hover{cursor:pointer}.forge-expansion-panel__header forge-open-icon{margin-left:auto}.forge-expansion-panel__content{overflow:hidden;overflow:var(--forge-expansion-panel-content-overflow,hidden);max-height:none;max-height:var(--forge-expansion-panel-content-max-height,none)}.forge-expansion-panel__content::-webkit-scrollbar{width:16px;width:var(--forge-scrollbar-width,16px);height:16px;height:var(--forge-scrollbar-height,16px)}.forge-expansion-panel__content::-webkit-scrollbar-corner{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-expansion-panel__content::-webkit-scrollbar-track{background-color:#f0f0f0;background-color:var(--forge-theme-scrollbar-track,#f0f0f0)}.forge-expansion-panel__content::-webkit-scrollbar-track:hover{background-color:#ececec;background-color:var(--forge-theme-scrollbar-track-hover,#ececec)}.forge-expansion-panel__content::-webkit-scrollbar-thumb{background-color:#bdbdbd;background-color:var(--forge-theme-scrollbar-thumb,#bdbdbd);height:32px;height:var(--forge-scrollbar-min-height,32px);width:32px;width:var(--forge-scrollbar-min-width,32px);border-radius:10px;border-radius:var(--forge-scrollbar-border-radius,10px);border-width:3px;border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-clip:content-box}.forge-expansion-panel__content::-webkit-scrollbar-thumb:hover{background-color:#9e9e9e;background-color:var(--forge-theme-scrollbar-thumb-hover,#9e9e9e)}:host{display:block}:host([hidden]){display:none}';\n\nexport interface IExpansionPanelComponent extends IBaseComponent {\n open: boolean;\n useAnimations: boolean;\n openCallback: () => void | Promise<void>;\n closeCallback: () => void | Promise<void>;\n orientation: string;\n toggle(): void;\n setOpenImmediate(open: boolean): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-expansion-panel': IExpansionPanelComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-expansion-panel-toggle': CustomEvent<boolean>;\n }\n}\n\n/**\n * A web component that encapsulates the functionality of expanding/collapsing content when clicked.\n * \n * @tag forge-expansion-panel\n */\n@CustomElement({\n name: EXPANSION_PANEL_CONSTANTS.elementName\n})\nexport class ExpansionPanelComponent extends BaseComponent implements IExpansionPanelComponent {\n public static get observedAttributes(): string[] {\n return [\n EXPANSION_PANEL_CONSTANTS.attributes.OPEN,\n EXPANSION_PANEL_CONSTANTS.attributes.ORIENTATION,\n EXPANSION_PANEL_CONSTANTS.attributes.USE_ANIMATIONS\n ];\n }\n\n private _foundation: ExpansionPanelFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ExpansionPanelFoundation(new ExpansionPanelAdapter(this));\n }\n\n public initializedCallback(): void {\n this._foundation.initialize();\n }\n\n public connectedCallback(): void {\n this._foundation.connect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case EXPANSION_PANEL_CONSTANTS.attributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case EXPANSION_PANEL_CONSTANTS.attributes.ORIENTATION:\n this.orientation = newValue;\n break;\n case EXPANSION_PANEL_CONSTANTS.attributes.USE_ANIMATIONS:\n this.useAnimations = coerceBoolean(newValue);\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Controls the open state of the panel. */\n @FoundationProperty()\n public declare open: boolean;\n\n /**\n * Sets the function to call when the panel wants to open.\n * The function must return a promise which can be resolved to\n * open the panel or rejected which cancels the panel open.\n */\n @FoundationProperty()\n public declare openCallback: () => void | Promise<void>;\n\n /**\n * Sets the function to call when the panel wants to close.\n * The function must return a promise which can be resolved to\n * close the panel or rejected which cancels the panel close.\n */\n @FoundationProperty()\n public declare closeCallback: () => void | Promise<void>;\n\n /**\n * Sets the orientation of the panel expansion.\n * Valid values are 'vertical' (default) or 'horizontal'.\n */\n @FoundationProperty()\n public declare orientation: string;\n\n /** Gets/sets if animations are used in the expand/collapse transition. */\n @FoundationProperty()\n public declare useAnimations: boolean;\n\n /** Toggles the collapsed state. */\n public toggle(): void {\n this.open = !this.open;\n }\n\n /** Forces the expansion panel to expand/collapse without transition animations. */\n public setOpenImmediate(open: boolean): void {\n this._foundation.setOpenImmediate(open);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ExpansionPanelComponent } from './expansion-panel';\n\nexport * from './expansion-panel-adapter';\nexport * from './expansion-panel-constants';\nexport * from './expansion-panel-foundation';\nexport * from './expansion-panel';\n\nexport function defineExpansionPanelComponent(): void {\n defineCustomElement(ExpansionPanelComponent);\n}\n"],
5
- "mappings": "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",
6
- "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "OPEN_ICON_CONSTANTS", "events", "attributes", "numbers", "strings", "EXPANSION_PANEL_CONSTANTS", "ExpansionPanelAdapter", "BaseAdapter", "component", "getShadowElement", "EXPANSION_PANEL_CONSTANTS", "open", "orientation", "assignedNodes", "openIconElement", "visible", "opening", "animate", "transitionEndListener", "propertyName", "listener", "ExpansionPanelFoundation", "_adapter", "EXPANSION_PANEL_CONSTANTS", "debounce", "evt", "open", "value", "callback", "getEventPath", "p", "animate", "template", "styles", "ExpansionPanelComponent", "BaseComponent", "attachShadowTemplate", "ExpansionPanelFoundation", "ExpansionPanelAdapter", "EXPANSION_PANEL_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "open", "__decorateClass", "FoundationProperty", "CustomElement", "defineExpansionPanelComponent", "defineCustomElement", "ExpansionPanelComponent"]
7
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2023 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- import{a as k}from"./chunk.D43PPRFO.js";import{e as V,h as B,j as H}from"./chunk.WOTVTBJS.js";import{c as x}from"./chunk.SXTM6OK4.js";import{a as m,b as N}from"./chunk.DYF2MREZ.js";import{d as K}from"./chunk.JD4APKZS.js";import{b as A}from"./chunk.BL4IBI6G.js";import{e as F}from"./chunk.3C44DXZ2.js";import{d as P}from"./chunk.MZLPUI6R.js";import{d as w}from"./chunk.IWICN773.js";import{a as S}from"./chunk.5KC43VFL.js";import{a as p}from"./chunk.KTGSZEAG.js";import{a as T,b as D,d as y}from"./chunk.QOA2O575.js";import{a as L,e as C}from"./chunk.HOXFK44F.js";import{m as M}from"./chunk.4LA6HEA7.js";import{a as g,b as O,i as I,k as _}from"./chunk.J2M2MXP2.js";import{a as c,b,f as a}from"./chunk.MCIQXNKY.js";var l=`${D}menu`,U={POPUP:"forge-menu__popup",MENU:"mdc-menu"},G={TOGGLE:`.${l}__toggle,[${l}-toggle],button,[type=button],[role=button],a,[tabindex]:not([tabindex^="-"])`,MENU_LIST:"forge-list"},R={OPEN:"open",PLACEMENT:"placement",SELECTED_INDEX:"selected-index",SELECTED_VALUE:"selected-value",DENSE:"dense",ICON_CLASS:"icon-class",PERSIST_SELECTION:"persist-selection",MODE:"mode",SYNC_POPUP_WIDTH:"sync-popup-width",POPUP_CLASSES:"popup-classes",OPTION_LIMIT:"option-limit",OBSERVE_SCROLL:"observe-scroll",OBSERVE_SCROLL_THRESHOLD:"observe-scroll-threshold"},$={SELECT:`${l}-select`,OPEN:`${l}-open`,CLOSE:`${l}-close`,ACTIVE_CHANGE:`${l}-active-change`},z={CHILD_MOUSE_LEAVE_TIMEOUT:300,POPUP_MOUSE_LEAVE_TIMEOUT:500},i={elementName:l,classes:U,selectors:G,attributes:R,events:$,numbers:z};var u=class extends S{constructor(e){super(e);this._childMenus=new Map}getDropdownElement(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.dropdownElement)!=null?t:null}hasTargetElement(){return!!this._targetElement}initializeTarget(){this._targetElement=this._component.querySelector(i.selectors.TOGGLE),this._targetElement||(this._targetElement=this._component.firstElementChild)}initializeAccessibility(e){!this._targetElement||(this._targetElement.setAttribute("aria-atomic","true"),this._targetElement.setAttribute("aria-live","assertive"),this._targetElement.setAttribute("aria-haspopup","true"),this._targetElement.setAttribute("aria-expanded","false"),this._targetElement.hasAttribute("aria-label")||this._targetElement.setAttribute("aria-label",this._targetElement.textContent||""))}addTargetListener(e,t,n=!1){this._targetElement&&this._targetElement.addEventListener(e,t,n)}removeTargetListener(e,t){this._targetElement&&this._targetElement.removeEventListener(e,t)}attachMenu(e){this._listDropdown||!this._targetElement||(this._listDropdown=new B(this._targetElement,e),this._listDropdown.open(),this._targetElement.setAttribute("aria-expanded","true"),this._targetElement.setAttribute("aria-controls",`list-dropdown-popup-${e.id}`))}setOptions(e){this._listDropdown&&this._listDropdown.setOptions(e)}detachMenu(){this._targetElement&&(this._targetElement.removeAttribute("aria-activedescendant"),this._targetElement.removeAttribute("aria-expanded"),this._targetElement.removeAttribute("aria-controls")),this._listDropdown&&(this._listDropdown.close(),this._listDropdown.destroy(),this._listDropdown=void 0)}setActiveOption(e){var t;(t=this._listDropdown)==null||t.activateOption(e)}activateFirstOption(){var e;(e=this._listDropdown)==null||e.activateFirstOption()}setCascadeTargetInactive(){let e=this._targetElement;e!=null&&e.active&&(e.active=!1)}getActiveOptionIndex(){var e,t;return(t=(e=this._listDropdown)==null?void 0:e.getActiveOptionIndex())!=null?t:-1}focusTarget(){this._targetElement&&this._targetElement.focus()}isTargetFocused(){return document.activeElement===this._targetElement}updateActiveDescendant(e){!this._targetElement||(e?this._targetElement.setAttribute("aria-activedescendant",e):this._targetElement.removeAttribute("aria-activedescendant"))}addDropdownListener(e,t){!this._listDropdown||!this._listDropdown.dropdownElement||this._listDropdown.dropdownElement.addEventListener(e,t)}isOwnElement(e){return!this._targetElement||!this._listDropdown||!this._listDropdown.dropdownElement?!1:this._targetElement.contains(e)||!!this._listDropdown.dropdownElement.contains(e)}propagateKey(e){var t;(t=this._listDropdown)==null||t.handleKey(e)}proxyKeyboardEventToChild(e,t){if(!this.getDropdownElement())return;let n=this._getOpenChildMenu(t);n&&n.propagateKeyEvent(e)}toggleChildMenu(e,t){let r=this._getListItems()[e].parentElement;r&&r.tagName.toLowerCase()===i.elementName&&(t===void 0?r.open=!r.open:r.open=t,r.activateFirstOption())}createChildMenu(e,t,n,o,r){let d=document.createElement("forge-menu");return d.style.display="block",d.addEventListener(i.events.OPEN,()=>{this._childMenus.set(e,d),n(e)}),d.addEventListener(i.events.CLOSE,()=>{this._childMenus.delete(e),o(e)}),d.addEventListener(i.events.SELECT,f=>{f.stopPropagation(),r(b(c({},f.detail),{parentValue:t}))}),d}closeOtherChildMenus(e){let t=[];this._childMenus.forEach((n,o)=>{o!==e&&(n.open=!1,t.push(o))}),t.forEach(n=>this._childMenus.delete(n))}setSelectedValues(e){var t;(t=this._listDropdown)==null||t.setSelectedValues(e)}_getOpenChildMenu(e){if(!this.getDropdownElement())return null;let t=this._getOwnList(e);return t?t.querySelector(`${i.elementName}[${i.attributes.OPEN}]`):null}_getOwnList(e){let t=this.getDropdownElement();return t?t.querySelector(`${m.elementName}[id="list-dropdown-list-${e}"]`):null}_getListItems(){let e=this.getDropdownElement();if(!e)return[];let t=e.querySelector(m.elementName);return t?Array.from(t.querySelectorAll(N.elementName)):[]}};var h=class extends H{constructor(e){super({popupTimeout:i.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,targetTimeout:i.numbers.CHILD_MOUSE_LEAVE_TIMEOUT});this._adapter=e;this._placement="bottom-start";this._fallbackPlacements=[];this._dense=!1;this._iconClass=y;this._persistSelection=!1;this._mode="click";this._identifier=g(),this._clickListener=t=>this._onTargetClick(t),this._blurListener=t=>this._onTargetBlur(t),this._selectListener=t=>this._handleSelectEvent(t),this._keydownListener=t=>this.onKeydown(t),this._activeChangeListener=t=>this._onActiveOptionChanged(t)}initialize(){this._adapter.initializeTarget(),this._adapter.initializeAccessibility(this._identifier),this._initializeInteractionListeners()}disconnect(){this._open&&this._closeDropdown(),this._destroyInteractionListeners()}activateFirstOption(){this._adapter.activateFirstOption()}_applyMode(){!this._adapter.hasTargetElement()||(this._mode!=="cascade"?this._adapter.addTargetListener("click",this._clickListener):this._attachCascadingListeners())}_initializeInteractionListeners(){!this._adapter.hasTargetElement()||(this._applyMode(),this._adapter.addTargetListener("keydown",this._keydownListener,!0),this._adapter.addTargetListener("focusout",this._blurListener))}_destroyInteractionListeners(){!this._adapter.hasTargetElement()||(this._adapter.removeTargetListener("keydown",this._clickListener),this._adapter.removeTargetListener("focusout",this._blurListener),this._adapter.removeTargetListener("click",this._clickListener),this._detachCascadingListeners())}_attachCascadingListeners(){this._adapter.addTargetListener("mouseenter",this._targetMouseEnterListener),this._adapter.addTargetListener("mouseleave",this._targetMouseLeaveListener),this._adapter.addDocumentListener("mousemove",this._documentMouseMoveListener)}_detachCascadingListeners(){this._adapter.removeTargetListener("mouseenter",this._targetMouseEnterListener),this._adapter.removeTargetListener("mouseleave",this._targetMouseLeaveListener),this._adapter.removeDocumentListener("mousemove",this._documentMouseMoveListener)}get _nonDividerOptions(){return this._flatOptions.filter(e=>!e.divider)}get _flatOptions(){return V(this._options,1)?this._options.reduce((e,t)=>e.concat(t.options),[]):this._options}_onTargetClick(e){if(this._open){this._closeDropdown();return}this.open=!this._open,this._open&&this._adapter.focusTarget()}_onTargetBlur(e){this._open&&this._closeDropdown()}_onActiveOptionChanged(e){let t={id:e},n=this._adapter.emitHostEvent(i.events.ACTIVE_CHANGE,t,!0,!0);this._mode!=="cascade"&&n&&this._adapter.updateActiveDescendant(e)}onKeydown(e){if(this._childOpen){this._adapter.proxyKeyboardEventToChild(e,this._identifier);return}switch(e.code){case"Tab":this._open&&this._selectActiveOption();break;case"Escape":this._open&&(e.preventDefault(),e.stopPropagation(),this._closeDropdown());break;case"Space":e.preventDefault(),this._open?this._closeDropdown():this._openDropdown({fromKeyboard:!0});break;case"Home":case"End":this._open&&(e.preventDefault(),this._adapter.propagateKey(e.code));break;case"Enter":if(e.preventDefault(),!this._open){e.preventDefault(),this._openDropdown({fromKeyboard:!0});return}e.stopImmediatePropagation(),this._adapter.propagateKey(e.code);let t=this._adapter.getActiveOptionIndex(),n=this._nonDividerOptions[t];n&&n.options&&n.options.length&&this._adapter.toggleChildMenu(t);break;case"ArrowUp":case"ArrowDown":if(this._open&&e.stopImmediatePropagation(),e.preventDefault(),!this._open&&e.code==="ArrowDown"){this._openDropdown({fromKeyboard:!0}),this._adapter.activateFirstOption();return}this._adapter.propagateKey(e.code);break;case"ArrowLeft":this._open&&e.stopImmediatePropagation(),this._mode==="cascade"&&this._open&&this._closeDropdown();break;case"ArrowRight":if(this._open&&e.stopImmediatePropagation(),!this._open)return;let o=this._adapter.getActiveOptionIndex(),r=this._nonDividerOptions[o];if(r&&r.options){this._adapter.toggleChildMenu(o,e.code==="ArrowRight");return}break}}async _openMenu({fromKeyboard:e}={}){this._open=!0;let t=[];if(typeof this._optionsFactory=="function")this._loadOptionsAsync(),this._options=[];else{if(!this._options||!this._options.length)return;t=this._options}this._persistSelection||t.forEach(r=>r.selected=!1),this._mapIconToLeadingIcon();let n=this._persistSelection?this._getSelectedValues():[],o={id:this._identifier,type:"menu",options:this._options,selectedValues:n,iconClass:this._iconClass,dense:this._dense,multiple:!1,popupStatic:!0,allowBusy:!0,asyncStyle:"spinner",optionBuilder:this._optionBuilder,optionLimit:this._optionLimit,headerBuilder:this._popupHeaderBuilder,footerBuilder:this._popupFooterBuilder,observeScroll:this._observeScroll,observeScrollThreshold:this._observeScrollThreshold,popupPlacement:this._placement,popupFallbackPlacements:this._fallbackPlacements,activeStartIndex:e?0:void 0,popupClasses:[i.classes.POPUP,i.classes.MENU,...this._popupClasses],syncWidth:this._syncPopupWidth,activeChangeCallback:this._activeChangeListener,selectCallback:this._selectListener,popupOffset:this._popupOffset,cascadingElementFactory:r=>this._createCascadingElement(r)};this._adapter.setHostAttribute(i.attributes.OPEN,""),this._adapter.attachMenu(o),this._mode==="cascade"&&(this._adapter.addDropdownListener("mouseenter",this._childPopupMouseEnterListener),this._adapter.addDropdownListener("mouseleave",this._childPopupMouseLeaveListener)),this._adapter.addDropdownListener(i.events.ACTIVE_CHANGE,r=>{this._onActiveOptionChanged(r.detail.id)}),this._adapter.emitHostEvent(i.events.OPEN)}_closeMenu(){this._open=!1,this._childOpen=!1,this._adapter.detachMenu(),this._activeMouseLeaveTimeout!==void 0&&window.clearTimeout(this._activeMouseLeaveTimeout),this._adapter.removeHostAttribute(i.attributes.OPEN),this._adapter.emitHostEvent(i.events.CLOSE)}_loadOptionsAsync(){return this._optionsFactory?Promise.resolve(this._optionsFactory()).then(e=>{if(this._persistSelection||e.forEach(t=>t.selected=!1),this._open)if(e&&I(e)&&e.length){this._options=e,this._adapter.setOptions(e);let t=this._getSelectedValues();t.length&&this._adapter.setSelectedValues(t)}else this._open&&this._closeDropdown()}).catch(e=>{console.error("An unexpected error ocurred while opening the menu:",e),this._open&&this._closeDropdown()}):(this._open&&this._closeMenu(),Promise.resolve())}_handleSelectEvent(e){let t=this._nonDividerOptions.findIndex(n=>n.value===e);t<0||this._selectOptionByIndex(t)}_selectActiveOption(){let e=this._adapter.getActiveOptionIndex();e>=0&&this._nonDividerOptions[e]&&this._selectOptionByIndex(e)}_selectOptionByIndex(e){let{options:t,value:n}=this._nonDividerOptions[e];if(t){this._adapter.setActiveOption(e);return}this._closeDropdown();let o={index:e,value:n};!this._adapter.emitHostEvent(i.events.SELECT,o,!0,!0)||(this._selectedValue=this._persistSelection?n:void 0)}_getSelectedValues(){let e=this._flatOptions.filter(t=>t.selected).map(t=>t.value);return this._selectedValue!==void 0&&e.push(this._selectedValue),e}_onCascadingOptionSelected(e){this._persistSelection&&(this._selectedValue=e.value),this._adapter.emitHostEvent(i.events.SELECT,e),this._closeDropdown()}_onCascadingChildOpen(e){super._clearMouseLeaveTimeout(),this._adapter.closeOtherChildMenus(e),this._childOpen=!0,this._adapter.setActiveOption(e)}_onCascadingChildClose(e){this._childOpen=!1}_closeDropdown(){this._closeMenu()}_openDropdown({fromKeyboard:e}={}){this._openMenu({fromKeyboard:e})}_setCascadeTargetInactive(){this._adapter.setCascadeTargetInactive()}_isOwnElement(e){return this._adapter.isOwnElement(e)}_createCascadingElement({index:e,options:t,parentValue:n}){let o=this._adapter.createChildMenu(e,n,this._onCascadingChildOpen.bind(this),this._onCascadingChildClose.bind(this),this._onCascadingOptionSelected.bind(this));return o.mode="cascade",o.popupOffset={x:0,y:-8},o.dense=this._dense,o.placement="right-start",o.fallbackPlacements=["left-start","right-start"],o.persistSelection=this._persistSelection,this._persistSelection&&(o.selectedValue=this._selectedValue),o.options=t,o.optionBuilder=this._optionBuilder,o.iconClass=this._iconClass,o}_mapIconToLeadingIcon(){this._flatOptions.filter(e=>e.icon).forEach(e=>e.leadingIcon=e.icon)}get open(){return this._open}set open(e){e=Boolean(e),this._open!==e&&(this._open=e,e?this._openDropdown():this._closeDropdown())}set options(e){if(typeof e=="function")this.optionsFactory=e;else if(this.optionsFactory=void 0,this._options=e.map(t=>c({},t)),this._open&&(this._mapIconToLeadingIcon(),this._adapter.setOptions(this._options),this._persistSelection)){let t=this._getSelectedValues();t.length&&this._adapter.setSelectedValues(t)}}get options(){return this._options?this._flatOptions.map(e=>c({},e)):[]}set optionsFactory(e){this._optionsFactory=e}set selectedIndex(e){let t=this._nonDividerOptions[e];t&&t.value!==this._selectedValue&&(this.selectedValue=t.value)}get selectedIndex(){return this._selectedValue!==void 0?this._nonDividerOptions.findIndex(e=>e.value===this._selectedValue):-1}set selectedValue(e){this._selectedValue!==e&&(this._selectedValue=e,this._adapter.setSelectedValues(this._selectedValue))}get selectedValue(){return this._selectedValue}get placement(){return this._placement}set placement(e){this._placement!==e&&(this._placement=e||"bottom-start",this._adapter.setHostAttribute(i.attributes.PLACEMENT,this._placement))}get fallbackPlacements(){return this._fallbackPlacements}set fallbackPlacements(e){this._fallbackPlacements=Array.isArray(e)?e:[]}get dense(){return this._dense}set dense(e){this._dense=e}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass=e}get persistSelection(){return this._persistSelection}set persistSelection(e){this._persistSelection!==e&&(this._persistSelection=e,this._adapter.toggleHostAttribute(i.attributes.PERSIST_SELECTION,this._persistSelection),this._persistSelection||(this._flatOptions.forEach(t=>t.selected=!1),this._selectedValue=void 0))}get mode(){return this._mode}set mode(e){this._mode!==e&&(this._mode=e,this._destroyInteractionListeners(),this._applyMode(),this._adapter.setHostAttribute(i.attributes.MODE,this._mode))}get popupOffset(){return this._popupOffset}set popupOffset(e){this._popupOffset=e}get optionBuilder(){return this._optionBuilder}set optionBuilder(e){this._optionBuilder=e}get popupElement(){return this._adapter.getDropdownElement()}};var q="<template><slot></slot></template>",W=":host{display:inline-block}:host([hidden]){display:none}",s=class extends k{constructor(){super();w.define(P),this._foundation=new h(new u(this)),C(this,q,W)}static get observedAttributes(){return[i.attributes.OPEN,i.attributes.PLACEMENT,i.attributes.SELECTED_INDEX,i.attributes.SELECTED_VALUE,i.attributes.DENSE,i.attributes.ICON_CLASS,i.attributes.PERSIST_SELECTION,i.attributes.MODE,i.attributes.SYNC_POPUP_WIDTH,i.attributes.POPUP_CLASSES,i.attributes.OPTION_LIMIT,i.attributes.OBSERVE_SCROLL,i.attributes.OBSERVE_SCROLL_THRESHOLD]}connectedCallback(){this.querySelector(i.selectors.TOGGLE)?this._foundation.initialize():M(this,i.selectors.TOGGLE).then(()=>this._foundation.initialize())}attributeChangedCallback(e,t,n){switch(super.attributeChangedCallback(e,t,n),e){case i.attributes.OPEN:this._foundation.open=O(n);break;case i.attributes.PLACEMENT:this._foundation.placement=n;break;case i.attributes.SELECTED_INDEX:this._foundation.selectedIndex=Number(n);break;case i.attributes.SELECTED_VALUE:this._foundation.selectedValue=n;break;case i.attributes.DENSE:this._foundation.dense=_(n);break;case i.attributes.ICON_CLASS:this._foundation.iconClass=n;break;case i.attributes.PERSIST_SELECTION:this.persistSelection=_(n);break;case i.attributes.MODE:this.mode=n;break}}disconnectedCallback(){this._foundation.disconnect()}propagateKeyEvent(e){this._foundation.onKeydown(e)}activateFirstOption(){this._foundation.activateFirstOption()}};a([p()],s.prototype,"open",2),a([p()],s.prototype,"options",2),a([p()],s.prototype,"selectedIndex",2),a([p()],s.prototype,"selectedValue",2),a([p()],s.prototype,"placement",2),a([p()],s.prototype,"fallbackPlacements",2),a([p()],s.prototype,"dense",2),a([p()],s.prototype,"iconClass",2),a([p()],s.prototype,"persistSelection",2),a([p()],s.prototype,"mode",2),a([p()],s.prototype,"popupOffset",2),a([p()],s.prototype,"optionBuilder",2),a([p({set:!1})],s.prototype,"popupElement",2),s=a([T({name:i.elementName,dependencies:[F,x,K,A]})],s);function Ye(){L(s)}export{i as a,u as b,h as c,s as d,Ye as e};
7
- //# sourceMappingURL=chunk.SZNMBPMR.js.map