@theseam/ui-common 1.0.0-beta.6 → 1.0.0-beta.7

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 (149) hide show
  1. package/breadcrumbs/index.d.ts +1 -2
  2. package/buttons/index.d.ts +20 -13
  3. package/datatable/index.d.ts +8 -8
  4. package/dynamic/index.d.ts +5 -5
  5. package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
  6. package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
  7. package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
  8. package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  9. package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
  10. package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
  11. package/fesm2022/theseam-ui-common-card.mjs +21 -21
  12. package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
  13. package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
  14. package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
  15. package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
  16. package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
  17. package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
  18. package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  19. package/fesm2022/theseam-ui-common-core.mjs +31 -11
  20. package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
  21. package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
  22. package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
  23. package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
  24. package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
  25. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
  26. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
  27. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
  28. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  29. package/fesm2022/theseam-ui-common-datatable.mjs +581 -385
  30. package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
  31. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
  32. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  33. package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
  34. package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
  35. package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
  36. package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
  37. package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
  38. package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
  39. package/fesm2022/theseam-ui-common-form-field.mjs +120 -74
  40. package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
  41. package/fesm2022/theseam-ui-common-framework.mjs +669 -543
  42. package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
  43. package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
  44. package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
  45. package/fesm2022/theseam-ui-common-graphql.mjs +252 -195
  46. package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
  47. package/fesm2022/theseam-ui-common-icon.mjs +125 -89
  48. package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
  49. package/fesm2022/theseam-ui-common-layout.mjs +18 -26
  50. package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
  51. package/fesm2022/theseam-ui-common-loading.mjs +19 -28
  52. package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
  53. package/fesm2022/theseam-ui-common-menu.mjs +124 -95
  54. package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
  55. package/fesm2022/theseam-ui-common-modal.mjs +177 -129
  56. package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
  57. package/fesm2022/theseam-ui-common-models.mjs +3 -3
  58. package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
  59. package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
  60. package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
  61. package/fesm2022/theseam-ui-common-popover.mjs +81 -88
  62. package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
  63. package/fesm2022/theseam-ui-common-progress.mjs +15 -19
  64. package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
  65. package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
  66. package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
  67. package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
  68. package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
  69. package/fesm2022/theseam-ui-common-services.mjs +41 -26
  70. package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
  71. package/fesm2022/theseam-ui-common-shared.mjs +123 -67
  72. package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
  73. package/fesm2022/theseam-ui-common-storage.mjs +9 -6
  74. package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
  75. package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
  76. package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
  78. package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
  79. package/fesm2022/theseam-ui-common-table-cell-type.mjs +34 -38
  80. package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
  81. package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
  82. package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
  83. package/fesm2022/theseam-ui-common-table.mjs +50 -39
  84. package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
  85. package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
  86. package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
  87. package/fesm2022/theseam-ui-common-testing.mjs +13 -10
  88. package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
  89. package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
  90. package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
  91. package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
  92. package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
  93. package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
  94. package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
  95. package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
  96. package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
  97. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
  98. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  99. package/fesm2022/theseam-ui-common-utils.mjs +113 -77
  100. package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
  101. package/fesm2022/theseam-ui-common-validators.mjs +10 -9
  102. package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
  103. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
  104. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  105. package/fesm2022/theseam-ui-common-viewers.mjs +79 -56
  106. package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
  107. package/fesm2022/theseam-ui-common-widget.mjs +288 -314
  108. package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
  109. package/framework/base-layout/base-layout.component.scss +9 -4
  110. package/framework/base-layout/styles/_variables.scss +4 -9
  111. package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
  112. package/framework/index.d.ts +6 -6
  113. package/framework/nav/nav-item/nav-item.component.scss +7 -6
  114. package/framework/nav/styles/_themes/light/_variables.scss +21 -5
  115. package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
  116. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
  117. package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
  118. package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
  119. package/graphql/index.d.ts +5 -5
  120. package/modal/README.md +5 -5
  121. package/modal/index.d.ts +1 -1
  122. package/models/index.d.ts +1 -1
  123. package/package.json +59 -59
  124. package/popover/index.d.ts +0 -2
  125. package/progress/progress-circle/styles/_variables.scss +15 -3
  126. package/story-helpers/index.d.ts +11 -1
  127. package/styles/bootstrap/_bootstrap.scss +34 -34
  128. package/styles/bootstrap/_bs-styles.scss +4 -8
  129. package/styles/bootstrap/_bs-utilities.scss +4 -4
  130. package/styles/bootstrap/_bs-variables.scss +65 -70
  131. package/styles/common/_forms.scss +9 -10
  132. package/styles/common/_global.scss +0 -1
  133. package/styles/common/_hacks.scss +1 -1
  134. package/styles/common/_table.scss +0 -1
  135. package/styles/common/_text.scss +3 -1
  136. package/styles/theme.scss +1 -1
  137. package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
  138. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
  139. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
  140. package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
  141. package/styles/vendor/quill/_quill.scss +15 -9
  142. package/tel-input/README.md +27 -27
  143. package/utils/index.d.ts +3 -3
  144. package/viewers/index.d.ts +9 -2
  145. package/widget/_widget-theme.scss +1 -1
  146. package/widget/styles/_variables.scss +2 -2
  147. package/widget/widget/widget.component.scss +0 -2
  148. package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
  149. package/widget/widget-footer/widget-footer.component.scss +0 -1
@@ -14,13 +14,13 @@ class TheSeamNavigationReloadService {
14
14
  }
15
15
  initialize(config) {
16
16
  this._checkRouterConfig();
17
- this._router.events.pipe(takeUntil(this._destroy$)).subscribe(event => {
17
+ this._router.events.pipe(takeUntil(this._destroy$)).subscribe((event) => {
18
18
  if (event instanceof NavigationSkipped) {
19
19
  const url = event.url;
20
20
  const navigationState = history.state;
21
- const shouldReloadFn = config.shouldReload ?? (() => navigationState[THESEAM_RELOAD_PROPERTY]);
22
- const shouldReload = shouldReloadFn(navigationState, url) &&
23
- url === this._router.url;
21
+ const shouldReloadFn = config.shouldReload ??
22
+ (() => navigationState[THESEAM_RELOAD_PROPERTY]);
23
+ const shouldReload = shouldReloadFn(navigationState, url) && url === this._router.url;
24
24
  if (shouldReload) {
25
25
  this.reloadComponent(url, config?.dummyUrl);
26
26
  }
@@ -28,7 +28,9 @@ class TheSeamNavigationReloadService {
28
28
  });
29
29
  }
30
30
  reloadComponent(url, dummyUrl) {
31
- this._router.navigateByUrl(dummyUrl || '/', { skipLocationChange: true }).then(() => {
31
+ this._router
32
+ .navigateByUrl(dummyUrl || '/', { skipLocationChange: true })
33
+ .then(() => {
32
34
  this._router.navigateByUrl(url, { skipLocationChange: true });
33
35
  });
34
36
  }
@@ -42,13 +44,13 @@ class TheSeamNavigationReloadService {
42
44
  'or updating the reload logic.');
43
45
  }
44
46
  }
45
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamNavigationReloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamNavigationReloadService, providedIn: 'root' });
47
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamNavigationReloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
48
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamNavigationReloadService, providedIn: 'root' });
47
49
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamNavigationReloadService, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamNavigationReloadService, decorators: [{
49
51
  type: Injectable,
50
52
  args: [{
51
- providedIn: 'root'
53
+ providedIn: 'root',
52
54
  }]
53
55
  }] });
54
56
 
@@ -59,8 +61,8 @@ function provideNavigationReload(config) {
59
61
  provide: APP_INITIALIZER,
60
62
  useFactory: (service) => () => service.initialize(config),
61
63
  deps: [TheSeamNavigationReloadService],
62
- multi: true
63
- }
64
+ multi: true,
65
+ },
64
66
  ];
65
67
  }
66
68
 
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-navigation-reload.mjs","sources":["../../../projects/ui-common/navigation-reload/navigation-reload.config.ts","../../../projects/ui-common/navigation-reload/navigation-reload.service.ts","../../../projects/ui-common/navigation-reload/navigation-reload.provider.ts","../../../projects/ui-common/navigation-reload/theseam-ui-common-navigation-reload.ts"],"sourcesContent":["export interface TheSeamNavigationReloadConfig {\n shouldReload?: (state: any, url: string) => boolean\n dummyUrl?: string\n}\n\nexport const THESEAM_RELOAD_PROPERTY = 'seamReload'\n","import { inject, Injectable, OnDestroy } from '@angular/core'\nimport { Router, NavigationSkipped, RouterConfigOptions } from '@angular/router'\nimport { Subject, takeUntil } from 'rxjs'\n\nimport { THESEAM_RELOAD_PROPERTY, TheSeamNavigationReloadConfig } from './navigation-reload.config'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TheSeamNavigationReloadService implements OnDestroy {\n private readonly _router = inject(Router)\n private readonly _destroy$ = new Subject<void>()\n\n ngOnDestroy(): void {\n this._destroy$.next()\n this._destroy$.complete()\n }\n\n initialize(config: TheSeamNavigationReloadConfig): void {\n this._checkRouterConfig()\n this._router.events.pipe(takeUntil(this._destroy$)).subscribe(event => {\n if (event instanceof NavigationSkipped) {\n const url = event.url\n const navigationState = history.state\n\n const shouldReloadFn = config.shouldReload ?? (() => navigationState[THESEAM_RELOAD_PROPERTY])\n\n const shouldReload =\n shouldReloadFn(navigationState, url) &&\n url === this._router.url\n\n if (shouldReload) {\n this.reloadComponent(url, config?.dummyUrl)\n }\n }\n })\n }\n\n reloadComponent(url: string, dummyUrl?: string): void {\n this._router.navigateByUrl(dummyUrl || '/', { skipLocationChange: true }).then(() => {\n this._router.navigateByUrl(url, { skipLocationChange: true })\n })\n }\n\n private _checkRouterConfig() {\n const config: RouterConfigOptions = this._router.config as any // Type hack, config is internal\n if (config.onSameUrlNavigation === 'reload') {\n // eslint-disable-next-line no-console\n console.warn(\n 'WARNING: Router is configured with onSameUrlNavigation: \"reload\". ' +\n 'This component relies on \"ignore\" to trigger reloads via NavigationSkipped. ' +\n 'Reload behavior may not work as expected. Consider reverting to \"ignore\" ' +\n 'or updating the reload logic.'\n )\n }\n }\n}\n","import { APP_INITIALIZER, Provider } from '@angular/core'\nimport { TheSeamNavigationReloadService } from './navigation-reload.service'\nimport { TheSeamNavigationReloadConfig } from './navigation-reload.config'\n\nexport function provideNavigationReload(config: TheSeamNavigationReloadConfig): Provider[] {\n return [\n TheSeamNavigationReloadService,\n {\n provide: APP_INITIALIZER,\n useFactory: (service: TheSeamNavigationReloadService) => () => service.initialize(config),\n deps: [ TheSeamNavigationReloadService ],\n multi: true\n }\n ]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAKO,MAAM,uBAAuB,GAAG;;MCI1B,8BAA8B,CAAA;AACxB,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;IAEhD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;IAC3B;AAEA,IAAA,UAAU,CAAC,MAAqC,EAAA;QAC9C,IAAI,CAAC,kBAAkB,EAAE;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AACpE,YAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACtC,gBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACrB,gBAAA,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK;AAErC,gBAAA,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,KAAK,MAAM,eAAe,CAAC,uBAAuB,CAAC,CAAC;AAE9F,gBAAA,MAAM,YAAY,GAChB,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC;AACpC,oBAAA,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG;gBAE1B,IAAI,YAAY,EAAE;oBAChB,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC;gBAC7C;YACF;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,CAAC,GAAW,EAAE,QAAiB,EAAA;AAC5C,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,IAAI,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAK;AAClF,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AAC/D,QAAA,CAAC,CAAC;IACJ;IAEQ,kBAAkB,GAAA;QACxB,MAAM,MAAM,GAAwB,IAAI,CAAC,OAAO,CAAC,MAAa,CAAA;AAC9D,QAAA,IAAI,MAAM,CAAC,mBAAmB,KAAK,QAAQ,EAAE;;YAE3C,OAAO,CAAC,IAAI,CACV,oEAAoE;gBACpE,8EAA8E;gBAC9E,2EAA2E;AAC3E,gBAAA,+BAA+B,CAChC;QACH;IACF;uGA9CW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cAF7B,MAAM,EAAA,CAAA;;2FAEP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACJK,SAAU,uBAAuB,CAAC,MAAqC,EAAA;IAC3E,OAAO;QACL,8BAA8B;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,CAAC,OAAuC,KAAK,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YACzF,IAAI,EAAE,CAAE,8BAA8B,CAAE;AACxC,YAAA,KAAK,EAAE;AACR;KACF;AACH;;ACdA;;AAEG;;;;"}
1
+ {"version":3,"file":"theseam-ui-common-navigation-reload.mjs","sources":["../../../projects/ui-common/navigation-reload/navigation-reload.config.ts","../../../projects/ui-common/navigation-reload/navigation-reload.service.ts","../../../projects/ui-common/navigation-reload/navigation-reload.provider.ts","../../../projects/ui-common/navigation-reload/theseam-ui-common-navigation-reload.ts"],"sourcesContent":["export interface TheSeamNavigationReloadConfig {\n shouldReload?: (state: any, url: string) => boolean\n dummyUrl?: string\n}\n\nexport const THESEAM_RELOAD_PROPERTY = 'seamReload'\n","import { inject, Injectable, OnDestroy } from '@angular/core'\nimport { Router, NavigationSkipped, RouterConfigOptions } from '@angular/router'\nimport { Subject, takeUntil } from 'rxjs'\n\nimport {\n THESEAM_RELOAD_PROPERTY,\n TheSeamNavigationReloadConfig,\n} from './navigation-reload.config'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TheSeamNavigationReloadService implements OnDestroy {\n private readonly _router = inject(Router)\n private readonly _destroy$ = new Subject<void>()\n\n ngOnDestroy(): void {\n this._destroy$.next()\n this._destroy$.complete()\n }\n\n initialize(config: TheSeamNavigationReloadConfig): void {\n this._checkRouterConfig()\n this._router.events.pipe(takeUntil(this._destroy$)).subscribe((event) => {\n if (event instanceof NavigationSkipped) {\n const url = event.url\n const navigationState = history.state\n\n const shouldReloadFn =\n config.shouldReload ??\n (() => navigationState[THESEAM_RELOAD_PROPERTY])\n\n const shouldReload =\n shouldReloadFn(navigationState, url) && url === this._router.url\n\n if (shouldReload) {\n this.reloadComponent(url, config?.dummyUrl)\n }\n }\n })\n }\n\n reloadComponent(url: string, dummyUrl?: string): void {\n this._router\n .navigateByUrl(dummyUrl || '/', { skipLocationChange: true })\n .then(() => {\n this._router.navigateByUrl(url, { skipLocationChange: true })\n })\n }\n\n private _checkRouterConfig() {\n const config: RouterConfigOptions = this._router.config as any // Type hack, config is internal\n if (config.onSameUrlNavigation === 'reload') {\n // eslint-disable-next-line no-console\n console.warn(\n 'WARNING: Router is configured with onSameUrlNavigation: \"reload\". ' +\n 'This component relies on \"ignore\" to trigger reloads via NavigationSkipped. ' +\n 'Reload behavior may not work as expected. Consider reverting to \"ignore\" ' +\n 'or updating the reload logic.',\n )\n }\n }\n}\n","import { APP_INITIALIZER, Provider } from '@angular/core'\nimport { TheSeamNavigationReloadService } from './navigation-reload.service'\nimport { TheSeamNavigationReloadConfig } from './navigation-reload.config'\n\nexport function provideNavigationReload(\n config: TheSeamNavigationReloadConfig,\n): Provider[] {\n return [\n TheSeamNavigationReloadService,\n {\n provide: APP_INITIALIZER,\n useFactory: (service: TheSeamNavigationReloadService) => () =>\n service.initialize(config),\n deps: [TheSeamNavigationReloadService],\n multi: true,\n },\n ]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAKO,MAAM,uBAAuB,GAAG;;MCO1B,8BAA8B,CAAA;AACxB,IAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AACxB,IAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;IAEhD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;IAC3B;AAEA,IAAA,UAAU,CAAC,MAAqC,EAAA;QAC9C,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACtE,YAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACtC,gBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG;AACrB,gBAAA,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK;AAErC,gBAAA,MAAM,cAAc,GAClB,MAAM,CAAC,YAAY;qBAClB,MAAM,eAAe,CAAC,uBAAuB,CAAC,CAAC;AAElD,gBAAA,MAAM,YAAY,GAChB,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG;gBAElE,IAAI,YAAY,EAAE;oBAChB,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC;gBAC7C;YACF;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,eAAe,CAAC,GAAW,EAAE,QAAiB,EAAA;AAC5C,QAAA,IAAI,CAAC;aACF,aAAa,CAAC,QAAQ,IAAI,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE;aAC3D,IAAI,CAAC,MAAK;AACT,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;AAC/D,QAAA,CAAC,CAAC;IACN;IAEQ,kBAAkB,GAAA;QACxB,MAAM,MAAM,GAAwB,IAAI,CAAC,OAAO,CAAC,MAAa,CAAA;AAC9D,QAAA,IAAI,MAAM,CAAC,mBAAmB,KAAK,QAAQ,EAAE;;YAE3C,OAAO,CAAC,IAAI,CACV,oEAAoE;gBAClE,8EAA8E;gBAC9E,2EAA2E;AAC3E,gBAAA,+BAA+B,CAClC;QACH;IACF;uGAjDW,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cAF7B,MAAM,EAAA,CAAA;;2FAEP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACPK,SAAU,uBAAuB,CACrC,MAAqC,EAAA;IAErC,OAAO;QACL,8BAA8B;AAC9B,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,CAAC,OAAuC,KAAK,MACvD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,IAAI,EAAE,CAAC,8BAA8B,CAAC;AACtC,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;KACF;AACH;;ACjBA;;AAEG;;;;"}
@@ -2,7 +2,7 @@ import { animation, query, style, group, animate, trigger, transition, useAnimat
2
2
  import { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';
3
3
  import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
4
4
  import * as i0 from '@angular/core';
5
- import { HostListener, Input, HostBinding, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
5
+ import { HostListener, Input, ChangeDetectionStrategy, Component, Directive, NgModule } from '@angular/core';
6
6
  import { Subject, BehaviorSubject, fromEvent, of, Subscription, merge } from 'rxjs';
7
7
  import { distinctUntilChanged, switchMap, startWith, map, takeUntil } from 'rxjs/operators';
8
8
  import * as i1 from '@angular/common';
@@ -18,45 +18,45 @@ const popoverSlideIn = animation([
18
18
  query(':self', [
19
19
  style({
20
20
  opacity: 0,
21
- transform: 'translateY(-70%)'
21
+ transform: 'translateY(-70%)',
22
22
  }),
23
23
  group([
24
24
  animate('170ms linear', style({ opacity: 1 })),
25
25
  animate('220ms ease', style({ transform: 'translateY(0)' })),
26
- ])
27
- ])
26
+ ]),
27
+ ]),
28
28
  ]);
29
29
  const popoverSlideOut = animation([
30
30
  query(':self', [
31
31
  style({
32
32
  opacity: 1,
33
- transform: 'translateY(0)'
33
+ transform: 'translateY(0)',
34
34
  }),
35
35
  group([
36
36
  animate('170ms linear', style({ opacity: 0 })),
37
37
  animate('220ms ease', style({ transform: 'translateY(-70%)' })),
38
- ])
39
- ])
38
+ ]),
39
+ ]),
40
40
  ]);
41
41
  const popoverExpandIn = animation([
42
42
  style({
43
43
  opacity: 0,
44
- transform: 'scale(0.8)'
44
+ transform: 'scale(0.8)',
45
45
  }),
46
46
  group([
47
47
  animate('100ms linear', style({ opacity: 1 })),
48
48
  animate('120ms ease', style({ transform: 'scale(1)' })),
49
- ])
49
+ ]),
50
50
  ]);
51
51
  const popoverExpandOut = animation([
52
52
  style({
53
53
  opacity: 1,
54
- transform: 'scale(1)'
54
+ transform: 'scale(1)',
55
55
  }),
56
56
  group([
57
57
  animate('100ms linear', style({ opacity: 0 })),
58
58
  animate('120ms ease', style({ transform: 'scale(0.8)' })),
59
- ])
59
+ ]),
60
60
  ]);
61
61
 
62
62
  class PopoverComponent {
@@ -79,8 +79,6 @@ class PopoverComponent {
79
79
  /** Stream of animation `done` events. */
80
80
  _animationDone = new Subject();
81
81
  // @HostBinding('attr.role') get _role() { return this._config.role }
82
- get _role() { return 'dialog'; }
83
- get _tabindex() { return -1; }
84
82
  template;
85
83
  // @Output() readonly closed = new EventEmitter<void | 'click' | 'keydown'>()
86
84
  popoverClass;
@@ -90,7 +88,9 @@ class PopoverComponent {
90
88
  * Defines a width for a popover that will scale down if the window innerWidth is
91
89
  * smaller than the value.
92
90
  */
93
- get baseWidth() { return this._baseWidth.value; }
91
+ get baseWidth() {
92
+ return this._baseWidth.value;
93
+ }
94
94
  set baseWidth(value) {
95
95
  const _val = coerceNumberProperty(value, null);
96
96
  if (_val !== this._baseWidth.value) {
@@ -105,15 +105,18 @@ class PopoverComponent {
105
105
  // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,
106
106
  // because some browsers fire the done event twice and we don't want to emit duplicate events.
107
107
  // See: https://github.com/angular/angular/issues/24084
108
- this._animationDone.pipe(distinctUntilChanged((x, y) => {
108
+ this._animationDone
109
+ .pipe(distinctUntilChanged((x, y) => {
109
110
  return x.fromState === y.fromState && x.toState === y.toState;
110
- })).subscribe(event => {
111
+ }))
112
+ .subscribe((event) => {
111
113
  // Emit lifecycle events based on animation `done` callback.
112
114
  if (event.toState === 'enter') {
113
115
  this._afterEnter.next();
114
116
  this._afterEnter.complete();
115
117
  }
116
- if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {
118
+ if (event.fromState === 'enter' &&
119
+ (event.toState === 'void' || event.toState === 'exit')) {
117
120
  this._afterExit.next();
118
121
  this._afterExit.complete();
119
122
  }
@@ -121,12 +124,16 @@ class PopoverComponent {
121
124
  }
122
125
  ngOnInit() {
123
126
  // this._popoverWidth$ =
124
- this._baseWidth.pipe(switchMap(baseWidth => {
127
+ this._baseWidth
128
+ .pipe(switchMap((baseWidth) => {
125
129
  if (baseWidth) {
126
- return fromEvent(window, 'resize').pipe(startWith(undefined), map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`));
130
+ return fromEvent(window, 'resize').pipe(startWith(undefined), map(() => window.innerWidth < baseWidth
131
+ ? `${window.innerWidth}px`
132
+ : `${baseWidth}px`));
127
133
  }
128
134
  return of(undefined);
129
- }), takeUntil(this._ngUnsubscribe)).subscribe(w => {
135
+ }), takeUntil(this._ngUnsubscribe))
136
+ .subscribe((w) => {
130
137
  this._popoverWidth = w;
131
138
  this._changeDetectorRef.markForCheck();
132
139
  });
@@ -150,14 +157,14 @@ class PopoverComponent {
150
157
  this._beforeEnter.next();
151
158
  this._beforeEnter.complete();
152
159
  }
153
- if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {
160
+ if (event.fromState === 'enter' &&
161
+ (event.toState === 'void' || event.toState === 'exit')) {
154
162
  this._beforeExit.next();
155
163
  this._beforeExit.complete();
156
164
  }
157
165
  }
158
166
  /** Handle a keyboard event from the menu, delegating to the appropriate action. */
159
167
  _handleKeydown(event) {
160
- // tslint:disable-next-line:deprecation
161
168
  const keyCode = event.keyCode;
162
169
  switch (keyCode) {
163
170
  case ESCAPE:
@@ -169,21 +176,21 @@ class PopoverComponent {
169
176
  break;
170
177
  }
171
178
  }
172
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: PopoverComponent, isStandalone: false, selector: "seam-popover", inputs: { template: "template", popoverClass: "popoverClass", popover: "popover", popoverContext: "popoverContext", baseWidth: "baseWidth" }, host: { listeners: { "@slideDown.start": "_onAnimationStart($event)", "@slideDown.done": "_animationDone.next($event)", "keydown": "_handleKeydown($event)" }, properties: { "@slideDown": "{\n value: _state,\n params: {\n enterAnimationDuration: enterAnimationDuration,\n exitAnimationDuration: exitAnimationDuration\n }\n }", "style.width": "_popoverWidth", "attr.role": "this._role", "attr.tabindex": "this._tabindex" }, classAttribute: "popover show m-2 position-static" }, ngImport: i0, template: "<div class=\"popover-body\">\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: popover, popover: popover, popoverContext: popoverContext }\"></ng-template>\n </ng-container>\n\n <ng-template #noTemplate>\n Example\n <!-- <ng-content></ng-content> -->\n </ng-template>\n</div>\n", styles: [":host{display:block;max-width:800px;min-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
179
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
180
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", type: PopoverComponent, isStandalone: false, selector: "seam-popover", inputs: { template: "template", popoverClass: "popoverClass", popover: "popover", popoverContext: "popoverContext", baseWidth: "baseWidth" }, host: { listeners: { "@slideDown.start": "_onAnimationStart($event)", "@slideDown.done": "_animationDone.next($event)", "keydown": "_handleKeydown($event)" }, properties: { "@slideDown": "{\n value: _state,\n params: {\n enterAnimationDuration: enterAnimationDuration,\n exitAnimationDuration: exitAnimationDuration\n }\n }", "style.width": "_popoverWidth", "attr.role": "\"dialog\"", "attr.tabindex": "-1" }, classAttribute: "popover show m-2 position-static" }, ngImport: i0, template: "<div class=\"popover-body\">\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n $implicit: popover,\n popover: popover,\n popoverContext: popoverContext,\n }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #noTemplate>\n Example\n <!-- <ng-content></ng-content> -->\n </ng-template>\n</div>\n", styles: [":host{display:block;max-width:800px;min-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
174
181
  trigger('slideDown', [
175
182
  transition(':enter', useAnimation(popoverExpandIn)),
176
183
  transition(':leave', useAnimation(popoverExpandOut)),
177
- ])
184
+ ]),
178
185
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
179
186
  }
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: PopoverComponent, decorators: [{
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: PopoverComponent, decorators: [{
181
188
  type: Component,
182
189
  args: [{ selector: 'seam-popover', animations: [
183
190
  trigger('slideDown', [
184
191
  transition(':enter', useAnimation(popoverExpandIn)),
185
192
  transition(':leave', useAnimation(popoverExpandOut)),
186
- ])
193
+ ]),
187
194
  ], host: {
188
195
  class: 'popover show m-2 position-static',
189
196
  '[@slideDown]': `{
@@ -195,15 +202,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
195
202
  }`,
196
203
  '(@slideDown.start)': '_onAnimationStart($event)',
197
204
  '(@slideDown.done)': '_animationDone.next($event)',
198
- '[style.width]': '_popoverWidth'
199
- }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"popover-body\">\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: popover, popover: popover, popoverContext: popoverContext }\"></ng-template>\n </ng-container>\n\n <ng-template #noTemplate>\n Example\n <!-- <ng-content></ng-content> -->\n </ng-template>\n</div>\n", styles: [":host{display:block;max-width:800px;min-width:100%}\n"] }]
200
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { _role: [{
201
- type: HostBinding,
202
- args: ['attr.role']
203
- }], _tabindex: [{
204
- type: HostBinding,
205
- args: ['attr.tabindex']
206
- }], template: [{
205
+ '[style.width]': '_popoverWidth',
206
+ '[attr.role]': '"dialog"',
207
+ '[attr.tabindex]': '-1',
208
+ }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"popover-body\">\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n $implicit: popover,\n popover: popover,\n popoverContext: popoverContext,\n }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #noTemplate>\n Example\n <!-- <ng-content></ng-content> -->\n </ng-template>\n</div>\n", styles: [":host{display:block;max-width:800px;min-width:100%}\n"] }]
209
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { template: [{
207
210
  type: Input
208
211
  }], popoverClass: [{
209
212
  type: Input
@@ -219,7 +222,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
219
222
  }] } });
220
223
 
221
224
  /** Options for binding a passive event listener. */
222
- const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
225
+ const passiveEventListenerOptions = normalizePassiveListenerOptions({
226
+ passive: true,
227
+ });
223
228
  class TheSeamPopoverDirective {
224
229
  _elementRef;
225
230
  _viewContainerRef;
@@ -232,7 +237,9 @@ class TheSeamPopoverDirective {
232
237
  * Defines a width for a popover that will scale down if the window innerWidth is
233
238
  * smaller than the value.
234
239
  */
235
- get seamPopoverBaseWidth() { return this._seamPopoverBaseWidth.value; }
240
+ get seamPopoverBaseWidth() {
241
+ return this._seamPopoverBaseWidth.value;
242
+ }
236
243
  set seamPopoverBaseWidth(value) {
237
244
  const _val = coerceNumberProperty(value, null);
238
245
  if (_val !== this._seamPopoverBaseWidth.value) {
@@ -240,8 +247,12 @@ class TheSeamPopoverDirective {
240
247
  }
241
248
  }
242
249
  _seamPopoverBaseWidth = new BehaviorSubject(null);
243
- get seamPopoverDisabled() { return this._seamPopoverDisabled.value; }
244
- set seamPopoverDisabled(val) { this._seamPopoverDisabled.next(coerceBooleanProperty(val)); }
250
+ get seamPopoverDisabled() {
251
+ return this._seamPopoverDisabled.value;
252
+ }
253
+ set seamPopoverDisabled(val) {
254
+ this._seamPopoverDisabled.next(coerceBooleanProperty(val));
255
+ }
245
256
  _seamPopoverDisabled = new BehaviorSubject(false);
246
257
  // ngOnInit() {
247
258
  // this._seamPopoverDisabled.pipe(
@@ -290,7 +301,7 @@ class TheSeamPopoverDirective {
290
301
  this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
291
302
  this._seamPopoverBaseWidth
292
303
  .pipe(takeUntil(this._ngUnsubscribe))
293
- .subscribe(w => {
304
+ .subscribe((w) => {
294
305
  if (this._compRef && this._compRef.instance) {
295
306
  this._compRef.instance.baseWidth = w;
296
307
  this._compRef.changeDetectorRef.markForCheck();
@@ -309,7 +320,7 @@ class TheSeamPopoverDirective {
309
320
  * Handles touch start events on the trigger.
310
321
  * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.
311
322
  */
312
- _handleTouchStart = () => this._openedBy = 'touch';
323
+ _handleTouchStart = () => (this._openedBy = 'touch');
313
324
  toggle() {
314
325
  if (this._active || this.seamPopoverDisabled) {
315
326
  this.closePopover();
@@ -335,17 +346,18 @@ class TheSeamPopoverDirective {
335
346
  this._compRef.instance.popover = this;
336
347
  this._compRef.instance.popoverContext = this.seamPopoverContext;
337
348
  this._compRef.changeDetectorRef.markForCheck();
338
- this._popoverClosedSubscription = this._compRef.instance._afterExit.subscribe(v => {
339
- // console.log('closed', v)
340
- if (this._overlayRef?.hasAttached()) {
341
- this._overlayRef.detach();
342
- }
343
- this._resetPopover();
344
- this._popoverClosedSubscription.unsubscribe();
345
- this._closingActionsSubscription.unsubscribe();
346
- this._active = false;
347
- this._closing = false;
348
- });
349
+ this._popoverClosedSubscription =
350
+ this._compRef.instance._afterExit.subscribe((v) => {
351
+ // console.log('closed', v)
352
+ if (this._overlayRef?.hasAttached()) {
353
+ this._overlayRef.detach();
354
+ }
355
+ this._resetPopover();
356
+ this._popoverClosedSubscription.unsubscribe();
357
+ this._closingActionsSubscription.unsubscribe();
358
+ this._active = false;
359
+ this._closing = false;
360
+ });
349
361
  }
350
362
  closePopover() {
351
363
  if (!this._active) {
@@ -362,7 +374,8 @@ class TheSeamPopoverDirective {
362
374
  return this._overlayRef?.hasAttached() ?? false;
363
375
  }
364
376
  getOverlayPosition(origin) {
365
- const positionStrategy = this._overlay.position()
377
+ const positionStrategy = this._overlay
378
+ .position()
366
379
  .flexibleConnectedTo(origin)
367
380
  .withPositions(this.getPositions())
368
381
  .withFlexibleDimensions(false)
@@ -375,13 +388,13 @@ class TheSeamPopoverDirective {
375
388
  originX: 'center',
376
389
  originY: 'bottom',
377
390
  overlayX: 'center',
378
- overlayY: 'top'
391
+ overlayY: 'top',
379
392
  },
380
393
  {
381
394
  originX: 'center',
382
395
  originY: 'top',
383
396
  overlayX: 'center',
384
- overlayY: 'bottom'
397
+ overlayY: 'bottom',
385
398
  },
386
399
  {
387
400
  originX: 'end',
@@ -445,20 +458,19 @@ class TheSeamPopoverDirective {
445
458
  const hover = of();
446
459
  return merge(backdrop, hover, detachments);
447
460
  }
448
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamPopoverDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
449
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: TheSeamPopoverDirective, isStandalone: false, selector: "[seamPopover]", inputs: { seamPopover: "seamPopover", seamPopoverContext: "seamPopoverContext", seamPopoverBaseWidth: "seamPopoverBaseWidth", seamPopoverDisabled: "seamPopoverDisabled" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "popoverOpen() || null" } }, exportAs: ["seamPopover"], ngImport: i0 });
461
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamPopoverDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
462
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.6", type: TheSeamPopoverDirective, isStandalone: false, selector: "[seamPopover]", inputs: { seamPopover: "seamPopover", seamPopoverContext: "seamPopoverContext", seamPopoverBaseWidth: "seamPopoverBaseWidth", seamPopoverDisabled: "seamPopoverDisabled" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "popoverOpen() || null" } }, exportAs: ["seamPopover"], ngImport: i0 });
450
463
  }
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamPopoverDirective, decorators: [{
464
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamPopoverDirective, decorators: [{
452
465
  type: Directive,
453
466
  args: [{
454
467
  selector: '[seamPopover]',
455
- // tslint:disable-next-line:use-host-property-decorator
456
468
  host: {
457
469
  'aria-haspopup': 'true',
458
- '[attr.aria-expanded]': 'popoverOpen() || null'
470
+ '[attr.aria-expanded]': 'popoverOpen() || null',
459
471
  },
460
472
  exportAs: 'seamPopover',
461
- standalone: false
473
+ standalone: false,
462
474
  }]
463
475
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ViewContainerRef }, { type: i1$1.Overlay }, { type: i2.FocusMonitor }], propDecorators: { seamPopover: [{
464
476
  type: Input
@@ -480,35 +492,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
480
492
  }] } });
481
493
 
482
494
  class TheSeamPopoverModule {
483
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
484
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: TheSeamPopoverModule, declarations: [PopoverComponent,
485
- TheSeamPopoverDirective], imports: [CommonModule,
486
- OverlayModule,
487
- PortalModule], exports: [TheSeamPopoverDirective,
488
- OverlayModule,
489
- PortalModule] });
490
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamPopoverModule, imports: [CommonModule,
491
- OverlayModule,
492
- PortalModule, OverlayModule,
493
- PortalModule] });
495
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
496
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: TheSeamPopoverModule, declarations: [PopoverComponent, TheSeamPopoverDirective], imports: [CommonModule, OverlayModule, PortalModule], exports: [TheSeamPopoverDirective, OverlayModule, PortalModule] });
497
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamPopoverModule, imports: [CommonModule, OverlayModule, PortalModule, OverlayModule, PortalModule] });
494
498
  }
495
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamPopoverModule, decorators: [{
499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamPopoverModule, decorators: [{
496
500
  type: NgModule,
497
501
  args: [{
498
- declarations: [
499
- PopoverComponent,
500
- TheSeamPopoverDirective
501
- ],
502
- imports: [
503
- CommonModule,
504
- OverlayModule,
505
- PortalModule
506
- ],
507
- exports: [
508
- TheSeamPopoverDirective,
509
- OverlayModule,
510
- PortalModule
511
- ]
502
+ declarations: [PopoverComponent, TheSeamPopoverDirective],
503
+ imports: [CommonModule, OverlayModule, PortalModule],
504
+ exports: [TheSeamPopoverDirective, OverlayModule, PortalModule],
512
505
  }]
513
506
  }] });
514
507
 
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-popover.mjs","sources":["../../../projects/ui-common/popover/popover-animations.ts","../../../projects/ui-common/popover/popover/popover.component.ts","../../../projects/ui-common/popover/popover/popover.component.html","../../../projects/ui-common/popover/popover.directive.ts","../../../projects/ui-common/popover/popover.module.ts","../../../projects/ui-common/popover/theseam-ui-common-popover.ts"],"sourcesContent":["import { animate, animation, group, query, style } from '@angular/animations'\n\nexport const popoverSlideIn = animation([\n query(':self', [\n style({\n opacity: 0,\n transform: 'translateY(-70%)'\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ])\n ])\n])\n\nexport const popoverSlideOut = animation([\n query(':self', [\n style({\n opacity: 1,\n transform: 'translateY(0)'\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ])\n ])\n])\n\nexport const popoverExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)'\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ])\n])\n\nexport const popoverExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)'\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ])\n])\n","import { AnimationEvent, transition, trigger, useAnimation } from '@angular/animations'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes'\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, of, Subject } from 'rxjs'\nimport { distinctUntilChanged, map, startWith, switchMap, takeUntil } from 'rxjs/operators'\n\nimport { popoverExpandIn, popoverExpandOut } from '../popover-animations'\nimport { TheSeamPopoverDirective } from '../popover.directive'\n\n@Component({\n selector: 'seam-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(popoverExpandIn)),\n transition(':leave', useAnimation(popoverExpandOut)),\n ])\n ],\n host: {\n class: 'popover show m-2 position-static',\n '[@slideDown]': `{\n value: _state,\n params: {\n enterAnimationDuration: enterAnimationDuration,\n exitAnimationDuration: exitAnimationDuration\n }\n }`,\n '(@slideDown.start)': '_onAnimationStart($event)',\n '(@slideDown.done)': '_animationDone.next($event)',\n '[style.width]': '_popoverWidth'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class PopoverComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms'\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms'\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter'\n\n /** A subject emitting before the dialog enters the view. */\n _beforeEnter: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog enters the view. */\n _afterEnter: Subject<void> = new Subject()\n\n /** A subject emitting before the dialog exits the view. */\n _beforeExit: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog exits the view. */\n _afterExit: Subject<void> = new Subject()\n\n /** Stream of animation `done` events. */\n _animationDone = new Subject<AnimationEvent>()\n\n // @HostBinding('attr.role') get _role() { return this._config.role }\n @HostBinding('attr.role') get _role() { return 'dialog' }\n\n @HostBinding('attr.tabindex') get _tabindex() { return -1 }\n\n @Input() template: TemplateRef<any> | undefined | null\n\n // @Output() readonly closed = new EventEmitter<void | 'click' | 'keydown'>()\n\n @Input() popoverClass: string | undefined | null\n\n @Input() popover: TheSeamPopoverDirective | undefined | null\n\n @Input() popoverContext: any\n\n /**\n * Defines a width for a popover that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() { return this._baseWidth.value }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(600)\n // _popoverWidth$: Observable<string | undefined>\n _popoverWidth: string | undefined\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n // TODO: Implement PopoverConfig\n ) {\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState\n })).subscribe(event => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._afterEnter.next()\n this._afterEnter.complete()\n }\n\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._afterExit.next()\n this._afterExit.complete()\n }\n })\n }\n\n ngOnInit() {\n // this._popoverWidth$ =\n this._baseWidth.pipe(\n switchMap(baseWidth => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() => window.innerWidth < baseWidth ? `${window.innerWidth}px` : `${baseWidth}px`)\n )\n }\n return of(undefined)\n }),\n takeUntil(this._ngUnsubscribe)\n ).subscribe(w => {\n this._popoverWidth = w\n this._changeDetectorRef.markForCheck()\n })\n }\n\n ngOnDestroy() {\n // this.closed.complete()\n this._animationDone.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit'\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck()\n }\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next()\n this._beforeEnter.complete()\n }\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._beforeExit.next()\n this._beforeExit.complete()\n }\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n @HostListener('keydown', [ '$event' ])\n _handleKeydown(event: KeyboardEvent) {\n // tslint:disable-next-line:deprecation\n const keyCode = event.keyCode\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n // this.closed.emit('keydown')\n this._startExiting()\n }\n break\n }\n }\n\n}\n","<div class=\"popover-body\">\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-template [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"{ $implicit: popover, popover: popover, popoverContext: popoverContext }\"></ng-template>\n </ng-container>\n\n <ng-template #noTemplate>\n Example\n <!-- <ng-content></ng-content> -->\n </ng-template>\n</div>\n","import { FocusMonitor, FocusOrigin, isFakeMousedownFromScreenReader } from '@angular/cdk/a11y'\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion'\nimport { ESCAPE } from '@angular/cdk/keycodes'\nimport { ConnectionPositionPair, Overlay, OverlayRef, PositionStrategy } from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { ComponentPortal } from '@angular/cdk/portal'\nimport { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'\nimport { BehaviorSubject, fromEvent, merge, of, Subject, Subscription } from 'rxjs'\nimport { switchMap, takeUntil } from 'rxjs/operators'\n\nimport { PopoverComponent } from './popover/popover.component'\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true })\n\n@Directive({\n selector: '[seamPopover]',\n // tslint:disable-next-line:use-host-property-decorator\n host: {\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'popoverOpen() || null'\n },\n exportAs: 'seamPopover',\n standalone: false\n})\nexport class TheSeamPopoverDirective implements OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject<void>()\n\n @Input() seamPopover?: TemplateRef<any> | null\n\n @Input() seamPopoverContext?: any\n\n /**\n * Defines a width for a popover that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get seamPopoverBaseWidth() { return this._seamPopoverBaseWidth.value }\n set seamPopoverBaseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._seamPopoverBaseWidth.value) {\n this._seamPopoverBaseWidth.next(_val)\n }\n }\n private _seamPopoverBaseWidth = new BehaviorSubject<number | null>(null)\n\n @Input()\n get seamPopoverDisabled() { return this._seamPopoverDisabled.value }\n set seamPopoverDisabled(val: boolean) { this._seamPopoverDisabled.next(coerceBooleanProperty(val)) }\n private _seamPopoverDisabled = new BehaviorSubject<boolean>(false)\n\n // ngOnInit() {\n // this._seamPopoverDisabled.pipe(\n // switchMap(disabled => {\n // if (disabled) {\n // this.close()\n // return of(undefined)\n // }\n\n // if (!(this._elementRef && this._elementRef.nativeElement)) {\n // return of(undefined)\n // }\n\n // return fromEvent(this._elementRef.nativeElement, 'click')\n // })\n // ).subscribe()\n // }\n\n private _active = false\n private _closing = false\n private _overlayRef: OverlayRef | undefined | null\n private _compRef: ComponentRef<PopoverComponent> | undefined | null\n private _popoverClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | null = null\n\n @HostListener('mousedown', [ '$event' ])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n }\n }\n\n @HostListener('click', [ '$event' ])\n _onClick(event: any) {\n this.toggle()\n }\n\n @HostListener('document:keydown', [ '$event' ])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closePopover()\n }\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _focusMonitor: FocusMonitor\n ) {\n this._elementRef.nativeElement.addEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._seamPopoverBaseWidth\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(w => {\n if (this._compRef && this._compRef.instance) {\n this._compRef.instance.baseWidth = w\n this._compRef.changeDetectorRef.markForCheck()\n }\n })\n }\n\n ngOnDestroy() {\n this.closePopover()\n\n this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart,\n passiveEventListenerOptions)\n\n this._popoverClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => this._openedBy = 'touch'\n\n public toggle(): void {\n if (this._active || this.seamPopoverDisabled) {\n this.closePopover()\n } else {\n this.openPopover()\n }\n }\n\n public openPopover(): void {\n if (this._active || !this.seamPopover) { return }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n backdropClass: 'transparent',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n this._compRef = this._overlayRef.attach(new ComponentPortal(PopoverComponent, this._viewContainerRef))\n\n this._closingActionsSubscription = this._popoverClosingActions().subscribe(() => this.closePopover())\n\n this._compRef.instance.template = this.seamPopover\n this._compRef.instance.baseWidth = this.seamPopoverBaseWidth\n this._compRef.instance.popover = this\n this._compRef.instance.popoverContext = this.seamPopoverContext\n this._compRef.changeDetectorRef.markForCheck()\n\n this._popoverClosedSubscription = this._compRef.instance._afterExit.subscribe(v => {\n // console.log('closed', v)\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef.detach()\n }\n\n this._resetPopover()\n\n this._popoverClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n this._active = false\n this._closing = false\n })\n }\n\n public closePopover(): void {\n if (!this._active) { return }\n\n if (!this._closing) {\n if (this._compRef && this._compRef.instance) {\n this._closing = true\n this._compRef.instance._startExiting()\n }\n }\n }\n\n public popoverOpen(): boolean {\n return this._overlayRef?.hasAttached() ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay.position()\n .flexibleConnectedTo(origin)\n .withPositions(this.getPositions())\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n private getPositions(): ConnectionPositionPair[] {\n return [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top'\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom'\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n /**\n * Focuses the popover trigger.\n * @param origin Source of the popover trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method resets the popover when it's closed, most importantly restoring\n * focus to the popover trigger if the popover was opened via the keyboard.\n */\n private _resetPopover(): void {\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n }\n }\n\n this._openedBy = null\n }\n\n /** Returns a stream that emits whenever an action that should close the popover occurs. */\n private _popoverClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n const hover = of()\n\n return merge(backdrop, hover, detachments)\n }\n\n}\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamPopoverDirective } from './popover.directive'\nimport { PopoverComponent } from './popover/popover.component'\n\n@NgModule({\n declarations: [\n PopoverComponent,\n TheSeamPopoverDirective\n ],\n imports: [\n CommonModule,\n OverlayModule,\n PortalModule\n ],\n exports: [\n TheSeamPopoverDirective,\n OverlayModule,\n PortalModule\n ]\n})\nexport class TheSeamPopoverModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-popover.mjs","sources":["../../../projects/ui-common/popover/popover-animations.ts","../../../projects/ui-common/popover/popover/popover.component.ts","../../../projects/ui-common/popover/popover/popover.component.html","../../../projects/ui-common/popover/popover.directive.ts","../../../projects/ui-common/popover/popover.module.ts","../../../projects/ui-common/popover/theseam-ui-common-popover.ts"],"sourcesContent":["import { animate, animation, group, query, style } from '@angular/animations'\n\nexport const popoverSlideIn = animation([\n query(':self', [\n style({\n opacity: 0,\n transform: 'translateY(-70%)',\n }),\n group([\n animate('170ms linear', style({ opacity: 1 })),\n animate('220ms ease', style({ transform: 'translateY(0)' })),\n ]),\n ]),\n])\n\nexport const popoverSlideOut = animation([\n query(':self', [\n style({\n opacity: 1,\n transform: 'translateY(0)',\n }),\n group([\n animate('170ms linear', style({ opacity: 0 })),\n animate('220ms ease', style({ transform: 'translateY(-70%)' })),\n ]),\n ]),\n])\n\nexport const popoverExpandIn = animation([\n style({\n opacity: 0,\n transform: 'scale(0.8)',\n }),\n group([\n animate('100ms linear', style({ opacity: 1 })),\n animate('120ms ease', style({ transform: 'scale(1)' })),\n ]),\n])\n\nexport const popoverExpandOut = animation([\n style({\n opacity: 1,\n transform: 'scale(1)',\n }),\n group([\n animate('100ms linear', style({ opacity: 0 })),\n animate('120ms ease', style({ transform: 'scale(0.8)' })),\n ]),\n])\n","import {\n AnimationEvent,\n transition,\n trigger,\n useAnimation,\n} from '@angular/animations'\nimport { coerceNumberProperty } from '@angular/cdk/coercion'\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes'\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n} from '@angular/core'\nimport { BehaviorSubject, fromEvent, of, Subject } from 'rxjs'\nimport {\n distinctUntilChanged,\n map,\n startWith,\n switchMap,\n takeUntil,\n} from 'rxjs/operators'\n\nimport { popoverExpandIn, popoverExpandOut } from '../popover-animations'\nimport { TheSeamPopoverDirective } from '../popover.directive'\n\n@Component({\n selector: 'seam-popover',\n templateUrl: './popover.component.html',\n styleUrls: ['./popover.component.scss'],\n animations: [\n trigger('slideDown', [\n transition(':enter', useAnimation(popoverExpandIn)),\n transition(':leave', useAnimation(popoverExpandOut)),\n ]),\n ],\n host: {\n class: 'popover show m-2 position-static',\n '[@slideDown]': `{\n value: _state,\n params: {\n enterAnimationDuration: enterAnimationDuration,\n exitAnimationDuration: exitAnimationDuration\n }\n }`,\n '(@slideDown.start)': '_onAnimationStart($event)',\n '(@slideDown.done)': '_animationDone.next($event)',\n '[style.width]': '_popoverWidth',\n '[attr.role]': '\"dialog\"',\n '[attr.tabindex]': '-1',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class PopoverComponent implements OnInit, OnDestroy {\n private readonly _ngUnsubscribe = new Subject<void>()\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms'\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms'\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter'\n\n /** A subject emitting before the dialog enters the view. */\n _beforeEnter = new Subject<void>()\n\n /** A subject emitting after the dialog enters the view. */\n _afterEnter = new Subject<void>()\n\n /** A subject emitting before the dialog exits the view. */\n _beforeExit = new Subject<void>()\n\n /** A subject emitting after the dialog exits the view. */\n _afterExit = new Subject<void>()\n\n /** Stream of animation `done` events. */\n _animationDone = new Subject<AnimationEvent>()\n\n // @HostBinding('attr.role') get _role() { return this._config.role }\n\n @Input() template: TemplateRef<any> | undefined | null\n\n // @Output() readonly closed = new EventEmitter<void | 'click' | 'keydown'>()\n\n @Input() popoverClass: string | undefined | null\n\n @Input() popover: TheSeamPopoverDirective | undefined | null\n\n @Input() popoverContext: any\n\n /**\n * Defines a width for a popover that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get baseWidth() {\n return this._baseWidth.value\n }\n set baseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._baseWidth.value) {\n this._baseWidth.next(_val)\n }\n }\n private _baseWidth = new BehaviorSubject<number | null>(600)\n // _popoverWidth$: Observable<string | undefined>\n _popoverWidth: string | undefined\n\n constructor(\n private _changeDetectorRef: ChangeDetectorRef,\n // TODO: Implement PopoverConfig\n ) {\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone\n .pipe(\n distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState\n }),\n )\n .subscribe((event) => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._afterEnter.next()\n this._afterEnter.complete()\n }\n\n if (\n event.fromState === 'enter' &&\n (event.toState === 'void' || event.toState === 'exit')\n ) {\n this._afterExit.next()\n this._afterExit.complete()\n }\n })\n }\n\n ngOnInit() {\n // this._popoverWidth$ =\n this._baseWidth\n .pipe(\n switchMap((baseWidth) => {\n if (baseWidth) {\n return fromEvent(window, 'resize').pipe(\n startWith(undefined),\n map(() =>\n window.innerWidth < baseWidth\n ? `${window.innerWidth}px`\n : `${baseWidth}px`,\n ),\n )\n }\n return of(undefined)\n }),\n takeUntil(this._ngUnsubscribe),\n )\n .subscribe((w) => {\n this._popoverWidth = w\n this._changeDetectorRef.markForCheck()\n })\n }\n\n ngOnDestroy() {\n // this.closed.complete()\n this._animationDone.complete()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit'\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck()\n }\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next()\n this._beforeEnter.complete()\n }\n if (\n event.fromState === 'enter' &&\n (event.toState === 'void' || event.toState === 'exit')\n ) {\n this._beforeExit.next()\n this._beforeExit.complete()\n }\n }\n\n /** Handle a keyboard event from the menu, delegating to the appropriate action. */\n @HostListener('keydown', ['$event'])\n _handleKeydown(event: KeyboardEvent) {\n const keyCode = event.keyCode\n\n switch (keyCode) {\n case ESCAPE:\n if (!hasModifierKey(event)) {\n event.preventDefault()\n // this.closed.emit('keydown')\n this._startExiting()\n }\n break\n }\n }\n}\n","<div class=\"popover-body\">\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-template\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{\n $implicit: popover,\n popover: popover,\n popoverContext: popoverContext,\n }\"\n ></ng-template>\n </ng-container>\n\n <ng-template #noTemplate>\n Example\n <!-- <ng-content></ng-content> -->\n </ng-template>\n</div>\n","import {\n FocusMonitor,\n FocusOrigin,\n isFakeMousedownFromScreenReader,\n} from '@angular/cdk/a11y'\nimport {\n coerceBooleanProperty,\n coerceNumberProperty,\n} from '@angular/cdk/coercion'\nimport { ESCAPE } from '@angular/cdk/keycodes'\nimport {\n ConnectionPositionPair,\n Overlay,\n OverlayRef,\n PositionStrategy,\n} from '@angular/cdk/overlay'\nimport { normalizePassiveListenerOptions } from '@angular/cdk/platform'\nimport { ComponentPortal } from '@angular/cdk/portal'\nimport {\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core'\nimport {\n BehaviorSubject,\n fromEvent,\n merge,\n of,\n Subject,\n Subscription,\n} from 'rxjs'\nimport { switchMap, takeUntil } from 'rxjs/operators'\n\nimport { PopoverComponent } from './popover/popover.component'\n\n/** Options for binding a passive event listener. */\nconst passiveEventListenerOptions = normalizePassiveListenerOptions({\n passive: true,\n})\n\n@Directive({\n selector: '[seamPopover]',\n host: {\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'popoverOpen() || null',\n },\n exportAs: 'seamPopover',\n standalone: false,\n})\nexport class TheSeamPopoverDirective implements OnDestroy {\n private readonly _ngUnsubscribe = new Subject<void>()\n\n @Input() seamPopover?: TemplateRef<any> | null\n\n @Input() seamPopoverContext?: any\n\n /**\n * Defines a width for a popover that will scale down if the window innerWidth is\n * smaller than the value.\n */\n @Input()\n get seamPopoverBaseWidth() {\n return this._seamPopoverBaseWidth.value\n }\n set seamPopoverBaseWidth(value: number | null) {\n const _val = coerceNumberProperty(value, null)\n if (_val !== this._seamPopoverBaseWidth.value) {\n this._seamPopoverBaseWidth.next(_val)\n }\n }\n private _seamPopoverBaseWidth = new BehaviorSubject<number | null>(null)\n\n @Input()\n get seamPopoverDisabled() {\n return this._seamPopoverDisabled.value\n }\n set seamPopoverDisabled(val: boolean) {\n this._seamPopoverDisabled.next(coerceBooleanProperty(val))\n }\n private _seamPopoverDisabled = new BehaviorSubject<boolean>(false)\n\n // ngOnInit() {\n // this._seamPopoverDisabled.pipe(\n // switchMap(disabled => {\n // if (disabled) {\n // this.close()\n // return of(undefined)\n // }\n\n // if (!(this._elementRef && this._elementRef.nativeElement)) {\n // return of(undefined)\n // }\n\n // return fromEvent(this._elementRef.nativeElement, 'click')\n // })\n // ).subscribe()\n // }\n\n private _active = false\n private _closing = false\n private _overlayRef: OverlayRef | undefined | null\n private _compRef: ComponentRef<PopoverComponent> | undefined | null\n private _popoverClosedSubscription = Subscription.EMPTY\n private _closingActionsSubscription = Subscription.EMPTY\n\n public restoreFocus = true\n\n // Tracking input type is necessary so it's possible to only auto-focus\n // the first item of the list when the menu is opened via the keyboard\n _openedBy: 'mouse' | 'touch' | null = null\n\n @HostListener('mousedown', ['$event'])\n _onMouseDown(event: MouseEvent) {\n if (!isFakeMousedownFromScreenReader(event)) {\n // Since right or middle button clicks won't trigger the `click` event,\n // we shouldn't consider the menu as opened by mouse in those cases.\n this._openedBy = event.button === 0 ? 'mouse' : null\n }\n }\n\n @HostListener('click', ['$event'])\n _onClick(event: any) {\n this.toggle()\n }\n\n @HostListener('document:keydown', ['$event'])\n _onDocumentKeydown(event: any) {\n if (event.keyCode === ESCAPE) {\n this.closePopover()\n }\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _focusMonitor: FocusMonitor,\n ) {\n this._elementRef.nativeElement.addEventListener(\n 'touchstart',\n this._handleTouchStart,\n passiveEventListenerOptions,\n )\n\n this._seamPopoverBaseWidth\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe((w) => {\n if (this._compRef && this._compRef.instance) {\n this._compRef.instance.baseWidth = w\n this._compRef.changeDetectorRef.markForCheck()\n }\n })\n }\n\n ngOnDestroy() {\n this.closePopover()\n\n this._elementRef.nativeElement.removeEventListener(\n 'touchstart',\n this._handleTouchStart,\n passiveEventListenerOptions,\n )\n\n this._popoverClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n this._ngUnsubscribe.next(undefined)\n this._ngUnsubscribe.complete()\n }\n\n /**\n * Handles touch start events on the trigger.\n * Needs to be an arrow function so we can easily use addEventListener and removeEventListener.\n */\n private _handleTouchStart = () => (this._openedBy = 'touch')\n\n public toggle(): void {\n if (this._active || this.seamPopoverDisabled) {\n this.closePopover()\n } else {\n this.openPopover()\n }\n }\n\n public openPopover(): void {\n if (this._active || !this.seamPopover) {\n return\n }\n this._active = true\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n backdropClass: 'transparent',\n positionStrategy: this.getOverlayPosition(this._elementRef.nativeElement),\n })\n\n this._compRef = this._overlayRef.attach(\n new ComponentPortal(PopoverComponent, this._viewContainerRef),\n )\n\n this._closingActionsSubscription = this._popoverClosingActions().subscribe(\n () => this.closePopover(),\n )\n\n this._compRef.instance.template = this.seamPopover\n this._compRef.instance.baseWidth = this.seamPopoverBaseWidth\n this._compRef.instance.popover = this\n this._compRef.instance.popoverContext = this.seamPopoverContext\n this._compRef.changeDetectorRef.markForCheck()\n\n this._popoverClosedSubscription =\n this._compRef.instance._afterExit.subscribe((v) => {\n // console.log('closed', v)\n if (this._overlayRef?.hasAttached()) {\n this._overlayRef.detach()\n }\n\n this._resetPopover()\n\n this._popoverClosedSubscription.unsubscribe()\n this._closingActionsSubscription.unsubscribe()\n\n this._active = false\n this._closing = false\n })\n }\n\n public closePopover(): void {\n if (!this._active) {\n return\n }\n\n if (!this._closing) {\n if (this._compRef && this._compRef.instance) {\n this._closing = true\n this._compRef.instance._startExiting()\n }\n }\n }\n\n public popoverOpen(): boolean {\n return this._overlayRef?.hasAttached() ?? false\n }\n\n private getOverlayPosition(origin: HTMLElement): PositionStrategy {\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions(this.getPositions())\n .withFlexibleDimensions(false)\n .withPush(true)\n\n return positionStrategy\n }\n\n private getPositions(): ConnectionPositionPair[] {\n return [\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]\n }\n\n /**\n * Focuses the popover trigger.\n * @param origin Source of the popover trigger's focus.\n */\n focus(origin: FocusOrigin = 'program') {\n if (this._focusMonitor) {\n this._focusMonitor.focusVia(this._elementRef, origin)\n } else {\n this._elementRef.nativeElement.focus()\n }\n }\n\n /**\n * This method resets the popover when it's closed, most importantly restoring\n * focus to the popover trigger if the popover was opened via the keyboard.\n */\n private _resetPopover(): void {\n // We should reset focus if the user is navigating using a keyboard or\n // if we have a top-level trigger which might cause focus to be lost\n // when clicking on the backdrop.\n if (this.restoreFocus) {\n if (!this._openedBy) {\n // Note that the focus style will show up both for `program` and\n // `keyboard` so we don't have to specify which one it is.\n this.focus()\n }\n }\n\n this._openedBy = null\n }\n\n /** Returns a stream that emits whenever an action that should close the popover occurs. */\n private _popoverClosingActions() {\n const backdrop = this._overlayRef?.backdropClick() ?? of()\n const detachments = this._overlayRef?.detachments() ?? of()\n const hover = of()\n\n return merge(backdrop, hover, detachments)\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamPopoverDirective } from './popover.directive'\nimport { PopoverComponent } from './popover/popover.component'\n\n@NgModule({\n declarations: [PopoverComponent, TheSeamPopoverDirective],\n imports: [CommonModule, OverlayModule, PortalModule],\n exports: [TheSeamPopoverDirective, OverlayModule, PortalModule],\n})\nexport class TheSeamPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}