@tylertech/forge 2.7.0 → 2.8.0

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 (47) hide show
  1. package/custom-elements.json +78 -4
  2. package/dist/esm/chunks/{chunk.JUXKYUD4.js → chunk.2NMHSTAO.js} +51 -28
  3. package/dist/esm/chunks/{chunk.JUXKYUD4.js.map → chunk.2NMHSTAO.js.map} +2 -2
  4. package/dist/esm/chunks/{chunk.GL72QT42.js → chunk.35BJJH5E.js} +2 -2
  5. package/dist/esm/chunks/{chunk.GL72QT42.js.map → chunk.35BJJH5E.js.map} +1 -1
  6. package/dist/esm/chunks/{chunk.L344BPCW.js → chunk.BLZJIYMG.js} +2 -2
  7. package/dist/esm/chunks/{chunk.L344BPCW.js.map → chunk.BLZJIYMG.js.map} +0 -0
  8. package/dist/esm/chunks/{chunk.65GHMPX2.js → chunk.ELAJS33V.js} +6 -6
  9. package/dist/esm/chunks/chunk.ELAJS33V.js.map +7 -0
  10. package/dist/esm/chunks/{chunk.GOWHXADJ.js → chunk.K7OLG7CS.js} +22 -14
  11. package/dist/esm/chunks/chunk.K7OLG7CS.js.map +7 -0
  12. package/dist/esm/chunks/{chunk.XHMNHBZD.js → chunk.PNKLV3BK.js} +2 -2
  13. package/dist/esm/chunks/{chunk.XHMNHBZD.js.map → chunk.PNKLV3BK.js.map} +1 -1
  14. package/dist/esm/chunks/{chunk.ZXMJB7OW.js → chunk.UFMUXBT4.js} +8 -8
  15. package/dist/esm/chunks/{chunk.ZXMJB7OW.js.map → chunk.UFMUXBT4.js.map} +0 -0
  16. package/dist/esm/chunks/{chunk.C73AZRT4.js → chunk.XE7ZMJBZ.js} +5 -3
  17. package/dist/esm/chunks/{chunk.C73AZRT4.js.map → chunk.XE7ZMJBZ.js.map} +2 -2
  18. package/dist/esm/chunks/{chunk.MF3IZXQG.js → chunk.ZSHQMR4O.js} +2 -2
  19. package/dist/esm/chunks/{chunk.MF3IZXQG.js.map → chunk.ZSHQMR4O.js.map} +0 -0
  20. package/dist/esm/drawer/base/index.js +1 -1
  21. package/dist/esm/drawer/drawer/index.js +2 -2
  22. package/dist/esm/drawer/index.js +4 -4
  23. package/dist/esm/drawer/mini-drawer/index.js +2 -2
  24. package/dist/esm/drawer/modal-drawer/index.js +2 -2
  25. package/dist/esm/file-picker/index.js +1 -1
  26. package/dist/esm/index.js +9 -9
  27. package/dist/esm/inline-message/index.js +1 -1
  28. package/dist/esm/table/index.js +1 -1
  29. package/dist/esm/time-picker/index.js +1 -1
  30. package/esm/drawer/base/base-drawer-foundation.d.ts +4 -2
  31. package/esm/drawer/base/base-drawer-foundation.js +22 -14
  32. package/esm/drawer/modal-drawer/modal-drawer-foundation.d.ts +2 -2
  33. package/esm/drawer/modal-drawer/modal-drawer-foundation.js +4 -4
  34. package/esm/file-picker/file-picker.js +1 -1
  35. package/esm/inline-message/inline-message.js +1 -1
  36. package/esm/table/table.js +3 -1
  37. package/esm/time-picker/time-picker-constants.d.ts +1 -0
  38. package/esm/time-picker/time-picker-constants.js +1 -0
  39. package/esm/time-picker/time-picker-foundation.d.ts +4 -0
  40. package/esm/time-picker/time-picker-foundation.js +44 -29
  41. package/esm/time-picker/time-picker.d.ts +3 -0
  42. package/esm/time-picker/time-picker.js +7 -0
  43. package/package.json +1 -1
  44. package/styles/file-picker/_mixins.scss +3 -1
  45. package/styles/inline-message/inline-message.scss +4 -0
  46. package/dist/esm/chunks/chunk.65GHMPX2.js.map +0 -7
  47. package/dist/esm/chunks/chunk.GOWHXADJ.js.map +0 -7
@@ -7,7 +7,7 @@ import {
7
7
  BaseDrawerAdapter,
8
8
  BaseDrawerComponent,
9
9
  BaseDrawerFoundation
10
- } from "./chunk.GOWHXADJ.js";
10
+ } from "./chunk.K7OLG7CS.js";
11
11
  import {
12
12
  COMPONENT_NAME_PREFIX,
13
13
  CustomElement
@@ -56,4 +56,4 @@ export {
56
56
  MiniDrawerComponent,
57
57
  defineMiniDrawerComponent
58
58
  };
59
- //# sourceMappingURL=chunk.MF3IZXQG.js.map
59
+ //# sourceMappingURL=chunk.ZSHQMR4O.js.map
@@ -8,7 +8,7 @@ import {
8
8
  BaseDrawerAdapter,
9
9
  BaseDrawerComponent,
10
10
  BaseDrawerFoundation
11
- } from "../../chunks/chunk.GOWHXADJ.js";
11
+ } from "../../chunks/chunk.K7OLG7CS.js";
12
12
  import "../../chunks/chunk.6EGTLHJS.js";
13
13
  import "../../chunks/chunk.KZATVOA6.js";
14
14
  import "../../chunks/chunk.MMIZOYAS.js";
@@ -7,8 +7,8 @@ import {
7
7
  DRAWER_CONSTANTS,
8
8
  DrawerComponent,
9
9
  defineDrawerComponent
10
- } from "../../chunks/chunk.L344BPCW.js";
11
- import "../../chunks/chunk.GOWHXADJ.js";
10
+ } from "../../chunks/chunk.BLZJIYMG.js";
11
+ import "../../chunks/chunk.K7OLG7CS.js";
12
12
  import "../../chunks/chunk.6EGTLHJS.js";
13
13
  import "../../chunks/chunk.KZATVOA6.js";
14
14
  import "../../chunks/chunk.MMIZOYAS.js";
@@ -8,25 +8,25 @@ import {
8
8
  DRAWER_CONSTANTS,
9
9
  DrawerComponent,
10
10
  defineDrawerComponent
11
- } from "../chunks/chunk.L344BPCW.js";
11
+ } from "../chunks/chunk.BLZJIYMG.js";
12
12
  import {
13
13
  MINI_DRAWER_CONSTANTS,
14
14
  MiniDrawerComponent,
15
15
  defineMiniDrawerComponent
16
- } from "../chunks/chunk.MF3IZXQG.js";
16
+ } from "../chunks/chunk.ZSHQMR4O.js";
17
17
  import {
18
18
  MODAL_DRAWER_CONSTANTS,
19
19
  ModalDrawerAdapter,
20
20
  ModalDrawerComponent,
21
21
  ModalDrawerFoundation,
22
22
  defineModalDrawerComponent
23
- } from "../chunks/chunk.65GHMPX2.js";
23
+ } from "../chunks/chunk.ELAJS33V.js";
24
24
  import {
25
25
  BASE_DRAWER_CONSTANTS,
26
26
  BaseDrawerAdapter,
27
27
  BaseDrawerComponent,
28
28
  BaseDrawerFoundation
29
- } from "../chunks/chunk.GOWHXADJ.js";
29
+ } from "../chunks/chunk.K7OLG7CS.js";
30
30
  import "../chunks/chunk.GXTNND2M.js";
31
31
  import "../chunks/chunk.6EGTLHJS.js";
32
32
  import "../chunks/chunk.KZATVOA6.js";
@@ -7,8 +7,8 @@ import {
7
7
  MINI_DRAWER_CONSTANTS,
8
8
  MiniDrawerComponent,
9
9
  defineMiniDrawerComponent
10
- } from "../../chunks/chunk.MF3IZXQG.js";
11
- import "../../chunks/chunk.GOWHXADJ.js";
10
+ } from "../../chunks/chunk.ZSHQMR4O.js";
11
+ import "../../chunks/chunk.K7OLG7CS.js";
12
12
  import "../../chunks/chunk.6EGTLHJS.js";
13
13
  import "../../chunks/chunk.KZATVOA6.js";
14
14
  import "../../chunks/chunk.MMIZOYAS.js";
@@ -9,8 +9,8 @@ import {
9
9
  ModalDrawerComponent,
10
10
  ModalDrawerFoundation,
11
11
  defineModalDrawerComponent
12
- } from "../../chunks/chunk.65GHMPX2.js";
13
- import "../../chunks/chunk.GOWHXADJ.js";
12
+ } from "../../chunks/chunk.ELAJS33V.js";
13
+ import "../../chunks/chunk.K7OLG7CS.js";
14
14
  import "../../chunks/chunk.GXTNND2M.js";
15
15
  import "../../chunks/chunk.6EGTLHJS.js";
16
16
  import "../../chunks/chunk.KZATVOA6.js";
@@ -10,7 +10,7 @@ import {
10
10
  FilePickerComponentDelegate,
11
11
  FilePickerFoundation,
12
12
  defineFilePickerComponent
13
- } from "../chunks/chunk.XHMNHBZD.js";
13
+ } from "../chunks/chunk.PNKLV3BK.js";
14
14
  import "../chunks/chunk.QYWAZCBX.js";
15
15
  import "../chunks/chunk.56BNM7F2.js";
16
16
  import "../chunks/chunk.4HQ5VELO.js";
package/dist/esm/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import {
7
7
  defineComponents
8
- } from "./chunks/chunk.ZXMJB7OW.js";
8
+ } from "./chunks/chunk.UFMUXBT4.js";
9
9
  import {
10
10
  TIME_PICKER_CONSTANTS,
11
11
  TimePickerAdapter,
@@ -26,7 +26,7 @@ import {
26
26
  secondsToMillis,
27
27
  stripSecondsFromMillis,
28
28
  timeStringToMillis
29
- } from "./chunks/chunk.JUXKYUD4.js";
29
+ } from "./chunks/chunk.2NMHSTAO.js";
30
30
  import {
31
31
  TOAST_CONSTANTS,
32
32
  ToastAdapter,
@@ -59,7 +59,7 @@ import {
59
59
  TableFoundation,
60
60
  TableRow,
61
61
  defineTableComponent
62
- } from "./chunks/chunk.C73AZRT4.js";
62
+ } from "./chunks/chunk.XE7ZMJBZ.js";
63
63
  import "./chunks/chunk.TLCGGWBO.js";
64
64
  import {
65
65
  ACCEPTABLE_KEYS,
@@ -177,7 +177,7 @@ import {
177
177
  INLINE_MESSAGE_CONSTANTS,
178
178
  InlineMessageComponent,
179
179
  defineInlineMessageComponent
180
- } from "./chunks/chunk.GL72QT42.js";
180
+ } from "./chunks/chunk.35BJJH5E.js";
181
181
  import {
182
182
  KEYBOARD_SHORTCUT_CONSTANTS,
183
183
  KeyboardShortcutAdapter,
@@ -204,25 +204,25 @@ import {
204
204
  DRAWER_CONSTANTS,
205
205
  DrawerComponent,
206
206
  defineDrawerComponent
207
- } from "./chunks/chunk.L344BPCW.js";
207
+ } from "./chunks/chunk.BLZJIYMG.js";
208
208
  import {
209
209
  MINI_DRAWER_CONSTANTS,
210
210
  MiniDrawerComponent,
211
211
  defineMiniDrawerComponent
212
- } from "./chunks/chunk.MF3IZXQG.js";
212
+ } from "./chunks/chunk.ZSHQMR4O.js";
213
213
  import {
214
214
  MODAL_DRAWER_CONSTANTS,
215
215
  ModalDrawerAdapter,
216
216
  ModalDrawerComponent,
217
217
  ModalDrawerFoundation,
218
218
  defineModalDrawerComponent
219
- } from "./chunks/chunk.65GHMPX2.js";
219
+ } from "./chunks/chunk.ELAJS33V.js";
220
220
  import {
221
221
  BASE_DRAWER_CONSTANTS,
222
222
  BaseDrawerAdapter,
223
223
  BaseDrawerComponent,
224
224
  BaseDrawerFoundation
225
- } from "./chunks/chunk.GOWHXADJ.js";
225
+ } from "./chunks/chunk.K7OLG7CS.js";
226
226
  import {
227
227
  FILE_PICKER_CONSTANTS,
228
228
  FilePickerAdapter,
@@ -230,7 +230,7 @@ import {
230
230
  FilePickerComponentDelegate,
231
231
  FilePickerFoundation,
232
232
  defineFilePickerComponent
233
- } from "./chunks/chunk.XHMNHBZD.js";
233
+ } from "./chunks/chunk.PNKLV3BK.js";
234
234
  import {
235
235
  FLOATING_ACTION_BUTTON_CONSTANTS,
236
236
  FloatingActionButton,
@@ -7,7 +7,7 @@ import {
7
7
  INLINE_MESSAGE_CONSTANTS,
8
8
  InlineMessageComponent,
9
9
  defineInlineMessageComponent
10
- } from "../chunks/chunk.GL72QT42.js";
10
+ } from "../chunks/chunk.35BJJH5E.js";
11
11
  import "../chunks/chunk.35U3UPDV.js";
12
12
  import "../chunks/chunk.VK6LIH3B.js";
13
13
  import "../chunks/chunk.K2PCTUVN.js";
@@ -13,7 +13,7 @@ import {
13
13
  TableFoundation,
14
14
  TableRow,
15
15
  defineTableComponent
16
- } from "../chunks/chunk.C73AZRT4.js";
16
+ } from "../chunks/chunk.XE7ZMJBZ.js";
17
17
  import "../chunks/chunk.RV3E762Y.js";
18
18
  import "../chunks/chunk.7UAH67PT.js";
19
19
  import "../chunks/chunk.KNR5DXE4.js";
@@ -23,7 +23,7 @@ import {
23
23
  secondsToMillis,
24
24
  stripSecondsFromMillis,
25
25
  timeStringToMillis
26
- } from "../chunks/chunk.JUXKYUD4.js";
26
+ } from "../chunks/chunk.2NMHSTAO.js";
27
27
  import "../chunks/chunk.RL7ZFLMG.js";
28
28
  import "../chunks/chunk.FJJVIMZ2.js";
29
29
  import "../chunks/chunk.Q4YMHFRY.js";
@@ -22,9 +22,11 @@ export declare class BaseDrawerFoundation implements IBaseDrawerFoundation {
22
22
  private _applyDirection;
23
23
  private _onOpenComplete;
24
24
  private _onCloseComplete;
25
+ private _setOpened;
26
+ private _setClosed;
25
27
  protected _applyOpen(): void;
26
- protected _setDrawerOpenState(): void;
27
- protected _setDrawerClosedState(): void;
28
+ protected _triggerDrawerOpen(): void;
29
+ protected _triggerDrawerClose(): void;
28
30
  get open(): boolean;
29
31
  set open(value: boolean);
30
32
  get direction(): DrawerDirection;
@@ -15,7 +15,12 @@ export class BaseDrawerFoundation {
15
15
  this._closeAnimationListener = () => this._onCloseComplete();
16
16
  }
17
17
  connect() {
18
- this._applyOpen();
18
+ if (this._open) {
19
+ this._setOpened();
20
+ }
21
+ else {
22
+ this._setClosed();
23
+ }
19
24
  this._applyDirection();
20
25
  this._adapter.proxyScrollEvent();
21
26
  this._hasInitialized = true;
@@ -32,37 +37,40 @@ export class BaseDrawerFoundation {
32
37
  if (!this._open) {
33
38
  return;
34
39
  }
40
+ this._setOpened();
35
41
  this._adapter.emitHostEvent(BASE_DRAWER_CONSTANTS.events.AFTER_OPEN);
36
42
  }
37
43
  _onCloseComplete() {
38
44
  if (this._open) {
39
45
  return;
40
46
  }
41
- this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSING);
42
- this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.NO_TRANSITION);
43
- this._adapter.setDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSED);
47
+ this._setClosed();
44
48
  this._adapter.emitHostEvent(BASE_DRAWER_CONSTANTS.events.AFTER_CLOSE);
45
49
  }
50
+ _setOpened() {
51
+ this._adapter.removeDrawerClass([BASE_DRAWER_CONSTANTS.classes.CLOSED, BASE_DRAWER_CONSTANTS.classes.CLOSING]);
52
+ this._adapter.setHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
53
+ }
54
+ _setClosed() {
55
+ this._adapter.removeDrawerClass([BASE_DRAWER_CONSTANTS.classes.CLOSING, BASE_DRAWER_CONSTANTS.classes.NO_TRANSITION]);
56
+ this._adapter.setDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSED);
57
+ this._adapter.removeHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
58
+ }
46
59
  _applyOpen() {
47
60
  if (this._open) {
48
- this._setDrawerOpenState();
49
- }
50
- else {
51
- this._setDrawerClosedState();
52
- }
53
- if (this._open) {
61
+ this._triggerDrawerOpen();
54
62
  this._adapter.setHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
55
63
  }
56
64
  else {
65
+ this._triggerDrawerClose();
57
66
  this._adapter.removeHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
58
67
  }
59
68
  }
60
- _setDrawerOpenState() {
69
+ _triggerDrawerOpen() {
61
70
  this._adapter.listenTransitionComplete(this._openAnimationListener);
62
- this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSED);
63
- this._adapter.removeDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSING);
71
+ this._adapter.removeDrawerClass([BASE_DRAWER_CONSTANTS.classes.CLOSED, BASE_DRAWER_CONSTANTS.classes.CLOSING]);
64
72
  }
65
- _setDrawerClosedState() {
73
+ _triggerDrawerClose() {
66
74
  this._adapter.listenTransitionComplete(this._closeAnimationListener);
67
75
  this._adapter.setDrawerClass(BASE_DRAWER_CONSTANTS.classes.CLOSING);
68
76
  }
@@ -15,8 +15,8 @@ export declare class ModalDrawerFoundation extends BaseDrawerFoundation implemen
15
15
  constructor(_adapter: IModalDrawerAdapter);
16
16
  connect(): void;
17
17
  disconnect(): void;
18
- protected _setDrawerOpenState(): void;
19
- protected _setDrawerClosedState(): void;
18
+ protected _triggerDrawerOpen(): void;
19
+ protected _triggerDrawerClose(): void;
20
20
  private _onBackdropClick;
21
21
  private _setBackdrop;
22
22
  }
@@ -22,12 +22,12 @@ export class ModalDrawerFoundation extends BaseDrawerFoundation {
22
22
  disconnect() {
23
23
  this._isInitialized = false;
24
24
  }
25
- _setDrawerOpenState() {
26
- super._setDrawerOpenState();
25
+ _triggerDrawerOpen() {
26
+ super._triggerDrawerOpen();
27
27
  this._setBackdrop(true);
28
28
  }
29
- _setDrawerClosedState() {
30
- super._setDrawerClosedState();
29
+ _triggerDrawerClose() {
30
+ super._triggerDrawerClose();
31
31
  this._setBackdrop(false);
32
32
  }
33
33
  _onBackdropClick(evt) {
@@ -11,7 +11,7 @@ import { FilePickerAdapter } from './file-picker-adapter';
11
11
  import { FILE_PICKER_CONSTANTS } from './file-picker-constants';
12
12
  import { FilePickerFoundation } from './file-picker-foundation';
13
13
  const template = '<template><form class=\"forge-file-picker\" id=\"container\" part=\"form\"><div class=\"forge-file-picker__primary\" id=\"primary\" part=\"primary\"><slot name=\"primary\"></slot></div><slot id=\"button-slot\"></slot><div class=\"forge-file-picker__secondary\" id=\"secondary\" part=\"secondary\"><slot name=\"secondary\"></slot></div><input type=\"file\" class=\"forge-file-picker__input\" id=\"input\" part=\"input\"></form><div class=\"forge-file-picker__helper-text\" part=\"helper-text-container\"><slot name=\"helper-text\"></slot></div></template>';
14
- const styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;height:auto;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker__helper-text::before{display:inline-block;width:0;height:16px;content:\"\";vertical-align:0}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';
14
+ const styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;height:auto;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker__helper-text ::slotted([slot=helper-text])::before{display:inline-block;width:0;height:16px;content:\"\";vertical-align:0}.forge-file-picker[disabled]{background-color:#fafafa;background-color:var(--mdc-theme-background,#fafafa);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);background-color:rgba(63,81,181,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';
15
15
  /**
16
16
  * The web component class behind the `<forge-file-picker>` custom element.
17
17
  *
@@ -8,7 +8,7 @@ import { CustomElement, attachShadowTemplate } from '@tylertech/forge-core';
8
8
  import { BaseComponent } from '../core/base/base-component';
9
9
  import { INLINE_MESSAGE_CONSTANTS } from './inline-message-constants';
10
10
  const template = '<template><div class=\"forge-inline-message\" part=\"root\"><slot name=\"icon\"></slot><div class=\"forge-inline-message__container\" part=\"container\"><slot name=\"title\"></slot><slot></slot></div></div></template>';
11
- const styles = '.forge-inline-message{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);border-radius:0;border-radius:var(--forge-inline-message-border-radius,0);display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;padding:8px 16px 8px 12px}.forge-inline-message ::slotted([slot=icon]){align-self:start;margin-right:12px}.forge-inline-message__container{align-self:center}.forge-inline-message__container ::slotted([slot=title]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);font-weight:500;line-height:1rem;margin-bottom:8px}:host .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=danger]) .forge-inline-message{background:rgba(255,205,210,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-danger-background,rgba(255,205,210,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-danger-font-color,rgba(0,0,0,.87)))}:host([theme=danger]) .forge-inline-message ::slotted([slot=icon]){color:#a22d0e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-danger-icon-color,#a22d0e))}:host([theme=warning]) .forge-inline-message{background:rgba(255,219,166,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-warning-background,rgba(255,219,166,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-warning-font-color,rgba(0,0,0,.87)))}:host([theme=warning]) .forge-inline-message ::slotted([slot=icon]){color:#a03a03;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-warning-icon-color,#a03a03))}:host([theme=success]) .forge-inline-message{background:rgba(165,214,167,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-success-background,rgba(165,214,167,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-success-font-color,rgba(0,0,0,.87)))}:host([theme=success]) .forge-inline-message ::slotted([slot=icon]){color:#1b5e20;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-success-icon-color,#1b5e20))}:host([theme=info-primary]) .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host([theme=info-primary]) .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=info-secondary]) .forge-inline-message{background:rgba(224,224,224,.4);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-secondary-background,rgba(224,224,224,.4)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-secondary-font-color,rgba(0,0,0,.87)))}:host([theme=info-secondary]) .forge-inline-message ::slotted([slot=icon]){color:#000;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-secondary-icon-color,#000))}:host([hidden]){display:none}';
11
+ const styles = '.forge-inline-message{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);border-radius:0;border-radius:var(--forge-inline-message-border-radius,0);display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;padding:8px 16px 8px 12px}.forge-inline-message ::slotted([slot=icon]){align-self:start;margin-right:12px}.forge-inline-message__container{align-self:center}.forge-inline-message__container ::slotted([slot=title]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);font-weight:500;line-height:1rem;margin-bottom:8px}:host .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=danger]) .forge-inline-message{background:rgba(255,205,210,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-danger-background,rgba(255,205,210,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-danger-font-color,rgba(0,0,0,.87)))}:host([theme=danger]) .forge-inline-message ::slotted([slot=icon]){color:#a22d0e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-danger-icon-color,#a22d0e))}:host([theme=warning]) .forge-inline-message{background:rgba(255,219,166,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-warning-background,rgba(255,219,166,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-warning-font-color,rgba(0,0,0,.87)))}:host([theme=warning]) .forge-inline-message ::slotted([slot=icon]){color:#a03a03;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-warning-icon-color,#a03a03))}:host([theme=success]) .forge-inline-message{background:rgba(165,214,167,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-success-background,rgba(165,214,167,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-success-font-color,rgba(0,0,0,.87)))}:host([theme=success]) .forge-inline-message ::slotted([slot=icon]){color:#1b5e20;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-success-icon-color,#1b5e20))}:host([theme=info-primary]) .forge-inline-message{background:rgba(187,222,251,.3);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-primary-background,rgba(187,222,251,.3)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-primary-font-color,rgba(0,0,0,.87)))}:host([theme=info-primary]) .forge-inline-message ::slotted([slot=icon]){color:#1a237e;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-primary-icon-color,#1a237e))}:host([theme=info-secondary]) .forge-inline-message{background:rgba(224,224,224,.4);background:var(--forge-inline-message-theme-background,var(--forge-inline-message-theme-info-secondary-background,rgba(224,224,224,.4)));color:rgba(0,0,0,.87);color:var(--forge-inline-message-theme-on-background,var(--forge-inline-message-theme-info-secondary-font-color,rgba(0,0,0,.87)))}:host([theme=info-secondary]) .forge-inline-message ::slotted([slot=icon]){color:#000;color:var(--forge-inline-message-theme-icon,var(--forge-inline-message-theme-info-secondary-icon-color,#000))}:host{display:block}:host([hidden]){display:none}';
12
12
  /**
13
13
  * The web component class behind the `<forge-inline-message>` custom element.
14
14
  *
@@ -7,6 +7,7 @@ import { __decorate } from "tslib";
7
7
  import { coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';
8
8
  import { tylIconArrowDownward } from '@tylertech/tyler-icons/standard';
9
9
  import { ExpansionPanelComponent } from '../expansion-panel';
10
+ import { CheckboxComponent } from '../checkbox';
10
11
  import { TableAdapter } from './table-adapter';
11
12
  import { TABLE_CONSTANTS } from './table-constants';
12
13
  import { TableFoundation } from './table-foundation';
@@ -285,7 +286,8 @@ TableComponent = __decorate([
285
286
  name: TABLE_CONSTANTS.elementName,
286
287
  dependencies: [
287
288
  ExpansionPanelComponent,
288
- IconComponent
289
+ IconComponent,
290
+ CheckboxComponent
289
291
  ]
290
292
  })
291
293
  ], TableComponent);
@@ -22,6 +22,7 @@ export declare const TIME_PICKER_CONSTANTS: {
22
22
  STEP: string;
23
23
  ALLOW_INPUT: string;
24
24
  SHOW_NOW: string;
25
+ SHOW_HOUR_OPTIONS: string;
25
26
  DISABLED: string;
26
27
  POPUP_CLASSES: string;
27
28
  ALLOW_DROPDOWN: string;
@@ -20,6 +20,7 @@ const attributes = {
20
20
  STEP: 'step',
21
21
  ALLOW_INPUT: 'allow-input',
22
22
  SHOW_NOW: 'show-now',
23
+ SHOW_HOUR_OPTIONS: 'show-hour-options',
23
24
  DISABLED: 'disabled',
24
25
  POPUP_CLASSES: 'popup-classes',
25
26
  ALLOW_DROPDOWN: 'allow-dropdown'
@@ -21,6 +21,7 @@ export interface ITimePickerFoundation extends ICustomElementFoundation {
21
21
  step: number;
22
22
  allowInput: boolean;
23
23
  showNow: boolean;
24
+ showHourOptions: boolean;
24
25
  customOptions: ITimePickerOption[];
25
26
  validationCallback: TimePickerValidationCallback;
26
27
  parseCallback: TimePickerParseCallback;
@@ -49,6 +50,7 @@ export declare class TimePickerFoundation implements ITimePickerFoundation {
49
50
  private _allowInvalidTime;
50
51
  private _popupTarget;
51
52
  private _showNow;
53
+ private _showHourOptions;
52
54
  private _customOptions;
53
55
  private _validationCallback;
54
56
  private _parseCallback;
@@ -130,6 +132,8 @@ export declare class TimePickerFoundation implements ITimePickerFoundation {
130
132
  set popupTarget(value: string);
131
133
  get showNow(): boolean;
132
134
  set showNow(value: boolean);
135
+ get showHourOptions(): boolean;
136
+ set showHourOptions(value: boolean);
133
137
  get customOptions(): ITimePickerOption[];
134
138
  set customOptions(value: ITimePickerOption[]);
135
139
  set validationCallback(cb: TimePickerValidationCallback);
@@ -26,6 +26,7 @@ export class TimePickerFoundation {
26
26
  this._allowSeconds = false;
27
27
  this._allowInvalidTime = false;
28
28
  this._showNow = false;
29
+ this._showHourOptions = true;
29
30
  this._customOptions = [];
30
31
  this._disabled = false;
31
32
  this._popupClasses = [];
@@ -427,35 +428,37 @@ export class TimePickerFoundation {
427
428
  return value;
428
429
  }
429
430
  _openDropdown() {
430
- if (!this.allowDropdown) {
431
+ const options = this._generateTimeOptions();
432
+ if (!this.allowDropdown || !options.length) {
431
433
  return;
432
434
  }
433
435
  this._formatInputValue();
434
436
  this._open = true;
435
437
  this._adapter.setHostAttribute(TIME_PICKER_CONSTANTS.attributes.OPEN);
436
- const options = this._generateTimeOptions();
437
438
  const selectableOptions = options.filter(o => !o.divider && !o.disabled);
438
439
  let selectedValues = [];
439
440
  let activeStartIndex;
440
441
  // Find closest match in list of time options and activate/select it
441
- if (this._value !== null) {
442
- const optionIndex = this._findClosestOptionIndex(this._value, selectableOptions);
443
- if (optionIndex >= 0) {
444
- const isExactMatch = selectableOptions[optionIndex].value.time === this._value;
445
- if (isExactMatch) {
446
- selectedValues = [selectableOptions[optionIndex].value];
442
+ if (options.length) {
443
+ if (this._value !== null) {
444
+ const optionIndex = this._findClosestOptionIndex(this._value, selectableOptions);
445
+ if (optionIndex >= 0) {
446
+ const isExactMatch = selectableOptions[optionIndex].value.time === this._value;
447
+ if (isExactMatch) {
448
+ selectedValues = [selectableOptions[optionIndex].value];
449
+ }
450
+ else {
451
+ activeStartIndex = optionIndex;
452
+ }
447
453
  }
448
- else {
454
+ }
455
+ else if (typeof this._startTime === 'number') {
456
+ const optionIndex = this._findClosestOptionIndex(this._startTime, selectableOptions);
457
+ if (optionIndex >= 0 && optionIndex < selectableOptions.length) {
449
458
  activeStartIndex = optionIndex;
450
459
  }
451
460
  }
452
461
  }
453
- else if (typeof this._startTime === 'number') {
454
- const optionIndex = this._findClosestOptionIndex(this._startTime, selectableOptions);
455
- if (optionIndex >= 0 && optionIndex < selectableOptions.length) {
456
- activeStartIndex = optionIndex;
457
- }
458
- }
459
462
  const config = {
460
463
  id: `forge-time-picker-${this._identifier}`,
461
464
  selectedValues,
@@ -504,20 +507,22 @@ export class TimePickerFoundation {
504
507
  const minuteStep = this._step;
505
508
  const times = [];
506
509
  let leadingOptions = [];
507
- for (let totalMinutes = minMinutes; totalMinutes <= maxMinutes; totalMinutes += minuteStep) {
508
- if (totalMinutes === TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES) {
509
- break;
510
+ if (this._showHourOptions) {
511
+ for (let totalMinutes = minMinutes; totalMinutes <= maxMinutes; totalMinutes += minuteStep) {
512
+ if (totalMinutes === TIME_PICKER_CONSTANTS.numbers.MAX_DAY_MINUTES) {
513
+ break;
514
+ }
515
+ const millis = minutesToMillis(totalMinutes);
516
+ const disabled = this._restrictedTimes.includes(millis);
517
+ const label = millisToTimeString(millis, this._use24HourTime, false) || '';
518
+ const value = { time: millis };
519
+ times.push({ label, value, disabled });
520
+ }
521
+ // Add divider between AM/PM times
522
+ const firstPmIndex = times.findIndex(t => t.value.time / 1000 / 60 >= 720);
523
+ if (firstPmIndex >= 0 && firstPmIndex < times.length - 1) {
524
+ times.splice(firstPmIndex, 0, { label: '', value: null, divider: true });
510
525
  }
511
- const millis = minutesToMillis(totalMinutes);
512
- const disabled = this._restrictedTimes.includes(millis);
513
- const label = millisToTimeString(millis, this._use24HourTime, false) || '';
514
- const value = { time: millis };
515
- times.push({ label, value, disabled });
516
- }
517
- // Add divider between AM/PM times
518
- const firstPmIndex = times.findIndex(t => t.value.time / 1000 / 60 >= 720);
519
- if (firstPmIndex >= 0 && firstPmIndex < times.length - 1) {
520
- times.splice(firstPmIndex, 0, { label: '', value: null, divider: true });
521
526
  }
522
527
  // Check if we need to prepend a "Now" option
523
528
  if (this._showNow) {
@@ -534,7 +539,9 @@ export class TimePickerFoundation {
534
539
  }
535
540
  // Append all leading options
536
541
  if (leadingOptions.length) {
537
- times.splice(0, 0, { label: '', value: null, divider: true });
542
+ if (times.length) {
543
+ times.splice(0, 0, { label: '', value: null, divider: true });
544
+ }
538
545
  leadingOptions.forEach((o, index) => times.splice(index, 0, o));
539
546
  }
540
547
  return times;
@@ -747,6 +754,14 @@ export class TimePickerFoundation {
747
754
  this._showNow = value;
748
755
  }
749
756
  }
757
+ get showHourOptions() {
758
+ return this._showHourOptions;
759
+ }
760
+ set showHourOptions(value) {
761
+ if (this._showHourOptions !== value) {
762
+ this._showHourOptions = value;
763
+ }
764
+ }
750
765
  get customOptions() {
751
766
  return this._customOptions;
752
767
  }
@@ -20,6 +20,7 @@ export interface ITimePickerComponent extends IBaseComponent {
20
20
  step: number;
21
21
  allowInput: boolean;
22
22
  showNow: boolean;
23
+ showHourOptions: boolean;
23
24
  customOptions: ITimePickerOption[];
24
25
  validationCallback: TimePickerValidationCallback;
25
26
  parseCallback: TimePickerParseCallback;
@@ -68,6 +69,8 @@ export declare class TimePickerComponent extends BaseComponent implements ITimeP
68
69
  step: number;
69
70
  allowInput: boolean;
70
71
  showNow: boolean;
72
+ /** Whether or not to display hour options in dropdown */
73
+ showHourOptions: boolean;
71
74
  customOptions: ITimePickerOption[];
72
75
  validationCallback: TimePickerValidationCallback;
73
76
  parseCallback: TimePickerParseCallback;
@@ -45,6 +45,7 @@ let TimePickerComponent = class TimePickerComponent extends BaseComponent {
45
45
  TIME_PICKER_CONSTANTS.attributes.STEP,
46
46
  TIME_PICKER_CONSTANTS.attributes.ALLOW_INPUT,
47
47
  TIME_PICKER_CONSTANTS.attributes.SHOW_NOW,
48
+ TIME_PICKER_CONSTANTS.attributes.SHOW_HOUR_OPTIONS,
48
49
  TIME_PICKER_CONSTANTS.attributes.DISABLED,
49
50
  TIME_PICKER_CONSTANTS.attributes.POPUP_CLASSES,
50
51
  TIME_PICKER_CONSTANTS.attributes.ALLOW_DROPDOWN
@@ -87,6 +88,9 @@ let TimePickerComponent = class TimePickerComponent extends BaseComponent {
87
88
  case TIME_PICKER_CONSTANTS.attributes.SHOW_NOW:
88
89
  this.showNow = coerceBoolean(newValue);
89
90
  break;
91
+ case TIME_PICKER_CONSTANTS.attributes.SHOW_HOUR_OPTIONS:
92
+ this.showHourOptions = coerceBoolean(newValue);
93
+ break;
90
94
  case TIME_PICKER_CONSTANTS.attributes.MIN:
91
95
  this.min = newValue;
92
96
  break;
@@ -156,6 +160,9 @@ __decorate([
156
160
  __decorate([
157
161
  FoundationProperty()
158
162
  ], TimePickerComponent.prototype, "showNow", void 0);
163
+ __decorate([
164
+ FoundationProperty()
165
+ ], TimePickerComponent.prototype, "showHourOptions", void 0);
159
166
  __decorate([
160
167
  FoundationProperty()
161
168
  ], TimePickerComponent.prototype, "customOptions", void 0);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tylertech/forge",
3
3
  "description": "Forge Web Components library",
4
- "version": "2.7.0",
4
+ "version": "2.8.0",
5
5
  "author": "Tyler Technologies, Inc.",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
@@ -31,7 +31,9 @@
31
31
  }
32
32
 
33
33
  &__helper-text {
34
- @include helper-text;
34
+ ::slotted([slot='helper-text']) {
35
+ @include helper-text;
36
+ }
35
37
  }
36
38
 
37
39
  &[disabled] {