@ifsworld/granite-components 15.0.1 → 15.0.2

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 (164) hide show
  1. package/date-picker/lib/date-picker-base.d.ts +3 -3
  2. package/date-picker/lib/date-picker.module.d.ts +2 -2
  3. package/esm2022/carousel/ifsworld-granite-components-carousel.mjs +5 -0
  4. package/esm2022/carousel/index.mjs +3 -0
  5. package/esm2022/carousel/lib/carousel.component.mjs +156 -0
  6. package/esm2022/carousel/lib/carousel.module.mjs +31 -0
  7. package/esm2022/date-picker/ifsworld-granite-components-date-picker.mjs +5 -0
  8. package/esm2022/date-picker/index.mjs +5 -0
  9. package/esm2022/date-picker/lib/date-picker-base.mjs +53 -0
  10. package/esm2022/date-picker/lib/date-picker-trigger-for.directive.mjs +228 -0
  11. package/esm2022/date-picker/lib/date-picker.component.mjs +30 -0
  12. package/esm2022/date-picker/lib/date-picker.module.mjs +58 -0
  13. package/esm2022/date-picker/lib/date-range-picker.component.mjs +46 -0
  14. package/esm2022/file-upload/ifsworld-granite-components-file-upload.mjs +5 -0
  15. package/esm2022/file-upload/index.mjs +3 -0
  16. package/esm2022/file-upload/lib/directives/file-drag-and-drop.directive.mjs +102 -0
  17. package/esm2022/file-upload/lib/file-upload.component.mjs +182 -0
  18. package/esm2022/file-upload/lib/file-upload.constants.mjs +45 -0
  19. package/esm2022/file-upload/lib/file-upload.module.mjs +32 -0
  20. package/esm2022/file-upload/lib/file-upload.utils.mjs +13 -0
  21. package/esm2022/ifsworld-granite-components.mjs +5 -0
  22. package/esm2022/index.mjs +90 -0
  23. package/esm2022/lib/arrange-grid/arrange-grid-item.component.mjs +44 -0
  24. package/esm2022/lib/arrange-grid/arrange-grid.component.mjs +125 -0
  25. package/esm2022/lib/arrange-grid/arrange-grid.module.mjs +19 -0
  26. package/esm2022/lib/avatar/avatar-default-status/avatar-default-status.component.mjs +36 -0
  27. package/esm2022/lib/avatar/avatar.component.mjs +68 -0
  28. package/esm2022/lib/avatar/avatar.component.public-types.mjs +7 -0
  29. package/esm2022/lib/avatar/avatar.module.mjs +37 -0
  30. package/esm2022/lib/avatar/custom-avatar-status.directive.mjs +18 -0
  31. package/esm2022/lib/avatar/empty-avatar/empty-avatar.component.mjs +37 -0
  32. package/esm2022/lib/badge/badge.component.mjs +39 -0
  33. package/esm2022/lib/badge/badge.module.mjs +18 -0
  34. package/esm2022/lib/badge/testing/badge.harness.mjs +25 -0
  35. package/esm2022/lib/button/button.component.mjs +87 -0
  36. package/esm2022/lib/button/button.module.mjs +16 -0
  37. package/esm2022/lib/card-list/card/card-avatar.component.mjs +11 -0
  38. package/esm2022/lib/card-list/card/card-content/card-actions.component.mjs +11 -0
  39. package/esm2022/lib/card-list/card/card-content/card-body.component.mjs +11 -0
  40. package/esm2022/lib/card-list/card/card-content/card-content.component.mjs +11 -0
  41. package/esm2022/lib/card-list/card/card-content/card-footer.component.mjs +11 -0
  42. package/esm2022/lib/card-list/card/card-content/card-header-subtitle.component.mjs +11 -0
  43. package/esm2022/lib/card-list/card/card-content/card-header-title.component.mjs +11 -0
  44. package/esm2022/lib/card-list/card/card-content/card-header.component.mjs +11 -0
  45. package/esm2022/lib/card-list/card/card.component.mjs +11 -0
  46. package/esm2022/lib/card-list/card-list.component.mjs +24 -0
  47. package/esm2022/lib/card-list/card-list.module.mjs +68 -0
  48. package/esm2022/lib/checkbox/checkbox-group.component.mjs +17 -0
  49. package/esm2022/lib/checkbox/checkbox.component.mjs +99 -0
  50. package/esm2022/lib/checkbox/checkbox.module.mjs +17 -0
  51. package/esm2022/lib/chips/chip-input.mjs +195 -0
  52. package/esm2022/lib/chips/chip-list.component.mjs +567 -0
  53. package/esm2022/lib/chips/chip.component.mjs +288 -0
  54. package/esm2022/lib/chips/chips.module.mjs +31 -0
  55. package/esm2022/lib/collapsible-group/collapsible-group-body.directive.mjs +17 -0
  56. package/esm2022/lib/collapsible-group/collapsible-group-header.directive.mjs +17 -0
  57. package/esm2022/lib/collapsible-group/collapsible-group.component.mjs +46 -0
  58. package/esm2022/lib/collapsible-group/collapsible-group.module.mjs +33 -0
  59. package/esm2022/lib/contacts/contact-item/contact-item.component.mjs +27 -0
  60. package/esm2022/lib/contacts/contact-item-default-status/contact-item-default-status.component.mjs +20 -0
  61. package/esm2022/lib/contacts/contact-item-title/contact-item-title.component.mjs +15 -0
  62. package/esm2022/lib/contacts/contacts-profile/contacts-profile.component.mjs +18 -0
  63. package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-data.mjs +24 -0
  64. package/esm2022/lib/contacts/contacts-trigger/contacts-trigger-for.directive.mjs +231 -0
  65. package/esm2022/lib/contacts/contacts-types/contacts.component.private-types.mjs +2 -0
  66. package/esm2022/lib/contacts/contacts-types/contacts.component.public-types.mjs +9 -0
  67. package/esm2022/lib/contacts/contacts.component.mjs +92 -0
  68. package/esm2022/lib/contacts/contacts.module.mjs +53 -0
  69. package/esm2022/lib/contacts/custom-profile.directive.mjs +16 -0
  70. package/esm2022/lib/contacts/custom-status.directive.mjs +18 -0
  71. package/esm2022/lib/core/animation.mjs +34 -0
  72. package/esm2022/lib/core/client-environment.mjs +20 -0
  73. package/esm2022/lib/core/common-behaviors/disabled.mjs +27 -0
  74. package/esm2022/lib/core/core.module.mjs +44 -0
  75. package/esm2022/lib/core/devices/client-input-desktop.directive.mjs +29 -0
  76. package/esm2022/lib/core/devices/client-input-touch.directive.mjs +29 -0
  77. package/esm2022/lib/core/devices/client-output-desktop.directive.mjs +29 -0
  78. package/esm2022/lib/core/devices/client-output-touch.directive.mjs +29 -0
  79. package/esm2022/lib/core/hide-on-overflow.directive.mjs +83 -0
  80. package/esm2022/lib/core/overlay-base.mjs +18 -0
  81. package/esm2022/lib/core/overlay-position-config.mjs +2 -0
  82. package/esm2022/lib/core/overlay-trigger-for-base.directive.mjs +121 -0
  83. package/esm2022/lib/core/overlay.service.mjs +90 -0
  84. package/esm2022/lib/core/pipes/pure-pipes.module.mjs +16 -0
  85. package/esm2022/lib/core/pipes/title.pipe.mjs +21 -0
  86. package/esm2022/lib/core/radio-checkbox-base.mjs +19 -0
  87. package/esm2022/lib/core/services/names-utils-service.mjs +51 -0
  88. package/esm2022/lib/core/theme.library.mjs +59 -0
  89. package/esm2022/lib/core/types.mjs +2 -0
  90. package/esm2022/lib/grid/grid.component.mjs +128 -0
  91. package/esm2022/lib/grid/grid.module.mjs +18 -0
  92. package/esm2022/lib/icon/icon.component.mjs +43 -0
  93. package/esm2022/lib/icon/icon.module.mjs +16 -0
  94. package/esm2022/lib/input-field/input-field.component.mjs +167 -0
  95. package/esm2022/lib/input-field/input-field.module.mjs +20 -0
  96. package/esm2022/lib/label/label.component.mjs +31 -0
  97. package/esm2022/lib/label/label.module.mjs +18 -0
  98. package/esm2022/lib/menu/divider.directive.mjs +23 -0
  99. package/esm2022/lib/menu/menu-base.mjs +364 -0
  100. package/esm2022/lib/menu/menu-desktop-animations.mjs +23 -0
  101. package/esm2022/lib/menu/menu-errors.mjs +37 -0
  102. package/esm2022/lib/menu/menu-item.component.mjs +89 -0
  103. package/esm2022/lib/menu/menu-panel.mjs +7 -0
  104. package/esm2022/lib/menu/menu-positions.mjs +9 -0
  105. package/esm2022/lib/menu/menu-touch-animations.mjs +137 -0
  106. package/esm2022/lib/menu/menu-touch-close.component.mjs +13 -0
  107. package/esm2022/lib/menu/menu-touch-title.component.mjs +59 -0
  108. package/esm2022/lib/menu/menu-trigger-for.directive.mjs +738 -0
  109. package/esm2022/lib/menu/menu.component.mjs +30 -0
  110. package/esm2022/lib/menu/menu.module.mjs +55 -0
  111. package/esm2022/lib/menu/testing/menu.harness.mjs +109 -0
  112. package/esm2022/lib/menu/title.directive.mjs +17 -0
  113. package/esm2022/lib/progress-bar/progress-bar-legend/progress-bar-legend.component.mjs +19 -0
  114. package/esm2022/lib/progress-bar/progress-bar-legend-base.mjs +17 -0
  115. package/esm2022/lib/progress-bar/progress-bar-legend-trigger-for.directive.mjs +54 -0
  116. package/esm2022/lib/progress-bar/progress-bar.component.mjs +92 -0
  117. package/esm2022/lib/progress-bar/progress-bar.model.mjs +2 -0
  118. package/esm2022/lib/progress-bar/progress-bar.module.mjs +44 -0
  119. package/esm2022/lib/radio-button/radio-button.component.mjs +119 -0
  120. package/esm2022/lib/radio-button/radio-button.module.mjs +17 -0
  121. package/esm2022/lib/radio-button/radio-group.component.mjs +17 -0
  122. package/esm2022/lib/toggle-switch/toggle-switch.component.mjs +100 -0
  123. package/esm2022/lib/toggle-switch/toggle-switch.module.mjs +16 -0
  124. package/esm2022/table/ifsworld-granite-components-table.mjs +5 -0
  125. package/esm2022/table/index.mjs +5 -0
  126. package/esm2022/table/lib/cell/cell-align/cell-align-classes.directive.mjs +26 -0
  127. package/esm2022/table/lib/cell/cell.mjs +15 -0
  128. package/esm2022/table/lib/cell/table-data-cell.component.mjs +25 -0
  129. package/esm2022/table/lib/cell/table-header-cell.component.mjs +14 -0
  130. package/esm2022/table/lib/column/table-column.directive.mjs +33 -0
  131. package/esm2022/table/lib/column-size/column-size.directive.mjs +34 -0
  132. package/esm2022/table/lib/table-constants.library.mjs +7 -0
  133. package/esm2022/table/lib/table.component.mjs +62 -0
  134. package/esm2022/table/lib/table.model.mjs +2 -0
  135. package/esm2022/table/lib/table.module.mjs +38 -0
  136. package/esm2022/tooltip/ifsworld-granite-components-tooltip.mjs +5 -0
  137. package/esm2022/tooltip/index.mjs +4 -0
  138. package/esm2022/tooltip/lib/Services/granite-tooltip.service.mjs +28 -0
  139. package/esm2022/tooltip/lib/tooltip-constants.library.mjs +4 -0
  140. package/esm2022/tooltip/lib/tooltip-trigger-for.directive.mjs +147 -0
  141. package/esm2022/tooltip/lib/tooltip.component.mjs +14 -0
  142. package/esm2022/tooltip/lib/tooltip.module.mjs +19 -0
  143. package/fesm2022/ifsworld-granite-components-carousel.mjs +9 -9
  144. package/fesm2022/ifsworld-granite-components-carousel.mjs.map +1 -1
  145. package/fesm2022/ifsworld-granite-components-date-picker.mjs +30 -34
  146. package/fesm2022/ifsworld-granite-components-date-picker.mjs.map +1 -1
  147. package/fesm2022/ifsworld-granite-components-file-upload.mjs +12 -13
  148. package/fesm2022/ifsworld-granite-components-file-upload.mjs.map +1 -1
  149. package/fesm2022/ifsworld-granite-components-table.mjs +29 -32
  150. package/fesm2022/ifsworld-granite-components-table.mjs.map +1 -1
  151. package/fesm2022/ifsworld-granite-components-tooltip.mjs +15 -16
  152. package/fesm2022/ifsworld-granite-components-tooltip.mjs.map +1 -1
  153. package/fesm2022/ifsworld-granite-components.mjs +321 -340
  154. package/fesm2022/ifsworld-granite-components.mjs.map +1 -1
  155. package/lib/contacts/contacts-trigger/contacts-trigger-data.d.ts +1 -1
  156. package/lib/core/overlay-base.d.ts +1 -1
  157. package/lib/core/radio-checkbox-base.d.ts +1 -1
  158. package/lib/menu/menu-base.d.ts +1 -1
  159. package/lib/progress-bar/progress-bar-legend-base.d.ts +1 -1
  160. package/package.json +21 -9
  161. package/src/lib/core/style/_mixins.scss +9 -10
  162. package/src/lib/core/style/_range-functions.scss +4 -6
  163. package/src/lib/core/style/_z-index.scss +4 -6
  164. package/table/lib/cell/cell.d.ts +1 -1
@@ -0,0 +1,16 @@
1
+ import { Directive, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GraniteCustomProfileDirective {
4
+ constructor(templateRef) {
5
+ this.templateRef = templateRef;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCustomProfileDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteCustomProfileDirective, selector: "[graniteCustomProfile]", ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCustomProfileDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[graniteCustomProfile]',
14
+ }]
15
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXByb2ZpbGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb250YWN0cy9jdXN0b20tcHJvZmlsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3ZELE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBbUIsV0FBaUM7UUFBakMsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO0lBQUcsQ0FBQzsrR0FEN0MsNkJBQTZCO21HQUE3Qiw2QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBSHpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tncmFuaXRlQ3VzdG9tUHJvZmlsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ3VzdG9tUHJvZmlsZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHt9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { Directive, Input, TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GraniteCustomStatusDirective {
4
+ constructor(templateRef) {
5
+ this.templateRef = templateRef;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCustomStatusDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteCustomStatusDirective, selector: "[graniteCustomStatus]", inputs: { graniteCustomStatus: "graniteCustomStatus" }, ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCustomStatusDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[graniteCustomStatus]',
14
+ }]
15
+ }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { graniteCustomStatus: [{
16
+ type: Input
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXN0YXR1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvbnRhY3RzL2N1c3RvbS1zdGF0dXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLOUQsTUFBTSxPQUFPLDRCQUE0QjtJQUl2QyxZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBRyxDQUFDOytHQUo3Qyw0QkFBNEI7bUdBQTVCLDRCQUE0Qjs7NEZBQTVCLDRCQUE0QjtrQkFIeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2lCQUNsQztnRkFHQyxtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZ3Jhbml0ZUN1c3RvbVN0YXR1c10nLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlQ3VzdG9tU3RhdHVzRGlyZWN0aXZlIHtcbiAgQElucHV0KClcbiAgZ3Jhbml0ZUN1c3RvbVN0YXR1czogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHt9XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Returns an ease-out CSS animation string with a slightly steeper curve
3
+ * than usual.
4
+ *
5
+ * @param duration Duration in milliseconds
6
+ * @param delay Delay in milliseconds
7
+ */
8
+ export function getEaseOutSteep(duration, delay) {
9
+ return (`${duration}ms ` +
10
+ (delay !== undefined ? ` ${delay}ms ` : '') +
11
+ 'cubic-bezier(0, 0, 0.2, 1)');
12
+ }
13
+ /**
14
+ * Returns an ease-out-back CSS animation string with a slightly steeper
15
+ * curve than usual.
16
+ *
17
+ * @param duration Duration in milliseconds
18
+ * @param delay Delay in milliseconds
19
+ */
20
+ export function getEaseOutSteepBack(duration, delay) {
21
+ return (`${duration}ms ` +
22
+ (delay !== undefined ? ` ${delay}ms ` : '') +
23
+ 'cubic-bezier(.37,1.3,.77,1)');
24
+ }
25
+ /**
26
+ * Returns a linear CSS animation string
27
+ *
28
+ * @param duration Duration in milliseconds
29
+ * @param delay Delay in milliseconds
30
+ */
31
+ export function getEaseLinear(duration, delay) {
32
+ return (`${duration}ms ` + (delay !== undefined ? ` ${delay}ms ` : '') + 'linear');
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL2FuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWdCLEVBQUUsS0FBYztJQUM5RCxPQUFPLENBQ0wsR0FBRyxRQUFRLEtBQUs7UUFDaEIsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0MsNEJBQTRCLENBQzdCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFFBQWdCLEVBQUUsS0FBYztJQUNsRSxPQUFPLENBQ0wsR0FBRyxRQUFRLEtBQUs7UUFDaEIsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0MsNkJBQTZCLENBQzlCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWdCLEVBQUUsS0FBYztJQUM1RCxPQUFPLENBQ0wsR0FBRyxRQUFRLEtBQUssR0FBRyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FDMUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybnMgYW4gZWFzZS1vdXQgQ1NTIGFuaW1hdGlvbiBzdHJpbmcgd2l0aCBhIHNsaWdodGx5IHN0ZWVwZXIgY3VydmVcbiAqIHRoYW4gdXN1YWwuXG4gKlxuICogQHBhcmFtIGR1cmF0aW9uIER1cmF0aW9uIGluIG1pbGxpc2Vjb25kc1xuICogQHBhcmFtIGRlbGF5IERlbGF5IGluIG1pbGxpc2Vjb25kc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWFzZU91dFN0ZWVwKGR1cmF0aW9uOiBudW1iZXIsIGRlbGF5PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIChcbiAgICBgJHtkdXJhdGlvbn1tcyBgICtcbiAgICAoZGVsYXkgIT09IHVuZGVmaW5lZCA/IGAgJHtkZWxheX1tcyBgIDogJycpICtcbiAgICAnY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBlYXNlLW91dC1iYWNrIENTUyBhbmltYXRpb24gc3RyaW5nIHdpdGggYSBzbGlnaHRseSBzdGVlcGVyXG4gKiBjdXJ2ZSB0aGFuIHVzdWFsLlxuICpcbiAqIEBwYXJhbSBkdXJhdGlvbiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSBkZWxheSBEZWxheSBpbiBtaWxsaXNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVhc2VPdXRTdGVlcEJhY2soZHVyYXRpb246IG51bWJlciwgZGVsYXk/OiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIGAke2R1cmF0aW9ufW1zIGAgK1xuICAgIChkZWxheSAhPT0gdW5kZWZpbmVkID8gYCAke2RlbGF5fW1zIGAgOiAnJykgK1xuICAgICdjdWJpYy1iZXppZXIoLjM3LDEuMywuNzcsMSknXG4gICk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGxpbmVhciBDU1MgYW5pbWF0aW9uIHN0cmluZ1xuICpcbiAqIEBwYXJhbSBkdXJhdGlvbiBEdXJhdGlvbiBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSBkZWxheSBEZWxheSBpbiBtaWxsaXNlY29uZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVhc2VMaW5lYXIoZHVyYXRpb246IG51bWJlciwgZGVsYXk/OiBudW1iZXIpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIGAke2R1cmF0aW9ufW1zIGAgKyAoZGVsYXkgIT09IHVuZGVmaW5lZCA/IGAgJHtkZWxheX1tcyBgIDogJycpICsgJ2xpbmVhcidcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Injection token used to provide components knowledge of what device types
4
+ * are being used for input.
5
+ */
6
+ export const GRANITE_CLIENT_INPUT = new InjectionToken('GRANITE_CLIENT_INPUT');
7
+ /**
8
+ * Injection token used to provide components knowledge of what device type
9
+ * is being used for output.
10
+ */
11
+ export const GRANITE_CLIENT_OUTPUT = new InjectionToken('GRANITE_CLIENT_OUTPUT');
12
+ export const deviceDesktop = {
13
+ input: { devices: ['mouse', 'keyboard'] },
14
+ output: { device: 'desktop' },
15
+ };
16
+ export const deviceTouch = {
17
+ input: { devices: ['touch', 'onscreen-keyboard'] },
18
+ output: { device: 'touch' },
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWVudmlyb25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL2NsaWVudC1lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUNwRCxzQkFBc0IsQ0FDdkIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUNyRCx1QkFBdUIsQ0FDeEIsQ0FBQztBQTJCRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTBCO0lBQ2xELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsRUFBRTtJQUN6QyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO0NBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQTBCO0lBQ2hELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxFQUFFO0lBQ2xELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHVzZWQgdG8gcHJvdmlkZSBjb21wb25lbnRzIGtub3dsZWRnZSBvZiB3aGF0IGRldmljZSB0eXBlc1xuICogYXJlIGJlaW5nIHVzZWQgZm9yIGlucHV0LlxuICovXG5leHBvcnQgY29uc3QgR1JBTklURV9DTElFTlRfSU5QVVQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q2xpZW50SW5wdXRJbnRlcmZhY2U+KFxuICAnR1JBTklURV9DTElFTlRfSU5QVVQnXG4pO1xuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiB1c2VkIHRvIHByb3ZpZGUgY29tcG9uZW50cyBrbm93bGVkZ2Ugb2Ygd2hhdCBkZXZpY2UgdHlwZVxuICogaXMgYmVpbmcgdXNlZCBmb3Igb3V0cHV0LlxuICovXG5leHBvcnQgY29uc3QgR1JBTklURV9DTElFTlRfT1VUUFVUID0gbmV3IEluamVjdGlvblRva2VuPENsaWVudE91dHB1dEludGVyZmFjZT4oXG4gICdHUkFOSVRFX0NMSUVOVF9PVVRQVVQnXG4pO1xuXG5leHBvcnQgdHlwZSBJbnB1dERldmljZVR5cGVzID1cbiAgfCB2b2lkXG4gIHwgJ3RvdWNoJ1xuICB8ICdtb3VzZSdcbiAgfCAna2V5Ym9hcmQnXG4gIHwgJ29uc2NyZWVuLWtleWJvYXJkJztcblxuZXhwb3J0IHR5cGUgT3V0cHV0RGV2aWNlVHlwZXMgPVxuICB8IHZvaWRcbiAgfCAndG91Y2gnIC8vIFRPRE86IENoYW5nZSB0byAndG91Y2gtc2NyZWVuJyBmb3IgdG91Y2hcbiAgfCAnZGVza3RvcCc7IC8vIFRPRE86IENoYW5nZSB0byAnc2NyZWVuJyBmb3IgZGVza3RvcFxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudElucHV0SW50ZXJmYWNlIHtcbiAgZGV2aWNlczogSW5wdXREZXZpY2VUeXBlc1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsaWVudE91dHB1dEludGVyZmFjZSB7XG4gIGRldmljZTogT3V0cHV0RGV2aWNlVHlwZXM7XG59XG5cbmludGVyZmFjZSBEZXZpY2VQcmVmYWJJbnRlcmZhY2Uge1xuICBpbnB1dDogQ2xpZW50SW5wdXRJbnRlcmZhY2U7XG4gIG91dHB1dDogQ2xpZW50T3V0cHV0SW50ZXJmYWNlO1xufVxuXG5leHBvcnQgY29uc3QgZGV2aWNlRGVza3RvcDogRGV2aWNlUHJlZmFiSW50ZXJmYWNlID0ge1xuICBpbnB1dDogeyBkZXZpY2VzOiBbJ21vdXNlJywgJ2tleWJvYXJkJ10gfSxcbiAgb3V0cHV0OiB7IGRldmljZTogJ2Rlc2t0b3AnIH0sXG59O1xuXG5leHBvcnQgY29uc3QgZGV2aWNlVG91Y2g6IERldmljZVByZWZhYkludGVyZmFjZSA9IHtcbiAgaW5wdXQ6IHsgZGV2aWNlczogWyd0b3VjaCcsICdvbnNjcmVlbi1rZXlib2FyZCddIH0sXG4gIG91dHB1dDogeyBkZXZpY2U6ICd0b3VjaCcgfSxcbn07XG4iXX0=
@@ -0,0 +1,27 @@
1
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { Input, Directive } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export const disabledMixin = (Base = class {
6
+ }) => {
7
+ class Derived extends Base {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.disabled = false;
11
+ }
12
+ ngOnChanges(changes) {
13
+ if (changes.disabled) {
14
+ this.disabled = coerceBooleanProperty(changes.disabled.currentValue);
15
+ }
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Derived, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: Derived, inputs: { disabled: "disabled" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
19
+ }
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: Derived, decorators: [{
21
+ type: Directive
22
+ }], propDecorators: { disabled: [{
23
+ type: Input
24
+ }] } });
25
+ return Derived;
26
+ };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvY29tbW9uLWJlaGF2aW9ycy9kaXNhYmxlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzRUFBc0U7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssRUFBNEIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDM0IsT0FBVTtDQUFlLEVBQ3pCLEVBQUU7SUFDRixNQUVNLE9BQVEsU0FBUSxJQUFJO1FBRjFCOztZQUlFLGFBQVEsR0FBWSxLQUFLLENBQUM7U0FPM0I7UUFMQyxXQUFXLENBQUMsT0FBc0I7WUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN2RSxDQUFDO1FBQ0gsQ0FBQzttSEFSRyxPQUFPO3VHQUFQLE9BQU87O2dHQUFQLE9BQU87c0JBRlosU0FBUztrQ0FJUixRQUFROzBCQURQLEtBQUs7O0lBVVIsT0FBTyxPQUFPLENBQUM7Q0FDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9leHBsaWNpdC1tb2R1bGUtYm91bmRhcnktdHlwZXMgKi9cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxudHlwZSBDb25zdHJ1Y3RvcjxUPiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG5cbmV4cG9ydCBjb25zdCBkaXNhYmxlZE1peGluID0gPFQgZXh0ZW5kcyBDb25zdHJ1Y3RvcjxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4+KFxuICBCYXNlOiBUID0gY2xhc3Mge30gYXMgYW55XG4pID0+IHtcbiAgQERpcmVjdGl2ZSgpXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuICBjbGFzcyBEZXJpdmVkIGV4dGVuZHMgQmFzZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgaWYgKGNoYW5nZXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShjaGFuZ2VzLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIERlcml2ZWQ7XG59O1xuIl19
@@ -0,0 +1,44 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ClientOutputDesktopDirective } from './devices/client-output-desktop.directive';
3
+ import { ClientOutputTouchDirective } from './devices/client-output-touch.directive';
4
+ import { ClientInputDesktopDirective } from './devices/client-input-desktop.directive';
5
+ import { ClientInputTouchDirective } from './devices/client-input-touch.directive';
6
+ import { GraniteHideOnOverflowDirective } from './hide-on-overflow.directive';
7
+ import { GraniteOverlayTriggerForBaseDirective } from './overlay-trigger-for-base.directive';
8
+ import * as i0 from "@angular/core";
9
+ // TODO: Move client devices into a separate module
10
+ export class GraniteCoreModule {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: GraniteCoreModule, declarations: [ClientOutputDesktopDirective,
13
+ ClientOutputTouchDirective,
14
+ ClientInputDesktopDirective,
15
+ ClientInputTouchDirective,
16
+ GraniteHideOnOverflowDirective,
17
+ GraniteOverlayTriggerForBaseDirective], exports: [ClientOutputDesktopDirective,
18
+ ClientOutputTouchDirective,
19
+ ClientInputDesktopDirective,
20
+ ClientInputTouchDirective,
21
+ GraniteHideOnOverflowDirective] }); }
22
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCoreModule }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteCoreModule, decorators: [{
25
+ type: NgModule,
26
+ args: [{
27
+ declarations: [
28
+ ClientOutputDesktopDirective,
29
+ ClientOutputTouchDirective,
30
+ ClientInputDesktopDirective,
31
+ ClientInputTouchDirective,
32
+ GraniteHideOnOverflowDirective,
33
+ GraniteOverlayTriggerForBaseDirective,
34
+ ],
35
+ exports: [
36
+ ClientOutputDesktopDirective,
37
+ ClientOutputTouchDirective,
38
+ ClientInputDesktopDirective,
39
+ ClientInputTouchDirective,
40
+ GraniteHideOnOverflowDirective,
41
+ ],
42
+ }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFFN0YsbURBQW1EO0FBbUJuRCxNQUFNLE9BQU8saUJBQWlCOytHQUFqQixpQkFBaUI7Z0hBQWpCLGlCQUFpQixpQkFmMUIsNEJBQTRCO1lBQzVCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IseUJBQXlCO1lBQ3pCLDhCQUE4QjtZQUM5QixxQ0FBcUMsYUFHckMsNEJBQTRCO1lBQzVCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IseUJBQXlCO1lBQ3pCLDhCQUE4QjtnSEFHckIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQWpCN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNEJBQTRCO3dCQUM1QiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IseUJBQXlCO3dCQUN6Qiw4QkFBOEI7d0JBQzlCLHFDQUFxQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsMEJBQTBCO3dCQUMxQiwyQkFBMkI7d0JBQzNCLHlCQUF5Qjt3QkFDekIsOEJBQThCO3FCQUMvQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGllbnRPdXRwdXREZXNrdG9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kZXZpY2VzL2NsaWVudC1vdXRwdXQtZGVza3RvcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2xpZW50T3V0cHV0VG91Y2hEaXJlY3RpdmUgfSBmcm9tICcuL2RldmljZXMvY2xpZW50LW91dHB1dC10b3VjaC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2xpZW50SW5wdXREZXNrdG9wRGlyZWN0aXZlIH0gZnJvbSAnLi9kZXZpY2VzL2NsaWVudC1pbnB1dC1kZXNrdG9wLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDbGllbnRJbnB1dFRvdWNoRGlyZWN0aXZlIH0gZnJvbSAnLi9kZXZpY2VzL2NsaWVudC1pbnB1dC10b3VjaC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgR3Jhbml0ZUhpZGVPbk92ZXJmbG93RGlyZWN0aXZlIH0gZnJvbSAnLi9oaWRlLW9uLW92ZXJmbG93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBHcmFuaXRlT3ZlcmxheVRyaWdnZXJGb3JCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5LXRyaWdnZXItZm9yLWJhc2UuZGlyZWN0aXZlJztcblxuLy8gVE9ETzogTW92ZSBjbGllbnQgZGV2aWNlcyBpbnRvIGEgc2VwYXJhdGUgbW9kdWxlXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIENsaWVudE91dHB1dERlc2t0b3BEaXJlY3RpdmUsXG4gICAgQ2xpZW50T3V0cHV0VG91Y2hEaXJlY3RpdmUsXG4gICAgQ2xpZW50SW5wdXREZXNrdG9wRGlyZWN0aXZlLFxuICAgIENsaWVudElucHV0VG91Y2hEaXJlY3RpdmUsXG4gICAgR3Jhbml0ZUhpZGVPbk92ZXJmbG93RGlyZWN0aXZlLFxuICAgIEdyYW5pdGVPdmVybGF5VHJpZ2dlckZvckJhc2VEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBDbGllbnRPdXRwdXREZXNrdG9wRGlyZWN0aXZlLFxuICAgIENsaWVudE91dHB1dFRvdWNoRGlyZWN0aXZlLFxuICAgIENsaWVudElucHV0RGVza3RvcERpcmVjdGl2ZSxcbiAgICBDbGllbnRJbnB1dFRvdWNoRGlyZWN0aXZlLFxuICAgIEdyYW5pdGVIaWRlT25PdmVyZmxvd0RpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZUNvcmVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Directive } from '@angular/core';
2
+ import { deviceDesktop, GRANITE_CLIENT_INPUT } from '../client-environment';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Directive used to tell components and their sub components that client input
6
+ * should be adapted for desktop devices, like personal computers.
7
+ */
8
+ export class ClientInputDesktopDirective {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientInputDesktopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ClientInputDesktopDirective, selector: "[graniteClientInputDesktop]", providers: [
11
+ {
12
+ provide: GRANITE_CLIENT_INPUT,
13
+ useValue: deviceDesktop.input,
14
+ },
15
+ ], ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientInputDesktopDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: `[graniteClientInputDesktop]`,
21
+ providers: [
22
+ {
23
+ provide: GRANITE_CLIENT_INPUT,
24
+ useValue: deviceDesktop.input,
25
+ },
26
+ ],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWlucHV0LWRlc2t0b3AuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL2RldmljZXMvY2xpZW50LWlucHV0LWRlc2t0b3AuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUU1RTs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sMkJBQTJCOytHQUEzQiwyQkFBMkI7bUdBQTNCLDJCQUEyQixzREFQM0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsb0JBQW9CO2dCQUM3QixRQUFRLEVBQUUsYUFBYSxDQUFDLEtBQUs7YUFDOUI7U0FDRjs7NEZBRVUsMkJBQTJCO2tCQVR2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsb0JBQW9COzRCQUM3QixRQUFRLEVBQUUsYUFBYSxDQUFDLEtBQUs7eUJBQzlCO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZXZpY2VEZXNrdG9wLCBHUkFOSVRFX0NMSUVOVF9JTlBVVCB9IGZyb20gJy4uL2NsaWVudC1lbnZpcm9ubWVudCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHVzZWQgdG8gdGVsbCBjb21wb25lbnRzIGFuZCB0aGVpciBzdWIgY29tcG9uZW50cyB0aGF0IGNsaWVudCBpbnB1dFxuICogc2hvdWxkIGJlIGFkYXB0ZWQgZm9yIGRlc2t0b3AgZGV2aWNlcywgbGlrZSBwZXJzb25hbCBjb21wdXRlcnMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFtncmFuaXRlQ2xpZW50SW5wdXREZXNrdG9wXWAsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdSQU5JVEVfQ0xJRU5UX0lOUFVULFxuICAgICAgdXNlVmFsdWU6IGRldmljZURlc2t0b3AuaW5wdXQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50SW5wdXREZXNrdG9wRGlyZWN0aXZlIHt9XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Directive } from '@angular/core';
2
+ import { deviceTouch, GRANITE_CLIENT_INPUT } from '../client-environment';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Directive used to tell components and their sub components that client input
6
+ * should be adapted for touch devices, like mobiles and tablets.
7
+ */
8
+ export class ClientInputTouchDirective {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientInputTouchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ClientInputTouchDirective, selector: "[graniteClientInputTouch]", providers: [
11
+ {
12
+ provide: GRANITE_CLIENT_INPUT,
13
+ useValue: deviceTouch.input,
14
+ },
15
+ ], ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientInputTouchDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: `[graniteClientInputTouch]`,
21
+ providers: [
22
+ {
23
+ provide: GRANITE_CLIENT_INPUT,
24
+ useValue: deviceTouch.input,
25
+ },
26
+ ],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWlucHV0LXRvdWNoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9kZXZpY2VzL2NsaWVudC1pbnB1dC10b3VjaC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTFFOzs7R0FHRztBQVVILE1BQU0sT0FBTyx5QkFBeUI7K0dBQXpCLHlCQUF5QjttR0FBekIseUJBQXlCLG9EQVB6QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFFBQVEsRUFBRSxXQUFXLENBQUMsS0FBSzthQUM1QjtTQUNGOzs0RkFFVSx5QkFBeUI7a0JBVHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFFBQVEsRUFBRSxXQUFXLENBQUMsS0FBSzt5QkFDNUI7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRldmljZVRvdWNoLCBHUkFOSVRFX0NMSUVOVF9JTlBVVCB9IGZyb20gJy4uL2NsaWVudC1lbnZpcm9ubWVudCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHVzZWQgdG8gdGVsbCBjb21wb25lbnRzIGFuZCB0aGVpciBzdWIgY29tcG9uZW50cyB0aGF0IGNsaWVudCBpbnB1dFxuICogc2hvdWxkIGJlIGFkYXB0ZWQgZm9yIHRvdWNoIGRldmljZXMsIGxpa2UgbW9iaWxlcyBhbmQgdGFibGV0cy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW2dyYW5pdGVDbGllbnRJbnB1dFRvdWNoXWAsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEdSQU5JVEVfQ0xJRU5UX0lOUFVULFxuICAgICAgdXNlVmFsdWU6IGRldmljZVRvdWNoLmlucHV0LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsaWVudElucHV0VG91Y2hEaXJlY3RpdmUge31cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Directive } from '@angular/core';
2
+ import { deviceDesktop, GRANITE_CLIENT_OUTPUT } from '../client-environment';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Directive used to tell components and their sub components that client output
6
+ * should be adapted for desktop devices like personal computers.
7
+ */
8
+ export class ClientOutputDesktopDirective {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientOutputDesktopDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ClientOutputDesktopDirective, selector: "[graniteClientOutputDesktop]", providers: [
11
+ {
12
+ provide: GRANITE_CLIENT_OUTPUT,
13
+ useValue: deviceDesktop.output,
14
+ },
15
+ ], ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientOutputDesktopDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: `[graniteClientOutputDesktop]`,
21
+ providers: [
22
+ {
23
+ provide: GRANITE_CLIENT_OUTPUT,
24
+ useValue: deviceDesktop.output,
25
+ },
26
+ ],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LW91dHB1dC1kZXNrdG9wLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9kZXZpY2VzL2NsaWVudC1vdXRwdXQtZGVza3RvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTdFOzs7R0FHRztBQVVILE1BQU0sT0FBTyw0QkFBNEI7K0dBQTVCLDRCQUE0QjttR0FBNUIsNEJBQTRCLHVEQVA1QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTTthQUMvQjtTQUNGOzs0RkFFVSw0QkFBNEI7a0JBVHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTTt5QkFDL0I7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRldmljZURlc2t0b3AsIEdSQU5JVEVfQ0xJRU5UX09VVFBVVCB9IGZyb20gJy4uL2NsaWVudC1lbnZpcm9ubWVudCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHVzZWQgdG8gdGVsbCBjb21wb25lbnRzIGFuZCB0aGVpciBzdWIgY29tcG9uZW50cyB0aGF0IGNsaWVudCBvdXRwdXRcbiAqIHNob3VsZCBiZSBhZGFwdGVkIGZvciBkZXNrdG9wIGRldmljZXMgbGlrZSBwZXJzb25hbCBjb21wdXRlcnMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogYFtncmFuaXRlQ2xpZW50T3V0cHV0RGVza3RvcF1gLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBHUkFOSVRFX0NMSUVOVF9PVVRQVVQsXG4gICAgICB1c2VWYWx1ZTogZGV2aWNlRGVza3RvcC5vdXRwdXQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xpZW50T3V0cHV0RGVza3RvcERpcmVjdGl2ZSB7fVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Directive } from '@angular/core';
2
+ import { GRANITE_CLIENT_OUTPUT, deviceTouch } from '../client-environment';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Directive used to tell components and their sub components that client output
6
+ * should be adapted for touch devices like mobiles and tablets.
7
+ */
8
+ export class ClientOutputTouchDirective {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientOutputTouchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ClientOutputTouchDirective, selector: "[graniteClientOutputTouch]", providers: [
11
+ {
12
+ provide: GRANITE_CLIENT_OUTPUT,
13
+ useValue: deviceTouch.output,
14
+ },
15
+ ], ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClientOutputTouchDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: `[graniteClientOutputTouch]`,
21
+ providers: [
22
+ {
23
+ provide: GRANITE_CLIENT_OUTPUT,
24
+ useValue: deviceTouch.output,
25
+ },
26
+ ],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LW91dHB1dC10b3VjaC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvZGV2aWNlcy9jbGllbnQtb3V0cHV0LXRvdWNoLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFM0U7OztHQUdHO0FBVUgsTUFBTSxPQUFPLDBCQUEwQjsrR0FBMUIsMEJBQTBCO21HQUExQiwwQkFBMEIscURBUDFCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFxQjtnQkFDOUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxNQUFNO2FBQzdCO1NBQ0Y7OzRGQUVVLDBCQUEwQjtrQkFUdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLFdBQVcsQ0FBQyxNQUFNO3lCQUM3QjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR1JBTklURV9DTElFTlRfT1VUUFVULCBkZXZpY2VUb3VjaCB9IGZyb20gJy4uL2NsaWVudC1lbnZpcm9ubWVudCc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHVzZWQgdG8gdGVsbCBjb21wb25lbnRzIGFuZCB0aGVpciBzdWIgY29tcG9uZW50cyB0aGF0IGNsaWVudCBvdXRwdXRcbiAqIHNob3VsZCBiZSBhZGFwdGVkIGZvciB0b3VjaCBkZXZpY2VzIGxpa2UgbW9iaWxlcyBhbmQgdGFibGV0cy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBgW2dyYW5pdGVDbGllbnRPdXRwdXRUb3VjaF1gLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBHUkFOSVRFX0NMSUVOVF9PVVRQVVQsXG4gICAgICB1c2VWYWx1ZTogZGV2aWNlVG91Y2gub3V0cHV0LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsaWVudE91dHB1dFRvdWNoRGlyZWN0aXZlIHt9XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import { Directive, ElementRef, Renderer2, } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
3
+ import { debounceTime } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class GraniteHideOnOverflowDirective {
6
+ constructor(_elementRef, renderer) {
7
+ this._elementRef = _elementRef;
8
+ this.renderer = renderer;
9
+ }
10
+ ngAfterViewInit() {
11
+ this.hideOnOverflow();
12
+ this.observeResize();
13
+ this.observeContentChange();
14
+ }
15
+ ngOnDestroy() {
16
+ this.unObserveResize();
17
+ this.unObserveContentChange();
18
+ }
19
+ hideOnOverflow() {
20
+ const element = this._elementRef?.nativeElement;
21
+ if (element) {
22
+ const contentWidth = element.scrollWidth;
23
+ const containerWidth = element.clientWidth;
24
+ if (contentWidth > containerWidth) {
25
+ this.renderer.setStyle(element, 'visibility', 'hidden');
26
+ }
27
+ else {
28
+ this.renderer.removeStyle(element, 'visibility');
29
+ }
30
+ }
31
+ }
32
+ observeResize() {
33
+ if (window.ResizeObserver) {
34
+ const element = this._elementRef?.nativeElement;
35
+ if (element) {
36
+ this.resizeObserver = new ResizeObserver(() => this.hideOnOverflow());
37
+ this.resizeObserver.observe(element);
38
+ }
39
+ }
40
+ else {
41
+ this.subscribeToResize();
42
+ }
43
+ }
44
+ unObserveResize() {
45
+ if (this.resizeObserver) {
46
+ this.resizeObserver.disconnect();
47
+ }
48
+ if (this.resizeSubscription) {
49
+ this.resizeSubscription.unsubscribe();
50
+ }
51
+ }
52
+ subscribeToResize() {
53
+ this.resizeSubscription = fromEvent(window, 'resize')
54
+ .pipe(debounceTime(1000))
55
+ .subscribe(() => this.hideOnOverflow());
56
+ }
57
+ observeContentChange() {
58
+ const element = this._elementRef?.nativeElement;
59
+ if (element) {
60
+ this.mutationObserver = new MutationObserver(() => this.hideOnOverflow());
61
+ this.mutationObserver.observe(element, {
62
+ childList: true,
63
+ subtree: true,
64
+ characterData: true,
65
+ });
66
+ }
67
+ }
68
+ unObserveContentChange() {
69
+ if (this.mutationObserver) {
70
+ this.mutationObserver.disconnect();
71
+ }
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteHideOnOverflowDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
74
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteHideOnOverflowDirective, selector: "[graniteHideOnOverflow]", exportAs: ["graniteHideOnOverflow"], ngImport: i0 }); }
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteHideOnOverflowDirective, decorators: [{
77
+ type: Directive,
78
+ args: [{
79
+ selector: '[graniteHideOnOverflow]',
80
+ exportAs: 'graniteHideOnOverflow',
81
+ }]
82
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlkZS1vbi1vdmVyZmxvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvaGlkZS1vbi1vdmVyZmxvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBRVYsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNOUMsTUFBTSxPQUFPLDhCQUE4QjtJQU96QyxZQUNVLFdBQXVCLEVBQ3ZCLFFBQW1CO1FBRG5CLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQVc7SUFDMUIsQ0FBQztJQUVKLGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUM7UUFFaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7WUFDekMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUUzQyxJQUFJLFlBQVksR0FBRyxjQUFjLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQztZQUVoRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUM7UUFFaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNyQyxTQUFTLEVBQUUsSUFBSTtnQkFDZixPQUFPLEVBQUUsSUFBSTtnQkFDYixhQUFhLEVBQUUsSUFBSTthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzsrR0FuRlUsOEJBQThCO21HQUE5Qiw4QkFBOEI7OzRGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tncmFuaXRlSGlkZU9uT3ZlcmZsb3ddJyxcbiAgZXhwb3J0QXM6ICdncmFuaXRlSGlkZU9uT3ZlcmZsb3cnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlSGlkZU9uT3ZlcmZsb3dEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuICByZXNpemVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZU9uT3ZlcmZsb3coKTtcbiAgICB0aGlzLm9ic2VydmVSZXNpemUoKTtcbiAgICB0aGlzLm9ic2VydmVDb250ZW50Q2hhbmdlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuT2JzZXJ2ZVJlc2l6ZSgpO1xuICAgIHRoaXMudW5PYnNlcnZlQ29udGVudENoYW5nZSgpO1xuICB9XG5cbiAgaGlkZU9uT3ZlcmZsb3coKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoZWxlbWVudCkge1xuICAgICAgY29uc3QgY29udGVudFdpZHRoID0gZWxlbWVudC5zY3JvbGxXaWR0aDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgaWYgKGNvbnRlbnRXaWR0aCA+IGNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwgJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGVsZW1lbnQsICd2aXNpYmlsaXR5Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb2JzZXJ2ZVJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAod2luZG93LlJlc2l6ZU9ic2VydmVyKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcblxuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLmhpZGVPbk92ZXJmbG93KCkpO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9SZXNpemUoKTtcbiAgICB9XG4gIH1cblxuICB1bk9ic2VydmVSZXNpemUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVzaXplT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXNpemVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucmVzaXplU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgc3Vic2NyaWJlVG9SZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNpemVTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oaWRlT25PdmVyZmxvdygpKTtcbiAgfVxuXG4gIG9ic2VydmVDb250ZW50Q2hhbmdlKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRoaXMuaGlkZU9uT3ZlcmZsb3coKSk7XG4gICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCB7XG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHVuT2JzZXJ2ZUNvbnRlbnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXV0YXRpb25PYnNlcnZlcikge1xuICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Directive, TemplateRef, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class OverlayBaseComponent {
4
+ constructor() {
5
+ this.xPosition = 'after';
6
+ this.yPosition = 'below';
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OverlayBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: OverlayBaseComponent, viewQueries: [{ propertyName: "templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0 }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OverlayBaseComponent, decorators: [{
12
+ type: Directive,
13
+ args: [{}]
14
+ }], propDecorators: { templateRef: [{
15
+ type: ViewChild,
16
+ args: [TemplateRef]
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9ncmFuaXRlLWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL292ZXJsYXktYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVWxFLE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFJRSxjQUFTLEdBQWMsT0FBTyxDQUFDO1FBRS9CLGNBQVMsR0FBYyxPQUFPLENBQUM7S0FPaEM7K0dBWlksb0JBQW9CO21HQUFwQixvQkFBb0IsdUVBQ3BCLFdBQVc7OzRGQURYLG9CQUFvQjtrQkFEaEMsU0FBUzttQkFBQyxFQUFFOzhCQUVhLFdBQVc7c0JBQWxDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ2xpZW50SW5wdXRJbnRlcmZhY2UsXG4gIENsaWVudE91dHB1dEludGVyZmFjZSxcbn0gZnJvbSAnLi9jbGllbnQtZW52aXJvbm1lbnQnO1xuXG5leHBvcnQgdHlwZSBQb3NpdGlvblggPSAnYmVmb3JlJyB8ICdhZnRlcic7XG5leHBvcnQgdHlwZSBQb3NpdGlvblkgPSAnYWJvdmUnIHwgJ2JlbG93JztcblxuQERpcmVjdGl2ZSh7fSlcbmV4cG9ydCBjbGFzcyBPdmVybGF5QmFzZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHhQb3NpdGlvbjogUG9zaXRpb25YID0gJ2FmdGVyJztcblxuICB5UG9zaXRpb246IFBvc2l0aW9uWSA9ICdiZWxvdyc7XG5cbiAgZGlyZWN0aW9uOiBEaXJlY3Rpb247XG5cbiAgY2xpZW50SW5wdXQ6IENsaWVudElucHV0SW50ZXJmYWNlO1xuXG4gIGNsaWVudE91dHB1dDogQ2xpZW50T3V0cHV0SW50ZXJmYWNlO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvb3ZlcmxheS1wb3NpdGlvbi1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheVBvc2l0aW9uQ29uZmlnIHtcbiAgb3JpZ2luWD86ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuICBvcmlnaW5GYWxsYmFja1g/OiAnc3RhcnQnIHwgJ2NlbnRlcicgfCAnZW5kJztcbiAgb3JpZ2luWT86ICd0b3AnIHwgJ2NlbnRlcicgfCAnYm90dG9tJztcbiAgb3JpZ2luRmFsbGJhY2tZPzogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nO1xuICBvdmVybGF5WD86ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuICBvdmVybGF5RmFsbGJhY2tYPzogJ3N0YXJ0JyB8ICdjZW50ZXInIHwgJ2VuZCc7XG4gIG92ZXJsYXlZPzogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nO1xuICBvdmVybGF5RmFsbGJhY2tZPzogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nO1xuICBvZmZzZXRYPzogbnVtYmVyO1xuICBvZmZzZXRZPzogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,121 @@
1
+ import { Overlay, OverlayConfig, } from '@angular/cdk/overlay';
2
+ import { Directive, ElementRef, inject, Optional, ViewContainerRef, } from '@angular/core';
3
+ import { GRANITE_CLIENT_INPUT, GRANITE_CLIENT_OUTPUT, } from './client-environment';
4
+ import { Directionality } from '@angular/cdk/bidi';
5
+ import { OverlayService } from './overlay.service';
6
+ import * as i0 from "@angular/core";
7
+ export class GraniteOverlayTriggerForBaseDirective {
8
+ constructor() {
9
+ /** Client output device information */
10
+ this._clientOutput = inject(GRANITE_CLIENT_OUTPUT);
11
+ /** Client input device information */
12
+ this._clientInput = inject(GRANITE_CLIENT_INPUT);
13
+ this._dir = inject(Directionality);
14
+ this.offsetX = 0;
15
+ this.offsetY = 0;
16
+ this._overlayRef = null;
17
+ this._overlay = inject(Overlay);
18
+ this._element = inject((ElementRef));
19
+ this._viewContainerRef = inject(ViewContainerRef);
20
+ this._overlayService = inject(OverlayService);
21
+ }
22
+ ngOnDestroy() {
23
+ if (this._overlayRef) {
24
+ this._overlayRef.dispose();
25
+ this._overlayRef = null;
26
+ }
27
+ }
28
+ getPositionConfig() {
29
+ const [originX, originFallbackX] = this.componentRef.xPosition === 'before'
30
+ ? ['end', 'start']
31
+ : ['start', 'end'];
32
+ const [overlayY, overlayFallbackY] = this.componentRef.yPosition === 'above'
33
+ ? ['bottom', 'top']
34
+ : ['top', 'bottom'];
35
+ let [originY, originFallbackY] = [overlayY, overlayFallbackY];
36
+ const [overlayX, overlayFallbackX] = [originX, originFallbackX];
37
+ originY = overlayY === 'top' ? 'bottom' : 'top';
38
+ originFallbackY = overlayFallbackY === 'top' ? 'bottom' : 'top';
39
+ return {
40
+ originX,
41
+ originFallbackX,
42
+ originY,
43
+ originFallbackY,
44
+ overlayX,
45
+ overlayFallbackX,
46
+ overlayY,
47
+ overlayFallbackY,
48
+ offsetX: this.offsetX,
49
+ offsetY: this.offsetY,
50
+ };
51
+ }
52
+ getPositionStrategy() {
53
+ let positionStrategy = this._overlayService.desktopPositionStrategy(this._element, this.selector);
54
+ const positionConfig = this.getPositionConfig();
55
+ positionStrategy = this._overlayService.setPosition(positionStrategy, positionConfig);
56
+ return positionStrategy;
57
+ }
58
+ getScrollStrategy() {
59
+ return this.setScrollStrategy('close');
60
+ }
61
+ setScrollStrategy(scrollStrategy) {
62
+ switch (scrollStrategy) {
63
+ case 'reposition':
64
+ return this._overlay.scrollStrategies.reposition();
65
+ case 'block':
66
+ return this._overlay.scrollStrategies.block();
67
+ case 'close':
68
+ return this._overlay.scrollStrategies.close();
69
+ default:
70
+ return this._overlay.scrollStrategies.close();
71
+ }
72
+ }
73
+ toggleOverlay(isOpen) {
74
+ isOpen ? this._closeOverlay() : this._openOverlay();
75
+ return !isOpen;
76
+ }
77
+ onOutsideClick() {
78
+ this._closeOverlay();
79
+ }
80
+ _openOverlay() {
81
+ this.componentRef.direction = this._dir.value === 'rtl' ? 'rtl' : 'ltr';
82
+ this.componentRef.clientInput = this._clientInput;
83
+ this.componentRef.clientOutput = this._clientOutput;
84
+ const panelClass = [];
85
+ if (this._clientOutput?.device === 'touch') {
86
+ panelClass.push('granite-overlay-pane-center');
87
+ }
88
+ const hasBackdrop = this._clientOutput?.device === 'touch';
89
+ const config = new OverlayConfig({
90
+ positionStrategy: this.getPositionStrategy(),
91
+ backdropClass: 'granite-overlay-dark-glass-backdrop',
92
+ scrollStrategy: this.getScrollStrategy(),
93
+ direction: this._dir,
94
+ panelClass,
95
+ hasBackdrop,
96
+ });
97
+ this._overlayRef = this._overlayService.createOverlay(config, this.componentRef, this._viewContainerRef);
98
+ this._overlayService.subscribeOutsideClick(this._overlayRef, () => this.onOutsideClick());
99
+ }
100
+ _closeOverlay() {
101
+ if (!this._overlayRef) {
102
+ return;
103
+ }
104
+ this._overlayService.closeOverlay(this._overlayRef, this._element);
105
+ }
106
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteOverlayTriggerForBaseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
107
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: GraniteOverlayTriggerForBaseDirective, selector: "[graniteOverlayTriggerForBase]", ngImport: i0 }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GraniteOverlayTriggerForBaseDirective, decorators: [{
110
+ type: Directive,
111
+ args: [{
112
+ selector: '[graniteOverlayTriggerForBase]',
113
+ }]
114
+ }], propDecorators: { _clientOutput: [{
115
+ type: Optional
116
+ }], _clientInput: [{
117
+ type: Optional
118
+ }], _dir: [{
119
+ type: Optional
120
+ }] } });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS10cmlnZ2VyLWZvci1iYXNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9vdmVybGF5LXRyaWdnZXItZm9yLWJhc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLTCxPQUFPLEVBQ1AsYUFBYSxHQUtkLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUVOLFFBQVEsRUFDUixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixxQkFBcUIsR0FDdEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU9uRCxNQUFNLE9BQU8scUNBQXFDO0lBSGxEO1FBSUUsdUNBQXVDO1FBRS9CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFdEQsc0NBQXNDO1FBRTlCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFHNUMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUk1QixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLFlBQU8sR0FBVyxDQUFDLENBQUM7UUFFdEIsZ0JBQVcsR0FBc0IsSUFBSSxDQUFDO1FBRXRDLGFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsYUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdDLG9CQUFl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QUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUNoRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckUsQ0FBQzsrR0EvSVUscUNBQXFDO21HQUFyQyxxQ0FBcUM7OzRGQUFyQyxxQ0FBcUM7a0JBSGpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztpQkFDM0M7OEJBSVMsYUFBYTtzQkFEcEIsUUFBUTtnQkFLRCxZQUFZO3NCQURuQixRQUFRO2dCQUlELElBQUk7c0JBRFgsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJsb2NrU2Nyb2xsU3RyYXRlZ3ksXG4gIENsb3NlU2Nyb2xsU3RyYXRlZ3ksXG4gIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSxcbiAgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG4gIFBvc2l0aW9uU3RyYXRlZ3ksXG4gIFJlcG9zaXRpb25TY3JvbGxTdHJhdGVneSxcbiAgVmVydGljYWxDb25uZWN0aW9uUG9zLFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBHUkFOSVRFX0NMSUVOVF9JTlBVVCxcbiAgR1JBTklURV9DTElFTlRfT1VUUFVULFxufSBmcm9tICcuL2NsaWVudC1lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi9vdmVybGF5LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3ZlcmxheVBvc2l0aW9uQ29uZmlnIH0gZnJvbSAnLi9vdmVybGF5LXBvc2l0aW9uLWNvbmZpZyc7XG5pbXBvcnQgeyBPdmVybGF5QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vb3ZlcmxheS1iYXNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2dyYW5pdGVPdmVybGF5VHJpZ2dlckZvckJhc2VdJyxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZU92ZXJsYXlUcmlnZ2VyRm9yQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKiBDbGllbnQgb3V0cHV0IGRldmljZSBpbmZvcm1hdGlvbiAqL1xuICBAT3B0aW9uYWwoKVxuICBwcml2YXRlIF9jbGllbnRPdXRwdXQgPSBpbmplY3QoR1JBTklURV9DTElFTlRfT1VUUFVUKTtcblxuICAvKiogQ2xpZW50IGlucHV0IGRldmljZSBpbmZvcm1hdGlvbiAqL1xuICBAT3B0aW9uYWwoKVxuICBwcml2YXRlIF9jbGllbnRJbnB1dCA9IGluamVjdChHUkFOSVRFX0NMSUVOVF9JTlBVVCk7XG5cbiAgQE9wdGlvbmFsKClcbiAgcHJpdmF0ZSBfZGlyID0gaW5qZWN0KERpcmVjdGlvbmFsaXR5KTtcblxuICBwcm90ZWN0ZWQgY29tcG9uZW50UmVmOiBPdmVybGF5QmFzZUNvbXBvbmVudDtcbiAgcHJvdGVjdGVkIHNlbGVjdG9yOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBvZmZzZXRYOiBudW1iZXIgPSAwO1xuICBwcm90ZWN0ZWQgb2Zmc2V0WTogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSBfZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgX292ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0UG9zaXRpb25Db25maWcoKTogT3ZlcmxheVBvc2l0aW9uQ29uZmlnIHtcbiAgICBjb25zdCBbb3JpZ2luWCwgb3JpZ2luRmFsbGJhY2tYXTogSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3NbXSA9XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi54UG9zaXRpb24gPT09ICdiZWZvcmUnXG4gICAgICAgID8gWydlbmQnLCAnc3RhcnQnXVxuICAgICAgICA6IFsnc3RhcnQnLCAnZW5kJ107XG5cbiAgICBjb25zdCBbb3ZlcmxheVksIG92ZXJsYXlGYWxsYmFja1ldOiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3NbXSA9XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi55UG9zaXRpb24gPT09ICdhYm92ZSdcbiAgICAgICAgPyBbJ2JvdHRvbScsICd0b3AnXVxuICAgICAgICA6IFsndG9wJywgJ2JvdHRvbSddO1xuXG4gICAgbGV0IFtvcmlnaW5ZLCBvcmlnaW5GYWxsYmFja1ldID0gW292ZXJsYXlZLCBvdmVybGF5RmFsbGJhY2tZXTtcbiAgICBjb25zdCBbb3ZlcmxheVgsIG92ZXJsYXlGYWxsYmFja1hdID0gW29yaWdpblgsIG9yaWdpbkZhbGxiYWNrWF07XG5cbiAgICBvcmlnaW5ZID0gb3ZlcmxheVkgPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcbiAgICBvcmlnaW5GYWxsYmFja1kgPSBvdmVybGF5RmFsbGJhY2tZID09PSAndG9wJyA/ICdib3R0b20nIDogJ3RvcCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3JpZ2luWCxcbiAgICAgIG9yaWdpbkZhbGxiYWNrWCxcbiAgICAgIG9yaWdpblksXG4gICAgICBvcmlnaW5GYWxsYmFja1ksXG4gICAgICBvdmVybGF5WCxcbiAgICAgIG92ZXJsYXlGYWxsYmFja1gsXG4gICAgICBvdmVybGF5WSxcbiAgICAgIG92ZXJsYXlGYWxsYmFja1ksXG4gICAgICBvZmZzZXRYOiB0aGlzLm9mZnNldFgsXG4gICAgICBvZmZzZXRZOiB0aGlzLm9mZnNldFksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQb3NpdGlvblN0cmF0ZWd5KCk6IFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIGxldCBwb3NpdGlvblN0cmF0ZWd5OiBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kgPVxuICAgICAgdGhpcy5fb3ZlcmxheVNlcnZpY2UuZGVza3RvcFBvc2l0aW9uU3RyYXRlZ3koXG4gICAgICAgIHRoaXMuX2VsZW1lbnQsXG4gICAgICAgIHRoaXMuc2VsZWN0b3JcbiAgICAgICk7XG4gICAgY29uc3QgcG9zaXRpb25Db25maWc6IE92ZXJsYXlQb3NpdGlvbkNvbmZpZyA9IHRoaXMuZ2V0UG9zaXRpb25Db25maWcoKTtcbiAgICBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheVNlcnZpY2Uuc2V0UG9zaXRpb24oXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgcG9zaXRpb25Db25maWdcbiAgICApO1xuICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNjcm9sbFN0cmF0ZWd5KCk6XG4gICAgfCBSZXBvc2l0aW9uU2Nyb2xsU3RyYXRlZ3lcbiAgICB8IEJsb2NrU2Nyb2xsU3RyYXRlZ3lcbiAgICB8IENsb3NlU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLnNldFNjcm9sbFN0cmF0ZWd5KCdjbG9zZScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFNjcm9sbFN0cmF0ZWd5KFxuICAgIHNjcm9sbFN0cmF0ZWd5OiAncmVwb3NpdGlvbicgfCAnYmxvY2snIHwgJ2Nsb3NlJ1xuICApOiBSZXBvc2l0aW9uU2Nyb2xsU3RyYXRlZ3kgfCBCbG9ja1Njcm9sbFN0cmF0ZWd5IHwgQ2xvc2VTY3JvbGxTdHJhdGVneSB7XG4gICAgc3dpdGNoIChzY3JvbGxTdHJhdGVneSkge1xuICAgICAgY2FzZSAncmVwb3NpdGlvbic6XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpO1xuICAgICAgY2FzZSAnYmxvY2snOlxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmJsb2NrKCk7XG4gICAgICBjYXNlICdjbG9zZSc6XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdG9nZ2xlT3ZlcmxheShpc09wZW46IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpc09wZW4gPyB0aGlzLl9jbG9zZU92ZXJsYXkoKSA6IHRoaXMuX29wZW5PdmVybGF5KCk7XG4gICAgcmV0dXJuICFpc09wZW47XG4gIH1cblxuICBwcm90ZWN0ZWQgb25PdXRzaWRlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VPdmVybGF5KCk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuT3ZlcmxheSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5kaXJlY3Rpb24gPSB0aGlzLl9kaXIudmFsdWUgPT09ICdydGwnID8gJ3J0bCcgOiAnbHRyJztcbiAgICB0aGlzLmNvbXBvbmVudFJlZi5jbGllbnRJbnB1dCA9IHRoaXMuX2NsaWVudElucHV0O1xuICAgIHRoaXMuY29tcG9uZW50UmVmLmNsaWVudE91dHB1dCA9IHRoaXMuX2NsaWVudE91dHB1dDtcblxuICAgIGNvbnN0IHBhbmVsQ2xhc3M6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuX2NsaWVudE91dHB1dD8uZGV2aWNlID09PSAndG91Y2gnKSB7XG4gICAgICBwYW5lbENsYXNzLnB1c2goJ2dyYW5pdGUtb3ZlcmxheS1wYW5lLWNlbnRlcicpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0JhY2tkcm9wID0gdGhpcy5fY2xpZW50T3V0cHV0Py5kZXZpY2UgPT09ICd0b3VjaCc7XG5cbiAgICBjb25zdCBjb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldFBvc2l0aW9uU3RyYXRlZ3koKSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICdncmFuaXRlLW92ZXJsYXktZGFyay1nbGFzcy1iYWNrZHJvcCcsXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5nZXRTY3JvbGxTdHJhdGVneSgpLFxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIsXG4gICAgICBwYW5lbENsYXNzLFxuICAgICAgaGFzQmFja2Ryb3AsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheVNlcnZpY2UuY3JlYXRlT3ZlcmxheShcbiAgICAgIGNvbmZpZyxcbiAgICAgIHRoaXMuY29tcG9uZW50UmVmLFxuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZlxuICAgICk7XG4gICAgdGhpcy5fb3ZlcmxheVNlcnZpY2Uuc3Vic2NyaWJlT3V0c2lkZUNsaWNrKHRoaXMuX292ZXJsYXlSZWYsICgpID0+XG4gICAgICB0aGlzLm9uT3V0c2lkZUNsaWNrKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9vdmVybGF5U2VydmljZS5jbG9zZU92ZXJsYXkodGhpcy5fb3ZlcmxheVJlZiwgdGhpcy5fZWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==