@danske/sapphire-angular 1.31.0 → 2.1.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 (150) hide show
  1. package/esm2020/lib/badge/src/badge.component.mjs +4 -4
  2. package/esm2020/lib/button/src/button-group.component.mjs +6 -14
  3. package/esm2020/lib/button/src/button.component.mjs +9 -38
  4. package/esm2020/lib/button/src/icon-button.component.mjs +13 -40
  5. package/esm2020/lib/button/src/toggle-button.component.mjs +7 -6
  6. package/esm2020/lib/checkbox/src/checkbox-group.component.mjs +6 -3
  7. package/esm2020/lib/checkbox/src/checkbox.component.mjs +12 -4
  8. package/esm2020/lib/common/disabled.mjs +1 -1
  9. package/esm2020/lib/common/sapphire-view-encapsulation.mjs +3 -1
  10. package/esm2020/lib/core.module.mjs +8 -8
  11. package/esm2020/lib/field/src/field-control.mjs +2 -1
  12. package/esm2020/lib/field/src/field.component.mjs +8 -8
  13. package/esm2020/lib/help-button/public_api.mjs +3 -0
  14. package/esm2020/lib/help-button/src/help-button.component.mjs +112 -0
  15. package/esm2020/lib/help-button/src/help-button.module.mjs +33 -0
  16. package/esm2020/lib/icon/src/icon-size-provider.mjs +2 -2
  17. package/esm2020/lib/icon/src/icon.component.mjs +22 -37
  18. package/esm2020/lib/label/src/label.component.mjs +5 -5
  19. package/esm2020/lib/link/src/link.component.mjs +5 -5
  20. package/esm2020/lib/listbox/src/listbox-item.component.mjs +2 -2
  21. package/esm2020/lib/listbox/src/listbox.component.mjs +5 -5
  22. package/esm2020/lib/listbox/src/option-primary-text.directive.mjs +4 -2
  23. package/esm2020/lib/listbox/src/option.component.mjs +4 -2
  24. package/esm2020/lib/menu/src/menu-trigger.directive.mjs +5 -2
  25. package/esm2020/lib/menu/src/menu.component.mjs +4 -4
  26. package/esm2020/lib/modal/public_api.mjs +8 -12
  27. package/esm2020/lib/modal/src/dialog/confirmation-dialog.component.mjs +9 -7
  28. package/esm2020/lib/modal/src/dialog/danger-dialog.component.mjs +9 -7
  29. package/esm2020/lib/modal/src/dialog/dialog.component.mjs +10 -35
  30. package/esm2020/lib/modal/src/layout/modal-back-button.directive.mjs +13 -0
  31. package/esm2020/lib/modal/src/layout/modal-body.component.mjs +38 -0
  32. package/esm2020/lib/modal/src/layout/modal-close-button.directive.mjs +31 -0
  33. package/esm2020/lib/modal/src/layout/modal-footer.component.mjs +39 -0
  34. package/esm2020/lib/modal/src/layout/modal-header.component.mjs +77 -0
  35. package/esm2020/lib/modal/src/layout/modal-layout.component.mjs +15 -0
  36. package/esm2020/lib/modal/src/modal-base.component.mjs +7 -13
  37. package/esm2020/lib/modal/src/modal.module.mjs +43 -71
  38. package/esm2020/lib/modal/src/modal.service.mjs +1 -1
  39. package/esm2020/lib/modal/src/panel/panel.component.mjs +8 -15
  40. package/esm2020/lib/notification-badge/src/notification-badge.component.mjs +4 -4
  41. package/esm2020/lib/pagination/i18n/da-DK.json +2 -0
  42. package/esm2020/lib/pagination/i18n/de-DE.json +2 -0
  43. package/esm2020/lib/pagination/i18n/en-US.json +2 -0
  44. package/esm2020/lib/pagination/i18n/fi-FI.json +2 -0
  45. package/esm2020/lib/pagination/i18n/nb-NO.json +2 -0
  46. package/esm2020/lib/pagination/i18n/pl-PL.json +2 -0
  47. package/esm2020/lib/pagination/i18n/sv-SE.json +2 -0
  48. package/esm2020/lib/pagination/src/page-selection-row.component.mjs +119 -0
  49. package/esm2020/lib/pagination/src/pagination.component.mjs +20 -4
  50. package/esm2020/lib/pagination/src/pagination.module.mjs +4 -3
  51. package/esm2020/lib/popover/src/popover-trigger.directive.mjs +14 -4
  52. package/esm2020/lib/radio/src/radio-group.component.mjs +3 -3
  53. package/esm2020/lib/radio/src/radio.component.mjs +3 -3
  54. package/esm2020/lib/segmented-tabs/src/segmented-tabs.component.mjs +4 -4
  55. package/esm2020/lib/select/src/basic-select/basic-select.component.mjs +7 -27
  56. package/esm2020/lib/select/src/select/select.component.mjs +5 -5
  57. package/esm2020/lib/skeleton/src/skeleton.component.mjs +2 -2
  58. package/esm2020/lib/switch/src/switch.component.mjs +5 -5
  59. package/esm2020/lib/table/public_api.mjs +2 -1
  60. package/esm2020/lib/table/src/table-footer.directive.mjs +20 -0
  61. package/esm2020/lib/table/src/table-head-cell.component.mjs +3 -3
  62. package/esm2020/lib/table/src/table-sort-header.directive.mjs +2 -3
  63. package/esm2020/lib/table/src/table-sort.directive.mjs +13 -3
  64. package/esm2020/lib/table/src/table.component.mjs +7 -14
  65. package/esm2020/lib/table/src/table.directive.mjs +12 -6
  66. package/esm2020/lib/table/src/table.module.mjs +6 -1
  67. package/esm2020/lib/text-field/src/text-field.component.mjs +5 -5
  68. package/esm2020/lib/theme/src/themes.mjs +4 -4
  69. package/esm2020/lib/tooltip/src/tooltip.directive.mjs +3 -3
  70. package/esm2020/lib/typography/src/paragraph.component.mjs +5 -5
  71. package/esm2020/public-api.mjs +2 -2
  72. package/fesm2015/danske-sapphire-angular.mjs +721 -847
  73. package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
  74. package/fesm2020/danske-sapphire-angular.mjs +728 -852
  75. package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
  76. package/lib/badge/src/badge.component.d.ts +2 -2
  77. package/lib/button/src/button-group.component.d.ts +3 -5
  78. package/lib/button/src/button.component.d.ts +4 -11
  79. package/lib/button/src/icon-button.component.d.ts +4 -11
  80. package/lib/button/src/toggle-button.component.d.ts +3 -3
  81. package/lib/checkbox/src/checkbox-group.component.d.ts +1 -0
  82. package/lib/checkbox/src/checkbox.component.d.ts +3 -1
  83. package/lib/common/disabled.d.ts +1 -1
  84. package/lib/core.module.d.ts +2 -2
  85. package/lib/field/src/field.component.d.ts +4 -4
  86. package/lib/help-button/public_api.d.ts +2 -0
  87. package/lib/help-button/src/help-button.component.d.ts +50 -0
  88. package/lib/help-button/src/help-button.module.d.ts +7 -0
  89. package/lib/icon/src/icon-size-provider.d.ts +2 -2
  90. package/lib/icon/src/icon.component.d.ts +6 -3
  91. package/lib/label/src/label.component.d.ts +3 -3
  92. package/lib/link/src/link.component.d.ts +1 -1
  93. package/lib/listbox/src/listbox-item.component.d.ts +1 -1
  94. package/lib/listbox/src/listbox.component.d.ts +1 -1
  95. package/lib/menu/src/menu.component.d.ts +1 -1
  96. package/lib/modal/public_api.d.ts +7 -11
  97. package/lib/modal/src/dialog/dialog.component.d.ts +2 -17
  98. package/lib/modal/src/layout/modal-back-button.directive.d.ts +5 -0
  99. package/lib/modal/src/{panel/panel-content.component.d.ts → layout/modal-body.component.d.ts} +3 -3
  100. package/lib/modal/src/{modal-close-button.directive.d.ts → layout/modal-close-button.directive.d.ts} +2 -2
  101. package/lib/modal/src/layout/modal-footer.component.d.ts +21 -0
  102. package/lib/modal/src/layout/modal-header.component.d.ts +29 -0
  103. package/lib/modal/src/layout/modal-layout.component.d.ts +6 -0
  104. package/lib/modal/src/modal-base.component.d.ts +5 -7
  105. package/lib/modal/src/modal.module.d.ts +21 -25
  106. package/lib/modal/src/modal.service.d.ts +2 -2
  107. package/lib/modal/src/panel/panel.component.d.ts +3 -6
  108. package/lib/notification-badge/src/notification-badge.component.d.ts +1 -1
  109. package/lib/pagination/src/page-selection-row.component.d.ts +39 -0
  110. package/lib/pagination/src/pagination.component.d.ts +8 -1
  111. package/lib/pagination/src/pagination.module.d.ts +8 -7
  112. package/lib/popover/src/popover-trigger.directive.d.ts +6 -1
  113. package/lib/segmented-tabs/src/segmented-tabs.component.d.ts +1 -1
  114. package/lib/select/src/basic-select/basic-select.component.d.ts +5 -7
  115. package/lib/switch/src/switch.component.d.ts +2 -2
  116. package/lib/table/public_api.d.ts +1 -0
  117. package/lib/table/src/table-footer.directive.d.ts +7 -0
  118. package/lib/table/src/table-sort.directive.d.ts +7 -4
  119. package/lib/table/src/table.component.d.ts +4 -3
  120. package/lib/table/src/table.directive.d.ts +3 -1
  121. package/lib/table/src/table.module.d.ts +12 -11
  122. package/lib/typography/src/paragraph.component.d.ts +1 -1
  123. package/package.json +4 -4
  124. package/public-api.d.ts +1 -1
  125. package/esm2020/lib/contextual-help/public_api.mjs +0 -6
  126. package/esm2020/lib/contextual-help/src/contextual-help.component.mjs +0 -112
  127. package/esm2020/lib/contextual-help/src/contextual-help.module.mjs +0 -33
  128. package/esm2020/lib/modal/src/dialog/dialog-close-button.directive.mjs +0 -18
  129. package/esm2020/lib/modal/src/dialog/dialog-content.directive.mjs +0 -29
  130. package/esm2020/lib/modal/src/dialog/dialog-footer.component.mjs +0 -77
  131. package/esm2020/lib/modal/src/dialog/dialog-header.component.mjs +0 -66
  132. package/esm2020/lib/modal/src/modal-close-button.directive.mjs +0 -31
  133. package/esm2020/lib/modal/src/panel/inline-panel.component.mjs +0 -15
  134. package/esm2020/lib/modal/src/panel/panel-back-button.directive.mjs +0 -13
  135. package/esm2020/lib/modal/src/panel/panel-close-button.directive.mjs +0 -16
  136. package/esm2020/lib/modal/src/panel/panel-content.component.mjs +0 -38
  137. package/esm2020/lib/modal/src/panel/panel-footer.component.mjs +0 -38
  138. package/esm2020/lib/modal/src/panel/panel-header.component.mjs +0 -69
  139. package/lib/contextual-help/public_api.d.ts +0 -2
  140. package/lib/contextual-help/src/contextual-help.component.d.ts +0 -50
  141. package/lib/contextual-help/src/contextual-help.module.d.ts +0 -7
  142. package/lib/modal/src/dialog/dialog-close-button.directive.d.ts +0 -7
  143. package/lib/modal/src/dialog/dialog-content.directive.d.ts +0 -13
  144. package/lib/modal/src/dialog/dialog-footer.component.d.ts +0 -37
  145. package/lib/modal/src/dialog/dialog-header.component.d.ts +0 -25
  146. package/lib/modal/src/panel/inline-panel.component.d.ts +0 -6
  147. package/lib/modal/src/panel/panel-back-button.directive.d.ts +0 -5
  148. package/lib/modal/src/panel/panel-close-button.directive.d.ts +0 -6
  149. package/lib/modal/src/panel/panel-footer.component.d.ts +0 -21
  150. package/lib/modal/src/panel/panel-header.component.d.ts +0 -26
@@ -1,30 +1,26 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./dialog/dialog.component";
3
- import * as i2 from "./dialog/dialog-header.component";
4
- import * as i3 from "./dialog/dialog-content.directive";
5
- import * as i4 from "./dialog/dialog-footer.component";
6
- import * as i5 from "./dialog/dialog-close-button.directive";
7
- import * as i6 from "./dialog/dialog-trigger.directive";
8
- import * as i7 from "./dialog/confirmation-dialog.component";
9
- import * as i8 from "./dialog/danger-dialog.component";
10
- import * as i9 from "./panel/panel.component";
11
- import * as i10 from "./panel/inline-panel.component";
12
- import * as i11 from "./panel/panel-trigger.directive";
13
- import * as i12 from "./panel/panel-header.component";
14
- import * as i13 from "./panel/panel-content.component";
15
- import * as i14 from "./panel/panel-footer.component";
16
- import * as i15 from "./panel/panel-close-button.directive";
17
- import * as i16 from "./panel/panel-back-button.directive";
18
- import * as i17 from "@angular/common";
19
- import * as i18 from "@angular/cdk/dialog";
20
- import * as i19 from "../../theme/src/theme.module";
21
- import * as i20 from "../../typography/src/typography.module";
22
- import * as i21 from "../../icon/src/icon.module";
23
- import * as i22 from "../../button/src/button.module";
24
- import * as i23 from "../../common/scroll-monitor.directive";
25
- import * as i24 from "../../common/sapphire-view-encapsulation";
2
+ import * as i1 from "./layout/modal-layout.component";
3
+ import * as i2 from "./layout/modal-header.component";
4
+ import * as i3 from "./layout/modal-body.component";
5
+ import * as i4 from "./layout/modal-footer.component";
6
+ import * as i5 from "./layout/modal-close-button.directive";
7
+ import * as i6 from "./layout/modal-back-button.directive";
8
+ import * as i7 from "./dialog/dialog.component";
9
+ import * as i8 from "./dialog/dialog-trigger.directive";
10
+ import * as i9 from "./dialog/confirmation-dialog.component";
11
+ import * as i10 from "./dialog/danger-dialog.component";
12
+ import * as i11 from "./panel/panel.component";
13
+ import * as i12 from "./panel/panel-trigger.directive";
14
+ import * as i13 from "@angular/common";
15
+ import * as i14 from "@angular/cdk/dialog";
16
+ import * as i15 from "../../theme/src/theme.module";
17
+ import * as i16 from "../../typography/src/typography.module";
18
+ import * as i17 from "../../icon/src/icon.module";
19
+ import * as i18 from "../../button/src/button.module";
20
+ import * as i19 from "../../common/scroll-monitor.directive";
21
+ import * as i20 from "../../common/sapphire-view-encapsulation";
26
22
  export declare class SapphireModalModule {
27
23
  static ɵfac: i0.ɵɵFactoryDeclaration<SapphireModalModule, never>;
28
- static ɵmod: i0.ɵɵNgModuleDeclaration<SapphireModalModule, [typeof i1.DialogComponent, typeof i2.DialogHeaderComponent, typeof i3.DialogContentDirective, typeof i4.DialogFooterComponent, typeof i5.DialogCloseButtonDirective, typeof i6.DialogTriggerDirective, typeof i7.ConfirmationDialogComponent, typeof i8.DangerDialogComponent, typeof i9.PanelComponent, typeof i10.InlinePanelComponent, typeof i11.PanelTriggerDirective, typeof i12.PanelHeaderComponent, typeof i13.PanelContentComponent, typeof i14.PanelFooterComponent, typeof i14.PanelFooterDirective, typeof i15.PanelCloseButtonDirective, typeof i16.PanelBackButtonDirective], [typeof i17.CommonModule, typeof i18.DialogModule, typeof i19.SapphireThemeModule, typeof i20.SapphireTypographyModule, typeof i21.SapphireIconModule, typeof i22.SapphireButtonModule, typeof i2.DialogHeaderDirective, typeof i4.DialogFooterDirective, typeof i23.ScrollMonitorDirective, typeof i12.PanelHeaderDirective, typeof i24.UseComponentStyles], [typeof i1.DialogComponent, typeof i2.DialogHeaderComponent, typeof i3.DialogContentDirective, typeof i4.DialogFooterComponent, typeof i5.DialogCloseButtonDirective, typeof i6.DialogTriggerDirective, typeof i2.DialogHeaderDirective, typeof i4.DialogFooterDirective, typeof i7.ConfirmationDialogComponent, typeof i8.DangerDialogComponent, typeof i9.PanelComponent, typeof i10.InlinePanelComponent, typeof i11.PanelTriggerDirective, typeof i12.PanelHeaderComponent, typeof i12.PanelHeaderDirective, typeof i13.PanelContentComponent, typeof i14.PanelFooterComponent, typeof i14.PanelFooterDirective, typeof i15.PanelCloseButtonDirective, typeof i16.PanelBackButtonDirective]>;
24
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SapphireModalModule, [typeof i1.ModalLayoutComponent, typeof i2.ModalHeaderComponent, typeof i3.ModalBodyComponent, typeof i4.ModalFooterComponent, typeof i5.ModalCloseButtonDirective, typeof i6.ModalBackButtonDirective, typeof i7.DialogComponent, typeof i8.DialogTriggerDirective, typeof i9.ConfirmationDialogComponent, typeof i10.DangerDialogComponent, typeof i11.PanelComponent, typeof i12.PanelTriggerDirective], [typeof i13.CommonModule, typeof i14.DialogModule, typeof i15.SapphireThemeModule, typeof i16.SapphireTypographyModule, typeof i17.SapphireIconModule, typeof i18.SapphireButtonModule, typeof i19.ScrollMonitorDirective, typeof i2.ModalHeaderDirective, typeof i4.ModalFooterDirective, typeof i20.UseComponentStyles], [typeof i1.ModalLayoutComponent, typeof i2.ModalHeaderComponent, typeof i3.ModalBodyComponent, typeof i4.ModalFooterComponent, typeof i2.ModalHeaderDirective, typeof i4.ModalFooterDirective, typeof i6.ModalBackButtonDirective, typeof i5.ModalCloseButtonDirective, typeof i7.DialogComponent, typeof i8.DialogTriggerDirective, typeof i9.ConfirmationDialogComponent, typeof i10.DangerDialogComponent, typeof i11.PanelComponent, typeof i12.PanelTriggerDirective]>;
29
25
  static ɵinj: i0.ɵɵInjectorDeclaration<SapphireModalModule>;
30
26
  }
@@ -2,7 +2,7 @@ import { Dialog, DialogRef } from '@angular/cdk/dialog';
2
2
  import { ComponentType, Overlay } from '@angular/cdk/overlay';
3
3
  import { TemplateRef } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
- export type ModalOptions = {
5
+ export interface ModalOptions {
6
6
  /**
7
7
  * Whether to close the dialog when the backdrop is clicked/touched.
8
8
  * @default false
@@ -13,7 +13,7 @@ export type ModalOptions = {
13
13
  * @default false
14
14
  */
15
15
  keyboardDismissDisabled?: boolean;
16
- };
16
+ }
17
17
  export declare class ModalService {
18
18
  private cdkDialog;
19
19
  private overlay;
@@ -1,6 +1,4 @@
1
1
  import { DialogRef } from '@angular/cdk/dialog';
2
- import { PanelHeaderDirective } from './panel-header.component';
3
- import { PanelContentComponent } from './panel-content.component';
4
2
  import { ModalBaseComponent } from '../modal-base.component';
5
3
  import * as i0 from "@angular/core";
6
4
  import * as i1 from "../../../common/sapphire-view-encapsulation";
@@ -8,11 +6,10 @@ export declare class PanelComponent extends ModalBaseComponent {
8
6
  protected dialogRef: DialogRef;
9
7
  /**
10
8
  * Panel size, constraining the width of the panel.
9
+ * @default 'lg'
11
10
  */
12
- size: 'small' | 'large';
13
- header?: PanelHeaderDirective;
14
- content?: PanelContentComponent;
11
+ size: 'sm' | 'lg';
15
12
  constructor(dialogRef: DialogRef);
16
13
  static ɵfac: i0.ɵɵFactoryDeclaration<PanelComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<PanelComponent, "sp-panel", never, { "size": "size"; }, {}, ["header", "content"], ["sp-panel-header, [spPanelHeader]", "sp-panel-content", "sp-panel-footer, [spPanelFooter]"], false, [{ directive: typeof i1.UseComponentStylesOnHost; inputs: {}; outputs: {}; }]>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<PanelComponent, "sp-panel", never, { "size": "size"; }, {}, never, ["*"], false, [{ directive: typeof i1.UseComponentStylesOnHost; inputs: {}; outputs: {}; }]>;
18
15
  }
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class NotificationBadgeComponent {
3
3
  containerType?: 'circle' | 'rectangle';
4
- size?: 'small' | 'medium' | 'large';
4
+ size?: 'sm' | 'md' | 'lg';
5
5
  variant?: 'primary' | 'secondary';
6
6
  count?: number;
7
7
  show?: boolean;
@@ -0,0 +1,39 @@
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { TranslateService } from '../../common/translate.service';
3
+ import * as i0 from "@angular/core";
4
+ type PageSlot = {
5
+ type: 'ellipsis';
6
+ } | {
7
+ type: 'page';
8
+ page: number;
9
+ };
10
+ interface PageSelectionOptions {
11
+ currentPage: number;
12
+ totalPageCount: number;
13
+ siblingCount?: number;
14
+ boundaryCount?: number;
15
+ }
16
+ export declare class PageSelectionRowComponent implements OnChanges {
17
+ t: TranslateService;
18
+ constructor(t: TranslateService);
19
+ currentPage: number;
20
+ totalPageCount: number;
21
+ siblingCount: number;
22
+ boundaryCount: number;
23
+ pageChange: EventEmitter<number>;
24
+ slots: PageSlot[];
25
+ onPageSelect(page: number): void;
26
+ ngOnChanges(changes: SimpleChanges): void;
27
+ getAriaLabel(slot: PageSlot): string;
28
+ pageSlots: (params: PageSelectionOptions) => Array<PageSlot>;
29
+ visiblePages: (params: PageSelectionOptions) => Array<Array<number>>;
30
+ normalizePageValues: ({ currentPage, totalPageCount, siblingCount, boundaryCount, }: PageSelectionOptions) => Required<PageSelectionOptions>;
31
+ arrayOfNumbers: ({ from, count, }: {
32
+ from: number;
33
+ count: number;
34
+ }) => Array<number>;
35
+ intersperse: <T>(array: T[], separator: T) => T[];
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<PageSelectionRowComponent, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<PageSelectionRowComponent, "sp-page-selection-row", never, { "currentPage": "currentPage"; "totalPageCount": "totalPageCount"; "siblingCount": "siblingCount"; "boundaryCount": "boundaryCount"; }, { "pageChange": "pageChange"; }, never, never, false, never>;
38
+ }
39
+ export {};
@@ -17,6 +17,11 @@ export declare class PaginationComponent {
17
17
  itemCount: number;
18
18
  page: number;
19
19
  pageSizeOptions?: number[];
20
+ /**
21
+ * Allow selection of individual pages
22
+ * @default false
23
+ */
24
+ allowPageSelection: boolean;
20
25
  get disabled(): boolean;
21
26
  set disabled(value: BooleanInput);
22
27
  private _disabled;
@@ -25,8 +30,10 @@ export declare class PaginationComponent {
25
30
  readonly valueChange: EventEmitter<SapphirePaginationChange>;
26
31
  _onPageSizeChange(value: string): void;
27
32
  _onPageChange(direction: 'previous' | 'next'): void;
33
+ _onPageSelect(index: number): void;
28
34
  _isNextPageButtonDisabled(): boolean;
29
35
  _isPreviousPageButtonDisabled(): boolean;
36
+ protected readonly Math: Math;
30
37
  static ɵfac: i0.ɵɵFactoryDeclaration<PaginationComponent, never>;
31
- static ɵcmp: i0.ɵɵComponentDeclaration<PaginationComponent, "sp-pagination", never, { "pageSize": "pageSize"; "itemCount": "itemCount"; "page": "page"; "pageSizeOptions": "pageSizeOptions"; "disabled": "disabled"; }, { "valueChange": "valueChange"; }, never, never, false, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaginationComponent, "sp-pagination", never, { "pageSize": "pageSize"; "itemCount": "itemCount"; "page": "page"; "pageSizeOptions": "pageSizeOptions"; "allowPageSelection": "allowPageSelection"; "disabled": "disabled"; }, { "valueChange": "valueChange"; }, never, never, false, never>;
32
39
  }
@@ -1,13 +1,14 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./pagination.component";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "../../common/translate.pipe";
5
- import * as i4 from "@angular/cdk/a11y";
6
- import * as i5 from "../../select/src/select/select.module";
7
- import * as i6 from "../../button/src/button.module";
8
- import * as i7 from "../../icon/src/icon.module";
3
+ import * as i2 from "./page-selection-row.component";
4
+ import * as i3 from "@angular/common";
5
+ import * as i4 from "../../common/translate.pipe";
6
+ import * as i5 from "@angular/cdk/a11y";
7
+ import * as i6 from "../../select/src/select/select.module";
8
+ import * as i7 from "../../button/src/button.module";
9
+ import * as i8 from "../../icon/src/icon.module";
9
10
  export declare class SapphirePaginationModule {
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SapphirePaginationModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<SapphirePaginationModule, [typeof i1.PaginationComponent], [typeof i2.CommonModule, typeof i3.TranslatePipe, typeof i4.A11yModule, typeof i5.SapphireSelectModule, typeof i6.SapphireButtonModule, typeof i7.SapphireIconModule], [typeof i1.PaginationComponent]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SapphirePaginationModule, [typeof i1.PaginationComponent, typeof i2.PageSelectionRowComponent], [typeof i3.CommonModule, typeof i4.TranslatePipe, typeof i5.A11yModule, typeof i6.SapphireSelectModule, typeof i7.SapphireButtonModule, typeof i8.SapphireIconModule], [typeof i1.PaginationComponent]>;
12
13
  static ɵinj: i0.ɵɵInjectorDeclaration<SapphirePaginationModule>;
13
14
  }
@@ -37,6 +37,11 @@ export declare class PopoverTriggerDirective implements PopoverTrigger {
37
37
  * is applied on an element which doesn't support `disabled` property.
38
38
  */
39
39
  disabled: BooleanInput;
40
+ /**
41
+ * If the popover should be pushed around whenever it doesn't fit the viewport
42
+ * with the provided placement.
43
+ */
44
+ disablePushInsideViewport: BooleanInput;
40
45
  /** Emits when the attached popover is requested to open */
41
46
  readonly opened: EventEmitter<void>;
42
47
  /** Emits when the attached popover is requested to close */
@@ -82,5 +87,5 @@ export declare class PopoverTriggerDirective implements PopoverTrigger {
82
87
  private getContentPortal;
83
88
  private getOverlayPositionStrategy;
84
89
  static ɵfac: i0.ɵɵFactoryDeclaration<PopoverTriggerDirective, never>;
85
- static ɵdir: i0.ɵɵDirectiveDeclaration<PopoverTriggerDirective, "[spPopoverTriggerFor]", ["spPopoverTrigger"], { "placement": "spPopoverPlacement"; "templateRef": "spPopoverTriggerFor"; "nonModal": "spPopoverNonModal"; "openOnPressStart": "spPopoverTriggerOpenOnPressStart"; "closeOnScroll": "spPopoverTriggerCloseOnScroll"; "disabled": "spPopoverTriggerDisabled"; }, { "opened": "spPopoverTriggerOpened"; "closed": "spPopoverTriggerClosed"; }, never, never, false, never>;
90
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PopoverTriggerDirective, "[spPopoverTriggerFor]", ["spPopoverTrigger"], { "placement": "spPopoverPlacement"; "templateRef": "spPopoverTriggerFor"; "nonModal": "spPopoverNonModal"; "openOnPressStart": "spPopoverTriggerOpenOnPressStart"; "closeOnScroll": "spPopoverTriggerCloseOnScroll"; "disabled": "spPopoverTriggerDisabled"; "disablePushInsideViewport": "spPopoverDisablePushInsideViewport"; }, { "opened": "spPopoverTriggerOpened"; "closed": "spPopoverTriggerClosed"; }, never, never, false, never>;
86
91
  }
@@ -8,7 +8,7 @@ export declare class SegmentedTabsComponent implements AfterContentInit, AfterVi
8
8
  private changeDetector;
9
9
  segmentedControl: ElementRef;
10
10
  /** Size of tabs */
11
- size: 'small' | 'medium' | 'large';
11
+ size: 'sm' | 'md' | 'lg';
12
12
  /**
13
13
  * Alignment of tabs' buttons group.
14
14
  * @default 'left'
@@ -21,8 +21,8 @@ export declare class BasicSingleSelectDirective extends SingleSelectDirectiveBas
21
21
  * ```tsx
22
22
  * <sp-basic-select
23
23
  * placeholder="Select an option"
24
- * size="small"
25
- * variant="contained"
24
+ * size="sm"
25
+ * variant="secondary"
26
26
  * >
27
27
  * <sp-option value="option1">First Option</sp-option>
28
28
  * <sp-option value="option2">Second Option</sp-option>
@@ -34,14 +34,14 @@ export declare class BasicSelectComponent extends SelectComponentBase {
34
34
  private focusMonitor;
35
35
  /**
36
36
  * Size of the button
37
+ * @default 'md'
37
38
  */
38
- size: 'small' | 'medium' | 'large';
39
+ size: 'sm' | 'md' | 'lg';
39
40
  /**
40
41
  * Visual variations
41
- * TODO(v4): remove 'contained' and 'uncontained'
42
42
  * @default 'secondary-ghost'
43
43
  */
44
- variant: 'primary' | 'secondary-fill' | 'secondary-ghost' | 'tertiary-ghost' | 'contained' | 'uncontained';
44
+ variant: 'primary' | 'secondary' | 'secondary-ghost' | 'secondary-text' | 'tertiary' | 'tertiary-ghost' | 'tertiary-text';
45
45
  protected triggerRef: PopoverTriggerDirective | undefined;
46
46
  protected triggerElementRef: ElementRef | undefined;
47
47
  protected listbox: ListboxComponent | undefined;
@@ -50,8 +50,6 @@ export declare class BasicSelectComponent extends SelectComponentBase {
50
50
  focus(focusOrigin?: FocusOrigin): void;
51
51
  isFocused(): boolean;
52
52
  _onFocusChange(focusOrigin: FocusOrigin): void;
53
- getButtonVariant(): "primary" | "secondary" | "tertiary";
54
- getButtonAppearance(): "fill" | "ghost";
55
53
  static ɵfac: i0.ɵɵFactoryDeclaration<BasicSelectComponent, never>;
56
54
  static ɵcmp: i0.ɵɵComponentDeclaration<BasicSelectComponent, "sp-basic-select", ["spBasicSelect"], { "size": "size"; "variant": "variant"; }, {}, never, ["sp-selection-text"], false, never>;
57
55
  }
@@ -38,8 +38,8 @@ export declare class SwitchComponent extends _SwitchMixinBase implements Control
38
38
  ariaDescribedby: string;
39
39
  /** Name value will be applied to the input element if present */
40
40
  name: string | null;
41
- /** @default "large" */
42
- size?: 'large' | 'medium';
41
+ /** @default "lg" */
42
+ size?: 'lg' | 'md';
43
43
  /** A unique id for the switch input. If none is supplied, it will be auto-generated. */
44
44
  id: string;
45
45
  /** Returns the unique id for the visual hidden input. */
@@ -2,6 +2,7 @@ export * from './src/table.component';
2
2
  export * from './src/table.directive';
3
3
  export * from './src/table-row.directive';
4
4
  export * from './src/table-cell.directive';
5
+ export * from './src/table-footer.directive';
5
6
  export * from './src/table-body.directive';
6
7
  export * from './src/table-head-cell.component';
7
8
  export * from './src/table-head.directive';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "../../common/sapphire-view-encapsulation";
3
+ export declare class TableFooterDirective {
4
+ constructor();
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableFooterDirective, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<TableFooterDirective, "tfoot[sp-table-tfoot]", never, {}, {}, never, never, false, [{ directive: typeof i1.UseComponentStyles; inputs: {}; outputs: {}; }]>;
7
+ }
@@ -1,12 +1,15 @@
1
- import { EventEmitter } from '@angular/core';
1
+ import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export type SortDescriptor = {
3
+ export interface SortDescriptor {
4
4
  column: string | null;
5
5
  direction: 'ascending' | 'descending';
6
- };
7
- export declare class TableSortDirective {
6
+ }
7
+ export declare class TableSortDirective implements OnChanges {
8
8
  sortDescriptor: SortDescriptor;
9
9
  sortChange: EventEmitter<SortDescriptor>;
10
+ private isControlled;
11
+ ngOnChanges(changes: SimpleChanges): void;
12
+ setSortDescriptor(sortDescriptor: SortDescriptor): void;
10
13
  constructor();
11
14
  static ɵfac: i0.ɵɵFactoryDeclaration<TableSortDirective, never>;
12
15
  static ɵdir: i0.ɵɵDirectiveDeclaration<TableSortDirective, "sp-table[spTableSort]", never, { "sortDescriptor": "spTableSort"; }, { "sortChange": "spTableSortChange"; }, never, never, false, never>;
@@ -4,10 +4,10 @@ import { TableRowDirective } from './table-row.directive';
4
4
  import { TableDirective } from './table.directive';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../common/sapphire-view-encapsulation";
7
- export type RowActionEvent<D> = {
7
+ export interface RowActionEvent<D> {
8
8
  index: number;
9
9
  rowData: D;
10
- };
10
+ }
11
11
  export declare class TableComponent {
12
12
  /**
13
13
  * Handler that is called when a user performs an action on a row.
@@ -27,11 +27,12 @@ export declare class TableComponent {
27
27
  cellOverflow: 'wrap' | 'truncate';
28
28
  height: number | undefined;
29
29
  maxHeight: number | undefined;
30
+ cellSpacing: 'sm' | 'md' | 'lg' | 'xl';
30
31
  get isInteractive(): boolean;
31
32
  rows?: QueryList<TableRowDirective>;
32
33
  headCells?: QueryList<TableHeadCellComponent>;
33
34
  table?: TableDirective;
34
35
  constructor();
35
36
  static ɵfac: i0.ɵɵFactoryDeclaration<TableComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "sp-table", never, { "stickyHeader": "stickyHeader"; "cellOverflow": "cellOverflow"; "height": "height"; "maxHeight": "maxHeight"; }, { "rowAction": "rowAction"; }, ["table", "rows", "headCells"], ["table", "*"], false, [{ directive: typeof i1.UseComponentStylesOnHost; inputs: {}; outputs: {}; }]>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableComponent, "sp-table", never, { "stickyHeader": "stickyHeader"; "cellOverflow": "cellOverflow"; "height": "height"; "maxHeight": "maxHeight"; "cellSpacing": "cellSpacing"; }, { "rowAction": "rowAction"; }, ["table", "rows", "headCells"], ["table"], false, [{ directive: typeof i1.UseComponentStylesOnHost; inputs: {}; outputs: {}; }]>;
37
38
  }
@@ -1,7 +1,9 @@
1
+ import { TableComponent } from './table.component';
1
2
  import * as i0 from "@angular/core";
2
3
  import * as i1 from "../../common/sapphire-view-encapsulation";
3
4
  export declare class TableDirective {
4
- constructor();
5
+ _table: TableComponent;
6
+ constructor(_table: TableComponent);
5
7
  static ɵfac: i0.ɵɵFactoryDeclaration<TableDirective, never>;
6
8
  static ɵdir: i0.ɵɵDirectiveDeclaration<TableDirective, "table[sp-table]", never, {}, {}, never, never, false, [{ directive: typeof i1.UseComponentStyles; inputs: {}; outputs: {}; }]>;
7
9
  }
@@ -2,18 +2,19 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./table.component";
3
3
  import * as i2 from "./table.directive";
4
4
  import * as i3 from "./table-body.directive";
5
- import * as i4 from "./table-head.directive";
6
- import * as i5 from "./table-row.directive";
7
- import * as i6 from "./table-head-cell.component";
8
- import * as i7 from "./table-cell.directive";
9
- import * as i8 from "./table-sort.directive";
10
- import * as i9 from "./table-sort-header.directive";
11
- import * as i10 from "@angular/common";
12
- import * as i11 from "../../icon/src/icon.module";
13
- import * as i12 from "../../tooltip/src/truncated-with-tooltip.directive";
14
- import * as i13 from "../../common/sapphire-view-encapsulation";
5
+ import * as i4 from "./table-footer.directive";
6
+ import * as i5 from "./table-head.directive";
7
+ import * as i6 from "./table-row.directive";
8
+ import * as i7 from "./table-head-cell.component";
9
+ import * as i8 from "./table-cell.directive";
10
+ import * as i9 from "./table-sort.directive";
11
+ import * as i10 from "./table-sort-header.directive";
12
+ import * as i11 from "@angular/common";
13
+ import * as i12 from "../../icon/src/icon.module";
14
+ import * as i13 from "../../tooltip/src/truncated-with-tooltip.directive";
15
+ import * as i14 from "../../common/sapphire-view-encapsulation";
15
16
  export declare class SapphireTableModule {
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<SapphireTableModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<SapphireTableModule, [typeof i1.TableComponent, typeof i2.TableDirective, typeof i3.TableBodyDirective, typeof i4.TableHeadDirective, typeof i5.TableRowDirective, typeof i6.TableHeadCellComponent, typeof i7.TableCellDirective, typeof i8.TableSortDirective, typeof i9.TableSortHeaderDirective], [typeof i10.CommonModule, typeof i11.SapphireIconModule, typeof i12.TruncatedWithTooltipDirective, typeof i13.UseComponentStyles], [typeof i1.TableComponent, typeof i2.TableDirective, typeof i3.TableBodyDirective, typeof i4.TableHeadDirective, typeof i5.TableRowDirective, typeof i6.TableHeadCellComponent, typeof i7.TableCellDirective, typeof i8.TableSortDirective, typeof i9.TableSortHeaderDirective]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SapphireTableModule, [typeof i1.TableComponent, typeof i2.TableDirective, typeof i3.TableBodyDirective, typeof i4.TableFooterDirective, typeof i5.TableHeadDirective, typeof i6.TableRowDirective, typeof i7.TableHeadCellComponent, typeof i8.TableCellDirective, typeof i9.TableSortDirective, typeof i10.TableSortHeaderDirective], [typeof i11.CommonModule, typeof i12.SapphireIconModule, typeof i13.TruncatedWithTooltipDirective, typeof i14.UseComponentStyles], [typeof i1.TableComponent, typeof i2.TableDirective, typeof i3.TableBodyDirective, typeof i4.TableFooterDirective, typeof i5.TableHeadDirective, typeof i6.TableRowDirective, typeof i7.TableHeadCellComponent, typeof i8.TableCellDirective, typeof i9.TableSortDirective, typeof i10.TableSortHeaderDirective]>;
18
19
  static ɵinj: i0.ɵɵInjectorDeclaration<SapphireTableModule>;
19
20
  }
@@ -2,7 +2,7 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "../../theme/src/theme-check.directive";
3
3
  import * as i2 from "../../common/sapphire-view-encapsulation";
4
4
  export declare class ParagraphComponent {
5
- size: 'default' | 'small' | 'extraSmall';
5
+ size: 'md' | 'sm' | 'xs';
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<ParagraphComponent, never>;
7
7
  static ɵcmp: i0.ɵɵComponentDeclaration<ParagraphComponent, "p[sp-paragraph], div[sp-paragraph]", never, { "size": "size"; }, {}, never, ["*"], false, [{ directive: typeof i1.ThemeCheckDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.UseComponentStylesOnHost; inputs: {}; outputs: {}; }]>;
8
8
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danske/sapphire-angular",
3
- "version": "1.31.0",
3
+ "version": "2.1.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "description": "The Angular implementation of the Sapphire Design System from Danske Bank A/S",
6
6
  "module": "fesm2015/danske-sapphire-angular.mjs",
@@ -13,14 +13,14 @@
13
13
  "@angular/common": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
14
14
  "@angular/core": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
15
15
  "@angular/forms": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
16
- "@danske/sapphire-icons": "^1.0.2"
16
+ "@danske/sapphire-icons": "^2.0.0"
17
17
  },
18
18
  "dependencies": {
19
- "@danske/sapphire-css": "^35.0.0",
19
+ "@danske/sapphire-css": "^35.3.0",
20
20
  "@internationalized/message": "^3.1.5",
21
21
  "tslib": "^2.3.0"
22
22
  },
23
- "gitHead": "48ef1e292c3525b32559a8450dbd22b1df5e55db",
23
+ "gitHead": "963a89e30f65b6a968c406b16323aaa744bd9475",
24
24
  "es2020": "fesm2020/danske-sapphire-angular.mjs",
25
25
  "esm2020": "esm2020/danske-sapphire-angular.mjs",
26
26
  "fesm2020": "fesm2020/danske-sapphire-angular.mjs",
package/public-api.d.ts CHANGED
@@ -18,7 +18,7 @@ export * from './lib/tooltip/public_api';
18
18
  export * from './lib/modal/public_api';
19
19
  export * from './lib/skeleton/public_api';
20
20
  export * from './lib/pagination/public_api';
21
- export * from './lib/contextual-help/public_api';
21
+ export * from './lib/help-button/public_api';
22
22
  export * from './lib/field/public_api';
23
23
  export * from './lib/surface/public_api';
24
24
  export * from './lib/common/public_api';
@@ -1,6 +0,0 @@
1
- /*
2
- * TODO(v2): rename to help-button
3
- */
4
- export { SapphireContextualHelpModule } from './src/contextual-help.module';
5
- export { ContextualHelpComponent, ContextualHelpFooterDirective, ContextualHelpHeaderDirective, ContextualHelpContentDirective, } from './src/contextual-help.component';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udGV4dHVhbC1oZWxwL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IsOEJBQThCLEdBQy9CLE1BQU0saUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogVE9ETyh2Mik6IHJlbmFtZSB0byBoZWxwLWJ1dHRvblxuICovXG5leHBvcnQgeyBTYXBwaGlyZUNvbnRleHR1YWxIZWxwTW9kdWxlIH0gZnJvbSAnLi9zcmMvY29udGV4dHVhbC1oZWxwLm1vZHVsZSc7XG5leHBvcnQge1xuICBDb250ZXh0dWFsSGVscENvbXBvbmVudCxcbiAgQ29udGV4dHVhbEhlbHBGb290ZXJEaXJlY3RpdmUsXG4gIENvbnRleHR1YWxIZWxwSGVhZGVyRGlyZWN0aXZlLFxuICBDb250ZXh0dWFsSGVscENvbnRlbnREaXJlY3RpdmUsXG59IGZyb20gJy4vc3JjL2NvbnRleHR1YWwtaGVscC5jb21wb25lbnQnO1xuIl19
@@ -1,112 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, ViewChild, } from '@angular/core';
2
- import { NgIf } from '@angular/common';
3
- import { SapphireButtonModule } from '../../button/src/button.module';
4
- import { SapphireIconModule } from '../../icon/src/icon.module';
5
- import { SapphirePopoverModule } from '../../popover/src/popover.module';
6
- import { PopoverTriggerDirective } from '../../popover/src/popover-trigger.directive';
7
- import { SapphireTypographyModule } from '../../typography/src/typography.module';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../typography/src/heading.component";
10
- import * as i2 from "../../button/src/icon-button.component";
11
- import * as i3 from "../../icon/src/icon.component";
12
- import * as i4 from "../../popover/src/popover.component";
13
- import * as i5 from "../../popover/src/popover-trigger.directive";
14
- import * as i6 from "../../popover/src/popover-title.directive";
15
- export class ContextualHelpHeaderDirective {
16
- }
17
- ContextualHelpHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
18
- ContextualHelpHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ContextualHelpHeaderDirective, isStandalone: true, selector: "sp-contextual-help-header", ngImport: i0 });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpHeaderDirective, decorators: [{
20
- type: Directive,
21
- args: [{
22
- selector: 'sp-contextual-help-header',
23
- standalone: true,
24
- }]
25
- }] });
26
- export class ContextualHelpContentDirective {
27
- }
28
- ContextualHelpContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
29
- ContextualHelpContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ContextualHelpContentDirective, isStandalone: true, selector: "sp-contextual-help-content", ngImport: i0 });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpContentDirective, decorators: [{
31
- type: Directive,
32
- args: [{
33
- selector: 'sp-contextual-help-content',
34
- standalone: true,
35
- }]
36
- }] });
37
- export class ContextualHelpFooterDirective {
38
- }
39
- ContextualHelpFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
40
- ContextualHelpFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ContextualHelpFooterDirective, isStandalone: true, selector: "sp-contextual-help-footer", ngImport: i0 });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpFooterDirective, decorators: [{
42
- type: Directive,
43
- args: [{
44
- selector: 'sp-contextual-help-footer',
45
- standalone: true,
46
- }]
47
- }] });
48
- export class ContextualHelpComponent {
49
- constructor() {
50
- /**
51
- *
52
- * The type of contextual help which determines the icon shown.
53
- *
54
- * Use "info" for brief, contextual supplemental information. The content
55
- * inside should have an instructive tone.
56
- *
57
- * Use "help" variant to signal more in-depth guidance about a task or UI,
58
- * this may include links or images or other helpful media. The content
59
- * inside should have a helpful tone.
60
- *
61
- * @default 'info'
62
- */
63
- this.variant = 'info';
64
- /**
65
- * Placement of contextual help popover relative to the icon that triggers it.
66
- */
67
- this.placement = 'top';
68
- }
69
- isOpen() {
70
- return this._trigger?.isOpen();
71
- }
72
- toggle() {
73
- return this._trigger?.toggle();
74
- }
75
- open() {
76
- return this._trigger?.open();
77
- }
78
- close() {
79
- return this._trigger?.close();
80
- }
81
- }
82
- ContextualHelpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
- ContextualHelpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ContextualHelpComponent, isStandalone: true, selector: "sp-contextual-help", inputs: { variant: "variant", placement: "placement", ariaLabel: ["aria-label", "ariaLabel"] }, host: { properties: { "attr.aria-label": "null" } }, queries: [{ propertyName: "_footer", first: true, predicate: ContextualHelpFooterDirective, descendants: true }, { propertyName: "_header", first: true, predicate: ContextualHelpHeaderDirective, descendants: true }], viewQueries: [{ propertyName: "_trigger", first: true, predicate: PopoverTriggerDirective, descendants: true }], ngImport: i0, template: "<button\n sp-icon-button\n size=\"extraSmall\"\n variant=\"tertiary\"\n appearance=\"ghost\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverPlacement]=\"placement\"\n [attr.aria-label]=\"ariaLabel\"\n>\n <sp-icon\n *ngIf=\"variant === 'help'; else defaultIcon\"\n name=\"questionMarkCircle\"\n size=\"16px\"\n ></sp-icon>\n <ng-template #defaultIcon>\n <sp-icon name=\"info\"></sp-icon>\n </ng-template>\n</button>\n\n<ng-template #popover>\n <sp-popover noPadding>\n <div class=\"sapphire-contextual-help\">\n <div *ngIf=\"_header\" class=\"sapphire-contextual-help__header\">\n <h6 sp-heading spPopoverTitle>\n <ng-content select=\"sp-contextual-help-header\"></ng-content>\n </h6>\n </div>\n <ng-content select=\"sp-contextual-help-content\"></ng-content>\n <div *ngIf=\"_footer\" class=\"sapphire-contextual-help__footer\">\n <ng-content select=\"sp-contextual-help-footer\"></ng-content>\n </div>\n </div>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-contextual-help{color:var(--sapphire-semantic-color-content-default-primary);line-height:var(--sapphire-global-size-line-height-sm);max-width:var(--sapphire-global-size-generic-750);font-family:var(--sapphire-semantic-font-name-default);font-weight:var(--sapphire-semantic-font-weight-default-regular);font-size:var(--sapphire-semantic-size-font-text-md);padding:var(--sapphire-semantic-size-spacing-50) var(--sapphire-semantic-size-spacing-50);outline:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-contextual-help__header{padding-bottom:var(--sapphire-semantic-size-spacing-30)}.sapphire-contextual-help__footer{padding-top:var(--sapphire-semantic-size-spacing-20)}.sapphire-contextual-help--no-max-width{max-width:initial}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: SapphireTypographyModule }, { kind: "component", type: i1.HeadingComponent, selector: "h1[sp-heading],h2[sp-heading],h3[sp-heading],h4[sp-heading],h5[sp-heading],h6[sp-heading]", inputs: ["sp-heading", "fontVariant"] }, { kind: "ngmodule", type: SapphireButtonModule }, { kind: "component", type: i2.IconButtonComponent, selector: "button[sp-icon-button], a[sp-icon-button]", inputs: ["variant", "appearance", "surface", "size", "disabled", "type"] }, { kind: "ngmodule", type: SapphireIconModule }, { kind: "component", type: i3.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "ngmodule", type: SapphirePopoverModule }, { kind: "component", type: i4.PopoverComponent, selector: "sp-popover", inputs: ["noPadding", "noMaxWidth", "noAutoFocus", "trapFocus"] }, { kind: "directive", type: i5.PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: ["spPopoverPlacement", "spPopoverTriggerFor", "spPopoverNonModal", "spPopoverTriggerOpenOnPressStart", "spPopoverTriggerCloseOnScroll", "spPopoverTriggerDisabled"], outputs: ["spPopoverTriggerOpened", "spPopoverTriggerClosed"], exportAs: ["spPopoverTrigger"] }, { kind: "directive", type: i6.PopoverTitleDirective, selector: "[spPopoverTitle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ContextualHelpComponent, decorators: [{
85
- type: Component,
86
- args: [{ selector: 'sp-contextual-help', standalone: true, imports: [
87
- NgIf,
88
- SapphireTypographyModule,
89
- SapphireButtonModule,
90
- SapphireIconModule,
91
- SapphirePopoverModule,
92
- ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
93
- '[attr.aria-label]': 'null',
94
- }, template: "<button\n sp-icon-button\n size=\"extraSmall\"\n variant=\"tertiary\"\n appearance=\"ghost\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverPlacement]=\"placement\"\n [attr.aria-label]=\"ariaLabel\"\n>\n <sp-icon\n *ngIf=\"variant === 'help'; else defaultIcon\"\n name=\"questionMarkCircle\"\n size=\"16px\"\n ></sp-icon>\n <ng-template #defaultIcon>\n <sp-icon name=\"info\"></sp-icon>\n </ng-template>\n</button>\n\n<ng-template #popover>\n <sp-popover noPadding>\n <div class=\"sapphire-contextual-help\">\n <div *ngIf=\"_header\" class=\"sapphire-contextual-help__header\">\n <h6 sp-heading spPopoverTitle>\n <ng-content select=\"sp-contextual-help-header\"></ng-content>\n </h6>\n </div>\n <ng-content select=\"sp-contextual-help-content\"></ng-content>\n <div *ngIf=\"_footer\" class=\"sapphire-contextual-help__footer\">\n <ng-content select=\"sp-contextual-help-footer\"></ng-content>\n </div>\n </div>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-contextual-help{color:var(--sapphire-semantic-color-content-default-primary);line-height:var(--sapphire-global-size-line-height-sm);max-width:var(--sapphire-global-size-generic-750);font-family:var(--sapphire-semantic-font-name-default);font-weight:var(--sapphire-semantic-font-weight-default-regular);font-size:var(--sapphire-semantic-size-font-text-md);padding:var(--sapphire-semantic-size-spacing-50) var(--sapphire-semantic-size-spacing-50);outline:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-contextual-help__header{padding-bottom:var(--sapphire-semantic-size-spacing-30)}.sapphire-contextual-help__footer{padding-top:var(--sapphire-semantic-size-spacing-20)}.sapphire-contextual-help--no-max-width{max-width:initial}\n"] }]
95
- }], propDecorators: { variant: [{
96
- type: Input
97
- }], placement: [{
98
- type: Input
99
- }], ariaLabel: [{
100
- type: Input,
101
- args: ['aria-label']
102
- }], _trigger: [{
103
- type: ViewChild,
104
- args: [PopoverTriggerDirective]
105
- }], _footer: [{
106
- type: ContentChild,
107
- args: [ContextualHelpFooterDirective]
108
- }], _header: [{
109
- type: ContentChild,
110
- args: [ContextualHelpHeaderDirective]
111
- }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dHVhbC1oZWxwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29udGV4dHVhbC1oZWxwL3NyYy9jb250ZXh0dWFsLWhlbHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250ZXh0dWFsLWhlbHAvc3JjL2NvbnRleHR1YWwtaGVscC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7OztBQU9sRixNQUFNLE9BQU8sNkJBQTZCOzswSEFBN0IsNkJBQTZCOzhHQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFKekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBTUQsTUFBTSxPQUFPLDhCQUE4Qjs7MkhBQTlCLDhCQUE4QjsrR0FBOUIsOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztBQU9ELE1BQU0sT0FBTyw2QkFBNkI7OzBIQUE3Qiw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7QUFvQkQsTUFBTSxPQUFPLHVCQUF1QjtJQWpCcEM7UUFrQkU7Ozs7Ozs7Ozs7OztXQVlHO1FBRUgsWUFBTyxHQUFvQixNQUFNLENBQUM7UUFFbEM7O1dBRUc7UUFFSCxjQUFTLEdBQWMsS0FBSyxDQUFDO0tBZ0M5QjtJQWJDLE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELEtBQUs7UUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7b0hBcERVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHdRQWtDcEIsNkJBQTZCLDBFQUc3Qiw2QkFBNkIsMEZBTmhDLHVCQUF1QixnRENqRnBDLHlnQ0FrQ0EsZzBCREtJLElBQUksNEZBQ0osd0JBQXdCLDhOQUN4QixvQkFBb0Isb05BQ3BCLGtCQUFrQiw0SEFDbEIscUJBQXFCOzJGQU9aLHVCQUF1QjtrQkFqQm5DLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osbUJBQW1CLEVBQUUsTUFBTTtxQkFDNUI7OEJBaUJELE9BQU87c0JBRE4sS0FBSztnQkFPTixTQUFTO3NCQURSLEtBQUs7Z0JBU04sU0FBUztzQkFEUixLQUFLO3VCQUFDLFlBQVk7Z0JBSW5CLFFBQVE7c0JBRFAsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBSWxDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyw2QkFBNkI7Z0JBSTNDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNhcHBoaXJlQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vLi4vYnV0dG9uL3NyYy9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IFNhcHBoaXJlSWNvbk1vZHVsZSB9IGZyb20gJy4uLy4uL2ljb24vc3JjL2ljb24ubW9kdWxlJztcbmltcG9ydCB7IFNhcHBoaXJlUG9wb3Zlck1vZHVsZSB9IGZyb20gJy4uLy4uL3BvcG92ZXIvc3JjL3BvcG92ZXIubW9kdWxlJztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vcG9wb3Zlci9zcmMvcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTYXBwaGlyZVR5cG9ncmFwaHlNb2R1bGUgfSBmcm9tICcuLi8uLi90eXBvZ3JhcGh5L3NyYy90eXBvZ3JhcGh5Lm1vZHVsZSc7XG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vcGxhY2VtZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3AtY29udGV4dHVhbC1oZWxwLWhlYWRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHR1YWxIZWxwSGVhZGVyRGlyZWN0aXZlIHt9XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzcC1jb250ZXh0dWFsLWhlbHAtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHR1YWxIZWxwQ29udGVudERpcmVjdGl2ZSB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzcC1jb250ZXh0dWFsLWhlbHAtZm9vdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dHVhbEhlbHBGb290ZXJEaXJlY3RpdmUge31cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3AtY29udGV4dHVhbC1oZWxwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHR1YWwtaGVscC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRleHR1YWwtaGVscC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBTYXBwaGlyZVR5cG9ncmFwaHlNb2R1bGUsXG4gICAgU2FwcGhpcmVCdXR0b25Nb2R1bGUsXG4gICAgU2FwcGhpcmVJY29uTW9kdWxlLFxuICAgIFNhcHBoaXJlUG9wb3Zlck1vZHVsZSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHR1YWxIZWxwQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqXG4gICAqIFRoZSB0eXBlIG9mIGNvbnRleHR1YWwgaGVscCB3aGljaCBkZXRlcm1pbmVzIHRoZSBpY29uIHNob3duLlxuICAgKlxuICAgKiBVc2UgXCJpbmZvXCIgZm9yIGJyaWVmLCBjb250ZXh0dWFsIHN1cHBsZW1lbnRhbCBpbmZvcm1hdGlvbi4gVGhlIGNvbnRlbnRcbiAgICogaW5zaWRlIHNob3VsZCBoYXZlIGFuIGluc3RydWN0aXZlIHRvbmUuXG4gICAqXG4gICAqIFVzZSBcImhlbHBcIiB2YXJpYW50IHRvIHNpZ25hbCBtb3JlIGluLWRlcHRoIGd1aWRhbmNlIGFib3V0IGEgdGFzayBvciBVSSxcbiAgICogdGhpcyBtYXkgaW5jbHVkZSBsaW5rcyBvciBpbWFnZXMgb3Igb3RoZXIgaGVscGZ1bCBtZWRpYS4gVGhlIGNvbnRlbnRcbiAgICogaW5zaWRlIHNob3VsZCBoYXZlIGEgaGVscGZ1bCB0b25lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnaW5mbydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHZhcmlhbnQ6ICdpbmZvJyB8ICdoZWxwJyA9ICdpbmZvJztcblxuICAvKipcbiAgICogUGxhY2VtZW50IG9mIGNvbnRleHR1YWwgaGVscCBwb3BvdmVyIHJlbGF0aXZlIHRvIHRoZSBpY29uIHRoYXQgdHJpZ2dlcnMgaXQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICd0b3AnO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgZm9yIHRoZSB0cmlnZ2VyIG9mIHRoZSBjb250ZXh0dWFsIGhlbHAgZGlhbG9nLlxuICAgKiBUaGlzIHdpbGwgTk9UIGJlIHJlbmRlcmVkIG9uIHRoZSBzY3JlZW4sIGJ1dCBpdCBpcyByZXF1aXJlZFxuICAgKiBmb3IgYWNjZXNzaWJpbGl0eSByZWFzb25zLlxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJylcbiAgYXJpYUxhYmVsITogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUpXG4gIF90cmlnZ2VyPzogUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmU7XG5cbiAgQENvbnRlbnRDaGlsZChDb250ZXh0dWFsSGVscEZvb3RlckRpcmVjdGl2ZSlcbiAgX2Zvb3Rlcj86IENvbnRleHR1YWxIZWxwRm9vdGVyRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoQ29udGV4dHVhbEhlbHBIZWFkZXJEaXJlY3RpdmUpXG4gIF9oZWFkZXI/OiBDb250ZXh0dWFsSGVscEhlYWRlckRpcmVjdGl2ZTtcblxuICBpc09wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI/LmlzT3BlbigpO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyPy50b2dnbGUoKTtcbiAgfVxuICBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl90cmlnZ2VyPy5vcGVuKCk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI/LmNsb3NlKCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgc3AtaWNvbi1idXR0b25cbiAgc2l6ZT1cImV4dHJhU21hbGxcIlxuICB2YXJpYW50PVwidGVydGlhcnlcIlxuICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxuICBbc3BQb3BvdmVyVHJpZ2dlckZvcl09XCJwb3BvdmVyXCJcbiAgW3NwUG9wb3ZlclBsYWNlbWVudF09XCJwbGFjZW1lbnRcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4+XG4gIDxzcC1pY29uXG4gICAgKm5nSWY9XCJ2YXJpYW50ID09PSAnaGVscCc7IGVsc2UgZGVmYXVsdEljb25cIlxuICAgIG5hbWU9XCJxdWVzdGlvbk1hcmtDaXJjbGVcIlxuICAgIHNpemU9XCIxNnB4XCJcbiAgPjwvc3AtaWNvbj5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SWNvbj5cbiAgICA8c3AtaWNvbiBuYW1lPVwiaW5mb1wiPjwvc3AtaWNvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvYnV0dG9uPlxuXG48bmctdGVtcGxhdGUgI3BvcG92ZXI+XG4gIDxzcC1wb3BvdmVyIG5vUGFkZGluZz5cbiAgICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtY29udGV4dHVhbC1oZWxwXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiX2hlYWRlclwiIGNsYXNzPVwic2FwcGhpcmUtY29udGV4dHVhbC1oZWxwX19oZWFkZXJcIj5cbiAgICAgICAgPGg2IHNwLWhlYWRpbmcgc3BQb3BvdmVyVGl0bGU+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3AtY29udGV4dHVhbC1oZWxwLWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9oNj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3AtY29udGV4dHVhbC1oZWxwLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwiX2Zvb3RlclwiIGNsYXNzPVwic2FwcGhpcmUtY29udGV4dHVhbC1oZWxwX19mb290ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3AtY29udGV4dHVhbC1oZWxwLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NwLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuIl19