shared-lib-angular 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/.jest-cache/haste-map-9a3a3745ceefdbbde8dc96f3a11cb645-3313177a4f89a162d7e60aa270d6b5d6-d877677507d3d7567ce00a92135137ab +0 -0
  2. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/00/appconfig_00660af3355c71a72b8aafc720c254bb +2876 -0
  3. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/00/appconfig_00660af3355c71a72b8aafc720c254bb.map +1 -0
  4. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/00/every_00ea673d9604654690cab843fc8d8314 +22 -0
  5. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/00/every_00ea673d9604654690cab843fc8d8314.map +1 -0
  6. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/01/signal_019d00f4a5bdafd54307cfe5834fe796 +473 -0
  7. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/01/signal_019d00f4a5bdafd54307cfe5834fe796.map +7 -0
  8. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/02/exhaustAll_026083d1cce38f6911e761c16eef3d8a +11 -0
  9. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/02/exhaustAll_026083d1cce38f6911e761c16eef3d8a.map +1 -0
  10. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/intervalProvider_039ba6649af0878c191dfc0232ba33bb +52 -0
  11. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/intervalProvider_039ba6649af0878c191dfc0232ba33bb.map +1 -0
  12. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/loginconfiginterface_032bcdb7ef7be7283c308534eb016055 +106 -0
  13. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/loginconfiginterface_032bcdb7ef7be7283c308534eb016055.map +1 -0
  14. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/router_module_0320e629edfbb4fca0e75956de46b6d1 +1097 -0
  15. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/router_module_0320e629edfbb4fca0e75956de46b6d1.map +7 -0
  16. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/windowCount_03de01b105e8b75219fbc733a8fedb95 +79 -0
  17. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/03/windowCount_03de01b105e8b75219fbc733a8fedb95.map +1 -0
  18. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/05/browser_055ace85954b6943b58763b1108ccf12 +447 -0
  19. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/05/browser_055ace85954b6943b58763b1108ccf12.map +7 -0
  20. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/05/skip_057d7b1b3d1f246b35050c7ccf270a63 +10 -0
  21. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/05/skip_057d7b1b3d1f246b35050c7ccf270a63.map +1 -0
  22. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/06/schedulePromise_064651f3ace52a5a5d96f68314477e73 +12 -0
  23. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/06/schedulePromise_064651f3ace52a5a5d96f68314477e73.map +1 -0
  24. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/07/NotificationFactories_074c93396e1b1d62e7726ae8e260c235 +22 -0
  25. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/07/NotificationFactories_074c93396e1b1d62e7726ae8e260c235.map +1 -0
  26. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/07/testing_079979d81f362174b548c428f972337a +2952 -0
  27. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/07/testing_079979d81f362174b548c428f972337a.map +7 -0
  28. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/08/expand_0834ec9bae8fdda9fdcf6f218c0aa977 +17 -0
  29. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/08/expand_0834ec9bae8fdda9fdcf6f218c0aa977.map +1 -0
  30. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0a/authorizationservice_0a4bddc2811eebff94ab3084863255e6 +2329 -0
  31. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0a/authorizationservice_0a4bddc2811eebff94ab3084863255e6.map +1 -0
  32. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0a/last_0a681bf522e482a763682ee8f10bf6c9 +18 -0
  33. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0a/last_0a681bf522e482a763682ee8f10bf6c9.map +1 -0
  34. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0b/pairs_0bdbd8525961358b23ffad7d9789a968 +10 -0
  35. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0b/pairs_0bdbd8525961358b23ffad7d9789a968.map +1 -0
  36. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0d/immediateProvider_0d7f5944f088c0dabae14a12eca2b9d8 +51 -0
  37. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0d/immediateProvider_0d7f5944f088c0dabae14a12eca2b9d8.map +1 -0
  38. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0d/scan_0daefd10f43473197937af7f8452ec9d +11 -0
  39. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0d/scan_0daefd10f43473197937af7f8452ec9d.map +1 -0
  40. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0e/retry_0e69e48fa2132882bdcdd05127f2ea7d +76 -0
  41. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/0e/retry_0e69e48fa2132882bdcdd05127f2ea7d.map +1 -0
  42. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/10/connect_105a8433fbea3cf741b136868b5951ba +24 -0
  43. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/10/connect_105a8433fbea3cf741b136868b5951ba.map +1 -0
  44. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/11/configservice_116e7dcf57d3d950117a5aa042cc0276 +902 -0
  45. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/11/configservice_116e7dcf57d3d950117a5aa042cc0276.map +1 -0
  46. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/12/AsyncSubject_120a173bd57e247e7f3ae18d0fd9b0fa +59 -0
  47. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/12/AsyncSubject_120a173bd57e247e7f3ae18d0fd9b0fa.map +1 -0
  48. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/12/repeatWhen_12cbec784a31a01dab7e78fe5e785053 +51 -0
  49. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/12/repeatWhen_12cbec784a31a01dab7e78fe5e785053.map +1 -0
  50. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/12/timeout_12ee70a93a9cd2707866c8eb02e10ad5 +66 -0
  51. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/12/timeout_12ee70a93a9cd2707866c8eb02e10ad5.map +1 -0
  52. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/14/count_149d69890a146cbacf66e6c02e77bd70 +10 -0
  53. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/14/count_149d69890a146cbacf66e6c02e77bd70.map +1 -0
  54. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/17/concat_174ab4f709f4956224457d08efab3503 +49 -0
  55. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/17/concat_174ab4f709f4956224457d08efab3503.map +1 -0
  56. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/17/throttle_17dfd679b2c59a6682f69508ee864ece +50 -0
  57. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/17/throttle_17dfd679b2c59a6682f69508ee864ece.map +1 -0
  58. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/18/QueueAction_18ebd8a34d165e459d10416b5abb2871 +59 -0
  59. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/18/QueueAction_18ebd8a34d165e459d10416b5abb2871.map +1 -0
  60. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/18/sequenceEqual_18018ebae3a1cc1813ae68980e76eff3 +47 -0
  61. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/18/sequenceEqual_18018ebae3a1cc1813ae68980e76eff3.map +1 -0
  62. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/19/delay_19f4d0866dea676d2bf43640461b8bfd +16 -0
  63. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/19/delay_19f4d0866dea676d2bf43640461b8bfd.map +1 -0
  64. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/19/throwUnobservableError_19baf3c85f87dad02f0536ca4e5cd60b +9 -0
  65. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/19/throwUnobservableError_19baf3c85f87dad02f0536ca4e5cd60b.map +1 -0
  66. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1a/windowWhen_1ac92e99f6e696e8f4204c5e4ebccf14 +43 -0
  67. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1a/windowWhen_1ac92e99f6e696e8f4204c5e4ebccf14.map +1 -0
  68. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1b/publishBehavior_1bf352339730e38d34a5d5e153bf7ebb +14 -0
  69. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1b/publishBehavior_1bf352339730e38d34a5d5e153bf7ebb.map +1 -0
  70. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1c/router_1c347a355ab0892e02fa5e69908d9080 +128 -0
  71. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1c/router_1c347a355ab0892e02fa5e69908d9080.map +7 -0
  72. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1d/logincomponent_1d4d7655bd3ebd5415f5b3e5b7f940be +2 -0
  73. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1e/isInteropObservable_1efea59365a17c9061ea4e21e7f2c6ae +11 -0
  74. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1e/isInteropObservable_1efea59365a17c9061ea4e21e7f2c6ae.map +1 -0
  75. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1e/sampleTime_1ed0a693b811e901145a88e55e6945d0 +15 -0
  76. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1e/sampleTime_1ed0a693b811e901145a88e55e6945d0.map +1 -0
  77. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1f/asap_1f8dd8afdbfd6d830ea655a48958de6e +9 -0
  78. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1f/asap_1f8dd8afdbfd6d830ea655a48958de6e.map +1 -0
  79. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1f/authenticationservice_1f271b3e269ad8b2e94278f0b9e63c1e +4527 -0
  80. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/1f/authenticationservice_1f271b3e269ad8b2e94278f0b9e63c1e.map +1 -0
  81. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/21/fromSubscribable_218d9c2a708868b4ddcc33c959eb246d +10 -0
  82. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/21/fromSubscribable_218d9c2a708868b4ddcc33c959eb246d.map +1 -0
  83. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/22/mergeAll_22eabe4111038330cd0354da75bfb831 +14 -0
  84. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/22/mergeAll_22eabe4111038330cd0354da75bfb831.map +1 -0
  85. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/22/windowToggle_22ecc9529597f42519239efca8f4219f +90 -0
  86. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/22/windowToggle_22ecc9529597f42519239efca8f4219f.map +1 -0
  87. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/24/distinct_246654442158ec1661624139f1fcb40e +23 -0
  88. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/24/distinct_246654442158ec1661624139f1fcb40e.map +1 -0
  89. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/25/share_258b700a5bd9b287b2e67f4bf4bfa461 +120 -0
  90. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/25/share_258b700a5bd9b287b2e67f4bf4bfa461.map +1 -0
  91. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/26/scheduled_2667ac0ca964dea582df7f61bfaa619c +42 -0
  92. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/26/scheduled_2667ac0ca964dea582df7f61bfaa619c.map +1 -0
  93. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/28/Subject_288efa25f7749b82e5c2f60ffe1a32cc +202 -0
  94. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/28/Subject_288efa25f7749b82e5c2f60ffe1a32cc.map +1 -0
  95. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/28/testing_28adef3af187b963516380fd8076524a +60 -0
  96. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/28/testing_28adef3af187b963516380fd8076524a.map +7 -0
  97. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2c/exhaust_2c83cc366daf6fab56f7b1ef66317120 +7 -0
  98. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2c/exhaust_2c83cc366daf6fab56f7b1ef66317120.map +1 -0
  99. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2c/innerFrom_2c13de9f6df211e5ae68d63f44bc7b62 +272 -0
  100. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2c/innerFrom_2c13de9f6df211e5ae68d63f44bc7b62.map +1 -0
  101. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2c/mergeScan_2ca2d53a5d5527ac81b46bc4d0779542 +19 -0
  102. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2c/mergeScan_2ca2d53a5d5527ac81b46bc4d0779542.map +1 -0
  103. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2d/EmptyError_2d0d787ec6b758e32091ea628b5fd1a9 +13 -0
  104. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2d/EmptyError_2d0d787ec6b758e32091ea628b5fd1a9.map +1 -0
  105. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2d/concat_2d1fb893164794d1099ee55398b2485c +16 -0
  106. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2d/concat_2d1fb893164794d1099ee55398b2485c.map +1 -0
  107. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2f/publish_2fdddf4dfd0b97382056cce93cc68bce +12 -0
  108. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2f/publish_2fdddf4dfd0b97382056cce93cc68bce.map +1 -0
  109. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2f/testing_2f48dda6406d9713aab2c6abc3f524d1 +589 -0
  110. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/2f/testing_2f48dda6406d9713aab2c6abc3f524d1.map +7 -0
  111. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/32/combineLatestAll_32d3966d0993446ff932e08bac6446d1 +11 -0
  112. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/32/combineLatestAll_32d3966d0993446ff932e08bac6446d1.map +1 -0
  113. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/32/dateTimestampProvider_322db52a6c79e9f9701dfb8c5d689ce5 +11 -0
  114. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/32/dateTimestampProvider_322db52a6c79e9f9701dfb8c5d689ce5.map +1 -0
  115. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/32/skipLast_32ebd97dc9255e3b917578177464899e +33 -0
  116. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/32/skipLast_32ebd97dc9255e3b917578177464899e.map +1 -0
  117. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/33/ReplaySubject_3311b511a16d8b0c3e23304eebb40d3e +84 -0
  118. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/33/ReplaySubject_3311b511a16d8b0c3e23304eebb40d3e.map +1 -0
  119. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/34/find_34c22ca010467918d87f33193ce95ff7 +28 -0
  120. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/34/find_34c22ca010467918d87f33193ce95ff7.map +1 -0
  121. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/35/Subscriber_3541130fb10b4a537607b957f4251df0 +204 -0
  122. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/35/Subscriber_3541130fb10b4a537607b957f4251df0.map +1 -0
  123. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/36/OperatorSubscriber_362c0ba359aef05d6de98c8815507491 +82 -0
  124. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/36/OperatorSubscriber_362c0ba359aef05d6de98c8815507491.map +1 -0
  125. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/38/common_38e0955cd641d1e06029b8851ecf3c8b +1500 -0
  126. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/38/common_38e0955cd641d1e06029b8851ecf3c8b.map +7 -0
  127. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/38/isAsyncIterable_38a51f2abc798a774e04d8b7cac3fb18 +10 -0
  128. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/38/isAsyncIterable_38a51f2abc798a774e04d8b7cac3fb18.map +1 -0
  129. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/NotFoundError_39e0e5a4d3fc380d4ca53dbc3f1d4f43 +13 -0
  130. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/NotFoundError_39e0e5a4d3fc380d4ca53dbc3f1d4f43.map +1 -0
  131. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/appconfiginterface_39cbb9d9c321a775c3d6816280463653 +60 -0
  132. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/appconfiginterface_39cbb9d9c321a775c3d6816280463653.map +1 -0
  133. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/firstValueFrom_391d26a44a60b3dc0c683f75416342ba +29 -0
  134. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/firstValueFrom_391d26a44a60b3dc0c683f75416342ba.map +1 -0
  135. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/using_397c2ad02f41ed947243f0477e969be4 +22 -0
  136. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/39/using_397c2ad02f41ed947243f0477e969be4.map +1 -0
  137. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3a/takeWhile_3a9829a881228fdf558f9d71757646d0 +21 -0
  138. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3a/takeWhile_3a9829a881228fdf558f9d71757646d0.map +1 -0
  139. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3b/scheduleArray_3bdab1a240bd3c32636272eedf77cfad +23 -0
  140. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3b/scheduleArray_3bdab1a240bd3c32636272eedf77cfad.map +1 -0
  141. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3c/max_3c0e0f730a77269602626ae8ef245a1e +11 -0
  142. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3c/max_3c0e0f730a77269602626ae8ef245a1e.map +1 -0
  143. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3c/take_3c026b1f7917b04e5f2bbc4223289d9f +25 -0
  144. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3c/take_3c026b1f7917b04e5f2bbc4223289d9f.map +1 -0
  145. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3d/location_3def1246f95990cfebbab11e528ab266 +497 -0
  146. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3d/location_3def1246f95990cfebbab11e528ab266.map +7 -0
  147. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3e/interval_3ea3b4a266fa372c186672ee3a7b5580 +20 -0
  148. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3e/interval_3ea3b4a266fa372c186672ee3a7b5580.map +1 -0
  149. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3f/attribute_3f638223526a5452b11ee75dc0250648 +43 -0
  150. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3f/attribute_3f638223526a5452b11ee75dc0250648.map +7 -0
  151. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3f/combineLatest_3f0bf7600a0d2d0cf1141ac5af85a508 +53 -0
  152. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/3f/combineLatest_3f0bf7600a0d2d0cf1141ac5af85a508.map +1 -0
  153. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/41/onErrorResumeNextWith_41672d4eb0d804acca50ecf1e4676c5b +46 -0
  154. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/41/onErrorResumeNextWith_41672d4eb0d804acca50ecf1e4676c5b.map +1 -0
  155. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/41/resource_41fe82c252d8f7625f81e4ed65f47b01 +577 -0
  156. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/41/resource_41fe82c252d8f7625f81e4ed65f47b01.map +7 -0
  157. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/42/not_42d94d1e1986bd9f02192b58a49a4a10 +9 -0
  158. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/42/not_42d94d1e1986bd9f02192b58a49a4a10.map +1 -0
  159. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/43/combineAll_43bc2b5905cd2c6f74dc8b64523a6c0d +7 -0
  160. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/43/combineAll_43bc2b5905cd2c6f74dc8b64523a6c0d.map +1 -0
  161. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/45/effect_45da71956a042b04e0c80617e1abea70 +154 -0
  162. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/45/effect_45da71956a042b04e0c80617e1abea70.map +7 -0
  163. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/45/pluck_45d34d7b28cb92d486c5c549c829d4c7 +30 -0
  164. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/45/pluck_45d34d7b28cb92d486c5c549c829d4c7.map +1 -0
  165. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/45/timeInterval_45fd794b2ec592d3ec1ec38cf56a5aba +31 -0
  166. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/45/timeInterval_45fd794b2ec592d3ec1ec38cf56a5aba.map +1 -0
  167. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/46/animationFrames_46ea857479451d7367337bd511b12139 +39 -0
  168. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/46/animationFrames_46ea857479451d7367337bd511b12139.map +1 -0
  169. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/46/scheduleIterable_46f97122ff229faf892b20877c5aa86c +37 -0
  170. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/46/scheduleIterable_46f97122ff229faf892b20877c5aa86c.map +1 -0
  171. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/47/platform_navigation_47d697bbddec9cce6b73383168a56d08 +51 -0
  172. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/47/platform_navigation_47d697bbddec9cce6b73383168a56d08.map +7 -0
  173. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/47/queue_4709f99b0fc7a82058f6b3206d3b8e4e +9 -0
  174. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/47/queue_4709f99b0fc7a82058f6b3206d3b8e4e.map +1 -0
  175. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/48/configservicespec_4885306385dc65c123e0824a1f58cb07 +87 -0
  176. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/48/configservicespec_4885306385dc65c123e0824a1f58cb07.map +1 -0
  177. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/48/debounceTime_4809c90833e6a766aa133edf2ae49b83 +51 -0
  178. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/48/debounceTime_4809c90833e6a766aa133edf2ae49b83.map +1 -0
  179. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/49/signals_49daedeaa3f1608b221e0e2b467fef8f +256 -0
  180. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/49/signals_49daedeaa3f1608b221e0e2b467fef8f.map +7 -0
  181. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/49/startWith_490e5e430d82b7b008b7a1b600a9ab3c +19 -0
  182. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/49/startWith_490e5e430d82b7b008b7a1b600a9ab3c.map +1 -0
  183. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4a/debug_node_4aa7d0bfa7f2471539bc6e17f2118a47 +20713 -0
  184. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4a/debug_node_4aa7d0bfa7f2471539bc6e17f2118a47.map +7 -0
  185. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4b/bindCallback_4b7735ffb109657480a3193b071be4af +10 -0
  186. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4b/bindCallback_4b7735ffb109657480a3193b071be4af.map +1 -0
  187. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4b/iterator_4b6f81592b9a6a91a1e032179adca692 +13 -0
  188. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4b/iterator_4b6f81592b9a6a91a1e032179adca692.map +1 -0
  189. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4e/zip_4e4b1d528e64e46b2cf212e69c345b68 +46 -0
  190. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/4e/zip_4e4b1d528e64e46b2cf212e69c345b68.map +1 -0
  191. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/50/flatMap_50ee03966593fc03915ea67e31223a61 +7 -0
  192. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/50/flatMap_50ee03966593fc03915ea67e31223a61.map +1 -0
  193. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/50/reduce_50207e757e7dd0895fbaacf449d409d1 +11 -0
  194. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/50/reduce_50207e757e7dd0895fbaacf449d409d1.map +1 -0
  195. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/51/weak_ref_511653ddf85d364ebc878405e6282fc5 +30 -0
  196. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/51/weak_ref_511653ddf85d364ebc878405e6282fc5.map +7 -0
  197. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/52/observeOn_52b18ee03b1120882b3e60875c787ab3 +17 -0
  198. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/52/observeOn_52b18ee03b1120882b3e60875c787ab3.map +1 -0
  199. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/53/dashboardcomponent_53c32631c99debadbc5a44e7b150fd72 +2 -0
  200. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/53/fromEventPattern_539dbdf41c03ede2cfa34f62fbbc7d75 +25 -0
  201. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/53/fromEventPattern_539dbdf41c03ede2cfa34f62fbbc7d75.map +1 -0
  202. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/53/groupBy_53bdc3415d8cb7d339b4770b31db1c9b +68 -0
  203. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/53/groupBy_53bdc3415d8cb7d339b4770b31db1c9b.map +1 -0
  204. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/54/AnimationFrameAction_5423f59105ed7d626abac6a69f07bfe4 +60 -0
  205. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/54/AnimationFrameAction_5423f59105ed7d626abac6a69f07bfe4.map +1 -0
  206. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/54/scheduleReadableStreamLike_5475b804715c5be031baaec692002aab +11 -0
  207. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/54/scheduleReadableStreamLike_5475b804715c5be031baaec692002aab.map +1 -0
  208. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/55/animationFrame_55e052bcb509243da3536ac36e4aa83f +9 -0
  209. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/55/animationFrame_55e052bcb509243da3536ac36e4aa83f.map +1 -0
  210. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/55/scheduleObservable_5569cfab2019142d0fcae5fc384a795c +12 -0
  211. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/55/scheduleObservable_5569cfab2019142d0fcae5fc384a795c.map +1 -0
  212. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/angularoauth2oidc_5796eb8bb1f1dd6932dae6bb664d1cbb +2766 -0
  213. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/angularoauth2oidc_5796eb8bb1f1dd6932dae6bb664d1cbb.map +7 -0
  214. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/endWith_57bd076f03a5529b5669a4bd386a0648 +44 -0
  215. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/endWith_57bd076f03a5529b5669a4bd386a0648.map +1 -0
  216. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/isArrayLike_57dfd0465318da2cbc8fa3043aca76bc +6 -0
  217. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/isArrayLike_57dfd0465318da2cbc8fa3043aca76bc.map +1 -0
  218. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/publishLast_574acb89597ecb7584a4d54a21ce7fd0 +14 -0
  219. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/publishLast_574acb89597ecb7584a4d54a21ce7fd0.map +1 -0
  220. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/switchScan_57759ec2c9148ae2f94dd997f963cc3f +17 -0
  221. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/switchScan_57759ec2c9148ae2f94dd997f963cc3f.map +1 -0
  222. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/windowTime_57deb9c95403419ebdedc01ee2643ce1 +75 -0
  223. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/57/windowTime_57deb9c95403419ebdedc01ee2643ce1.map +1 -0
  224. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/59/BehaviorSubject_59c295137756816d9da8164415d41c40 +56 -0
  225. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/59/BehaviorSubject_59c295137756816d9da8164415d41c40.map +1 -0
  226. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5a/switchMapTo_5a6dd9823852ccc95a49d9b77bd2561d +11 -0
  227. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5a/switchMapTo_5a6dd9823852ccc95a49d9b77bd2561d.map +1 -0
  228. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5b/bufferTime_5bba3a4e339ab63d5ec157f2a2199900 +101 -0
  229. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5b/bufferTime_5bba3a4e339ab63d5ec157f2a2199900.map +1 -0
  230. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5c/shareReplay_5c312953fc0f0439193e056e78510373 +25 -0
  231. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5c/shareReplay_5c312953fc0f0439193e056e78510373.map +1 -0
  232. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5e/Action_5e72b25c73096e88490c6e9015ddb56c +37 -0
  233. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5e/Action_5e72b25c73096e88490c6e9015ddb56c.map +1 -0
  234. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5e/isIterable_5e80f397f8ed04a532027aa00c4eb453 +11 -0
  235. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5e/isIterable_5e80f397f8ed04a532027aa00c4eb453.map +1 -0
  236. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5f/race_5f51258fb60a582ab1e6aca07b21655d +38 -0
  237. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/5f/race_5f51258fb60a582ab1e6aca07b21655d.map +1 -0
  238. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/60/race_60e460c803705be956c9ad1519f27ae9 +44 -0
  239. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/60/race_60e460c803705be956c9ad1519f27ae9.map +1 -0
  240. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/61/authorizationinterface_61b3843bb141bda9133f897e585e0748 +60 -0
  241. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/61/authorizationinterface_61b3843bb141bda9133f897e585e0748.map +1 -0
  242. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/61/testing_6176dd0db4a8ad21b8d3bc1d388053dc +107 -0
  243. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/61/testing_6176dd0db4a8ad21b8d3bc1d388053dc.map +7 -0
  244. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/62/ArgumentOutOfRangeError_627b1a510e0d08fab12d924263c0d47f +13 -0
  245. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/62/ArgumentOutOfRangeError_627b1a510e0d08fab12d924263c0d47f.map +1 -0
  246. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/63/dom_renderer_63272c78e0eb510569eae3d5b5f9aeee +726 -0
  247. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/63/dom_renderer_63272c78e0eb510569eae3d5b5f9aeee.map +7 -0
  248. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/64/joinAllInternals_640e9d56539a3eec67d788a341b918ed +14 -0
  249. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/64/joinAllInternals_640e9d56539a3eec67d788a341b918ed.map +1 -0
  250. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/65/AsapScheduler_652b27b66e714bc12262aa7e97b1ef86 +51 -0
  251. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/65/AsapScheduler_652b27b66e714bc12262aa7e97b1ef86.map +1 -0
  252. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/68/mapOneOrManyArgs_689e7d9385a707593cf83ee4082dc61e +43 -0
  253. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/68/mapOneOrManyArgs_689e7d9385a707593cf83ee4082dc61e.map +1 -0
  254. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/68/partition_681d13cdb0b0bb3b0fe590ef7c5aa93c +13 -0
  255. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/68/partition_681d13cdb0b0bb3b0fe590ef7c5aa93c.map +1 -0
  256. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/69/Scheduler_69ac465fc3a0f88a5564df13752f196f +24 -0
  257. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/69/Scheduler_69ac465fc3a0f88a5564df13752f196f.map +1 -0
  258. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/authenticationservicespec_6a31910a11f7a7d88de4428592b81b41 +171 -0
  259. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/authenticationservicespec_6a31910a11f7a7d88de4428592b81b41.map +1 -0
  260. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/merge_6aeabbb04f67d52e04d5fb6bfe53c7ce +50 -0
  261. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/merge_6aeabbb04f67d52e04d5fb6bfe53c7ce.map +1 -0
  262. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/skipUntil_6a1db23a8161437968c7fac8561325fd +21 -0
  263. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/skipUntil_6a1db23a8161437968c7fac8561325fd.map +1 -0
  264. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/zipWith_6a11cd689b9f399f14e13a9589c1d30c +43 -0
  265. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6a/zipWith_6a11cd689b9f399f14e13a9589c1d30c.map +1 -0
  266. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6e/partition_6ebe586335dfe0eb9f4b65dd7f912e38 +12 -0
  267. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6e/partition_6ebe586335dfe0eb9f4b65dd7f912e38.map +1 -0
  268. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6f/generate_6fa8af747ce58c570eb002b1c00430b3 +123 -0
  269. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6f/generate_6fa8af747ce58c570eb002b1c00430b3.map +1 -0
  270. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6f/of_6f039032237bc3616cd9f88de5b34572 +16 -0
  271. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/6f/of_6f039032237bc3616cd9f88de5b34572.map +1 -0
  272. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/70/takeLast_70f2caa4d21d5bde0732d9c218ff412d +58 -0
  273. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/70/takeLast_70f2caa4d21d5bde0732d9c218ff412d.map +1 -0
  274. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/72/module_726ab71b1f0164c527681100a65aad4a +2332 -0
  275. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/72/module_726ab71b1f0164c527681100a65aad4a.map +7 -0
  276. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/73/lastValueFrom_737afa6f071e7d30fa42bdb86f84d107 +32 -0
  277. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/73/lastValueFrom_737afa6f071e7d30fa42bdb86f84d107.map +1 -0
  278. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/75/createErrorClass_75905daf41c07df2a4ea17ba294cad8a +16 -0
  279. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/75/createErrorClass_75905daf41c07df2a4ea17ba294cad8a.map +1 -0
  280. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/75/defer_75b01f8804d24bc81107cdfa51c9fd66 +13 -0
  281. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/75/defer_75b01f8804d24bc81107cdfa51c9fd66.map +1 -0
  282. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/76/filter_76c22b02ab9a8b16a2ac23ad85243e5b +14 -0
  283. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/76/filter_76c22b02ab9a8b16a2ac23ad85243e5b.map +1 -0
  284. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/76/version_76b048d35316951f4c8a9efb64028794 +119 -0
  285. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/76/version_76b048d35316951f4c8a9efb64028794.map +1 -0
  286. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/79/iif_798ee878d80215441fd62f4c46aaac1e +10 -0
  287. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/79/iif_798ee878d80215441fd62f4c46aaac1e.map +1 -0
  288. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7b/identity_7bdd4c23fb4e8612fe66d9d232584cb0 +9 -0
  289. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7b/identity_7bdd4c23fb4e8612fe66d9d232584cb0.map +1 -0
  290. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/AsyncAction_7cf5bb2a2d938bec1cf31419bc641e68 +116 -0
  291. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/AsyncAction_7cf5bb2a2d938bec1cf31419bc641e68.map +1 -0
  292. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/Subscription_7c102157fbcfac1c16274e713ebfafcb +202 -0
  293. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/Subscription_7c102157fbcfac1c16274e713ebfafcb.map +1 -0
  294. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/lift_7c74badd969dadc4de0ea5ff85e8bcfc +26 -0
  295. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/lift_7c74badd969dadc4de0ea5ff85e8bcfc.map +1 -0
  296. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/pipe_7c13629329765dd61c3ac7addd741d3c +26 -0
  297. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/pipe_7c13629329765dd61c3ac7addd741d3c.map +1 -0
  298. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/throttleTime_7c8f3b9a09e3b2380c6f5a53e9e19d73 +16 -0
  299. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7c/throttleTime_7c8f3b9a09e3b2380c6f5a53e9e19d73.map +1 -0
  300. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7d/UnsubscriptionError_7d69546cdd3ee56a0c8196e6b7a3b93b +16 -0
  301. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/7d/UnsubscriptionError_7d69546cdd3ee56a0c8196e6b7a3b93b.map +1 -0
  302. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/81/defaultIfEmpty_810b4e0604dba71c6021470672d75fe6 +22 -0
  303. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/81/defaultIfEmpty_810b4e0604dba71c6021470672d75fe6.map +1 -0
  304. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/81/pairwise_81b247ee51f59dd96b3009979157e4b9 +20 -0
  305. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/81/pairwise_81b247ee51f59dd96b3009979157e4b9.map +1 -0
  306. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/81/repeat_810a7e7909eff9a4745b563969d1ee11 +65 -0
  307. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/81/repeat_810a7e7909eff9a4745b563969d1ee11.map +1 -0
  308. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/82/authorizationguard_82de14e9b4958e2e99b8643cd395d629 +530 -0
  309. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/82/authorizationguard_82de14e9b4958e2e99b8643cd395d629.map +1 -0
  310. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/83/dashboardcomponent_833bf6a5c3619c9adaced99312164a7a +4149 -0
  311. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/83/dashboardcomponent_833bf6a5c3619c9adaced99312164a7a.map +1 -0
  312. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/88/dashboardcomponentspec_8874d89d947ada3b2913b3d96a957478 +219 -0
  313. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/88/dashboardcomponentspec_8874d89d947ada3b2913b3d96a957478.map +1 -0
  314. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/88/isFunction_880148731b92c4fdf7652bae9f17672c +9 -0
  315. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/88/isFunction_880148731b92c4fdf7652bae9f17672c.map +1 -0
  316. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/88/window_889e36acc1694a6c6859a5c14694efc6 +33 -0
  317. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/88/window_889e36acc1694a6c6859a5c14694efc6.map +1 -0
  318. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/89/core_899034079b505a592bba9a502120cfd8 +3480 -0
  319. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/89/core_899034079b505a592bba9a502120cfd8.map +7 -0
  320. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8a/isScheduler_8a1f0e526117aed8f474344e8a337001 +10 -0
  321. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8a/isScheduler_8a1f0e526117aed8f474344e8a337001.map +1 -0
  322. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8a/range_8aa1319af11190cf05b194c0eace5a96 +40 -0
  323. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8a/range_8aa1319af11190cf05b194c0eace5a96.map +1 -0
  324. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8b/connectable_8bdc7b54bdc252caf076d2e924c9ccdc +34 -0
  325. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8b/connectable_8bdc7b54bdc252caf076d2e924c9ccdc.map +1 -0
  326. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8c/debounce_8c4b06b5e96c9ce06d159c7167ad4df3 +39 -0
  327. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8c/debounce_8c4b06b5e96c9ce06d159c7167ad4df3.map +1 -0
  328. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8d/buffer_8da491f572a7ebd7fcc78973472dd554 +27 -0
  329. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8d/buffer_8da491f572a7ebd7fcc78973472dd554.map +1 -0
  330. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8e/distinctUntilChanged_8ec9a7e6a213b0da14fef2a6287426ee +30 -0
  331. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8e/distinctUntilChanged_8ec9a7e6a213b0da14fef2a6287426ee.map +1 -0
  332. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8f/animationFrameProvider_8f6b1fdd1805c32bd8a71158fe2d4f6e +68 -0
  333. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8f/animationFrameProvider_8f6b1fdd1805c32bd8a71158fe2d4f6e.map +1 -0
  334. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8f/skipWhile_8fbb2b1e98a876abf6cd45db4580345a +15 -0
  335. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8f/skipWhile_8fbb2b1e98a876abf6cd45db4580345a.map +1 -0
  336. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8f/timeoutProvider_8f5b211154fd0dfc69bcc93ffe1281d9 +52 -0
  337. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/8f/timeoutProvider_8f5b211154fd0dfc69bcc93ffe1281d9.map +1 -0
  338. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/90/arrRemove_9007c7c90914e2c67a3c7c7f7f6ed63d +12 -0
  339. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/90/arrRemove_9007c7c90914e2c67a3c7c7f7f6ed63d.map +1 -0
  340. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/90/takeUntil_90cbbe5d41852345c1c2d15693a91a4e +16 -0
  341. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/90/takeUntil_90cbbe5d41852345c1c2d15693a91a4e.map +1 -0
  342. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/90/types_902cdea8f0917627cc8393a9aa52c916 +4 -0
  343. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/90/types_902cdea8f0917627cc8393a9aa52c916.map +1 -0
  344. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/91/isPromise_91e79cccaa029e755a189ab94ff11d2a +10 -0
  345. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/91/isPromise_91e79cccaa029e755a189ab94ff11d2a.map +1 -0
  346. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/92/timestamp_929befc00c12052926227dd07e014839 +14 -0
  347. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/92/timestamp_929befc00c12052926227dd07e014839.map +1 -0
  348. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/93/mergeMap_9318b621967b6738c51ffd144f90fbe3 +23 -0
  349. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/93/mergeMap_9318b621967b6738c51ffd144f90fbe3.map +1 -0
  350. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/94/min_9467e39c730974505b268969ae4a9eef +11 -0
  351. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/94/min_9467e39c730974505b268969ae4a9eef.map +1 -0
  352. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/97/isEmpty_97e18cd152ec8cbf2572309d51321174 +19 -0
  353. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/97/isEmpty_97e18cd152ec8cbf2572309d51321174.map +1 -0
  354. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/98/toArray_986fbe7e6566dab35c8bcf0e57c131d8 +14 -0
  355. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/98/toArray_986fbe7e6566dab35c8bcf0e57c131d8.map +1 -0
  356. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/99/authorizationservicespec_99005e51e3fe0531de30cc3ebe182159 +206 -0
  357. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/99/authorizationservicespec_99005e51e3fe0531de30cc3ebe182159.map +1 -0
  358. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9a/logincomponentspec_9a5d9162e7420f6e7bfd0ec192a0e7b3 +126 -0
  359. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9a/logincomponentspec_9a5d9162e7420f6e7bfd0ec192a0e7b3.map +1 -0
  360. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9b/di_9bb73d3d1d37e03ae545cb821a24d6e4 +48 -0
  361. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9b/di_9bb73d3d1d37e03ae545cb821a24d6e4.map +7 -0
  362. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9b/single_9b7260fd4298ea61a3af48a06e07f955 +35 -0
  363. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9b/single_9b7260fd4298ea61a3af48a06e07f955.map +1 -0
  364. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9c/distinctUntilKeyChanged_9c0e259a4e26342aa529522ab260b6e2 +10 -0
  365. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9c/distinctUntilKeyChanged_9c0e259a4e26342aa529522ab260b6e2.map +1 -0
  366. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9c/reportUnhandledError_9c687bd943c7e3cb0cbe5ba362e47a57 +19 -0
  367. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9c/reportUnhandledError_9c687bd943c7e3cb0cbe5ba362e47a57.map +1 -0
  368. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9e/audit_9ef009f5c290fa05db1f116ccc1dea15 +42 -0
  369. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9e/audit_9ef009f5c290fa05db1f116ccc1dea15.map +1 -0
  370. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9f/Observable_9fa7fb170ab97af3339678f170c00580 +106 -0
  371. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9f/Observable_9fa7fb170ab97af3339678f170c00580.map +1 -0
  372. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9f/timer_9f8a9fa0c2907acec47fd64413f88e1f +45 -0
  373. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/9f/timer_9f8a9fa0c2907acec47fd64413f88e1f.map +1 -0
  374. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a1/exhaustMap_a17113d2ae51f6049da7b9126fc2f3d0 +34 -0
  375. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a1/exhaustMap_a17113d2ae51f6049da7b9126fc2f3d0.map +1 -0
  376. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a2/catchError_a2a6d4194ebf9a7b737c5162e13f9e8f +32 -0
  377. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a2/catchError_a2a6d4194ebf9a7b737c5162e13f9e8f.map +1 -0
  378. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a2/concatMapTo_a28deb2bec5c1f5c41e1087788eccbba +11 -0
  379. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a2/concatMapTo_a28deb2bec5c1f5c41e1087788eccbba.map +1 -0
  380. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a2/mergeMapTo_a263600e2e57ffe7c35a1d079bbf423f +20 -0
  381. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a2/mergeMapTo_a263600e2e57ffe7c35a1d079bbf423f.map +1 -0
  382. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a3/not_found_a3e96f6eb61e4ec43431a235d6638f02 +64 -0
  383. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/a3/not_found_a3e96f6eb61e4ec43431a235d6638f02.map +7 -0
  384. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/aa/concatMap_aa22e6b3212edabed548ee6fd704ac9b +11 -0
  385. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/aa/concatMap_aa22e6b3212edabed548ee6fd704ac9b.map +1 -0
  386. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/aa/noop_aa193fc1a61ccf323a19e2acef78f9b8 +7 -0
  387. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/aa/noop_aa193fc1a61ccf323a19e2acef78f9b8.map +1 -0
  388. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ab/argsOrArgArray_abd5775c2214bbc9529e7f5536b4b9b5 +10 -0
  389. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ab/argsOrArgArray_abd5775c2214bbc9529e7f5536b4b9b5.map +1 -0
  390. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ab/forkJoin_ab79df1ea741b3921af56378f47ac083 +52 -0
  391. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ab/forkJoin_ab79df1ea741b3921af56378f47ac083.map +1 -0
  392. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ae/scanInternals_ae3735574319bd024617b242f6f9f93b +27 -0
  393. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ae/scanInternals_ae3735574319bd024617b242f6f9f93b.map +1 -0
  394. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/af/withLatestFrom_af570814ca7c4209b836b726cd4d742c +72 -0
  395. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/af/withLatestFrom_af570814ca7c4209b836b726cd4d742c.map +1 -0
  396. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b0/args_b0aa0cda6f64d81b5a3ce9a1f1b5a1af +22 -0
  397. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b0/args_b0aa0cda6f64d81b5a3ce9a1f1b5a1af.map +1 -0
  398. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b0/concatWith_b0ad49aa785dead5921f467fc5deff89 +43 -0
  399. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b0/concatWith_b0ad49aa785dead5921f467fc5deff89.map +1 -0
  400. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b0/fromEvent_b0a59cb0e063c290accf4e07083172f5 +87 -0
  401. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b0/fromEvent_b0a59cb0e063c290accf4e07083172f5.map +1 -0
  402. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b3/bufferToggle_b398140d6a113f822cd7e55a219389eb +69 -0
  403. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b3/bufferToggle_b398140d6a113f822cd7e55a219389eb.map +1 -0
  404. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b3/mapTo_b35eaa231d63d7632d124fd0c9491899 +10 -0
  405. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b3/mapTo_b35eaa231d63d7632d124fd0c9491899.map +1 -0
  406. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b4/AsyncScheduler_b48e6adc2337360d93bc438e30261c9b +58 -0
  407. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b4/AsyncScheduler_b48e6adc2337360d93bc438e30261c9b.map +1 -0
  408. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b4/Notification_b4734e58b4d2c8624cb7168a139a0f5e +77 -0
  409. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b4/Notification_b4734e58b4d2c8624cb7168a139a0f5e.map +1 -0
  410. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b4/dematerialize_b49e3c0f02f78e9b7754a2f14dd20dc4 +14 -0
  411. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b4/dematerialize_b49e3c0f02f78e9b7754a2f14dd20dc4.map +1 -0
  412. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b5/errorContext_b5e662cfa00b7cb11e0375297f3e4bd0 +34 -0
  413. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b5/errorContext_b5e662cfa00b7cb11e0375297f3e4bd0.map +1 -0
  414. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b5/isObservable_b567e287f5b7463f88bd1726e06f5a53 +11 -0
  415. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b5/isObservable_b567e287f5b7463f88bd1726e06f5a53.map +1 -0
  416. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b6/bufferWhen_b600af3c63e2658f3ee46c1e2a5620db +28 -0
  417. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b6/bufferWhen_b600af3c63e2658f3ee46c1e2a5620db.map +1 -0
  418. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b6/concatAll_b6bada65d21367fa443476add9a9bb8f +10 -0
  419. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b6/concatAll_b6bada65d21367fa443476add9a9bb8f.map +1 -0
  420. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b7/eventdispatch_b7a6d5d3415dcade3b9c2dcbc1ec88cd +1262 -0
  421. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b7/eventdispatch_b7a6d5d3415dcade3b9c2dcbc1ec88cd.map +7 -0
  422. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b7/map_b732b01a086bf2d802b5e5372ddb5374 +16 -0
  423. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b7/map_b732b01a086bf2d802b5e5372ddb5374.map +1 -0
  424. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b9/testing_b9c34b8f3a2cff6e967d44b496301057 +330 -0
  425. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/b9/testing_b9c34b8f3a2cff6e967d44b496301057.map +7 -0
  426. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ba/delayWhen_ba0e6b593adde7fb970f5426d08ba7bd +20 -0
  427. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ba/delayWhen_ba0e6b593adde7fb970f5426d08ba7bd.map +1 -0
  428. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/bb/from_bb50ad60e07cb6d360b7f208249429b2 +11 -0
  429. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/bb/from_bb50ad60e07cb6d360b7f208249429b2.map +1 -0
  430. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/be/zip_be7b4ff5badc5c041b9ee29ad7fedde5 +79 -0
  431. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/be/zip_be7b4ff5badc5c041b9ee29ad7fedde5.map +1 -0
  432. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c0/platformbrowser_c024fceb1a0fe262d4fa22aeba203bf8 +759 -0
  433. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c0/platformbrowser_c024fceb1a0fe262d4fa22aeba203bf8.map +7 -0
  434. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c2/platformbrowserdynamic_c293e204f07ffe93a61d7d2a97d63964 +145 -0
  435. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c2/platformbrowserdynamic_c293e204f07ffe93a61d7d2a97d63964.map +7 -0
  436. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c3/Immediate_c3da4258074ed597ed071241b4c35bef +34 -0
  437. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c3/Immediate_c3da4258074ed597ed071241b4c35bef.map +1 -0
  438. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c3/ignoreElements_c355b3624a679685bd1c25d33e6bde66 +14 -0
  439. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c3/ignoreElements_c355b3624a679685bd1c25d33e6bde66.map +1 -0
  440. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c5/findIndex_c534ebcb116500af4352aa6530e9041e +11 -0
  441. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c5/findIndex_c534ebcb116500af4352aa6530e9041e.map +1 -0
  442. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c5/observable_c5f77f53d42172356a26ee7b5f9eb0fe +6 -0
  443. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c5/observable_c5f77f53d42172356a26ee7b5f9eb0fe.map +1 -0
  444. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c7/async_c75f179ff8345a7facdf5722a76ce5eb +9 -0
  445. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c7/async_c75f179ff8345a7facdf5722a76ce5eb.map +1 -0
  446. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c8/publishReplay_c8c843986a226c800553c50bf0d4986a +16 -0
  447. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c8/publishReplay_c8c843986a226c800553c50bf0d4986a.map +1 -0
  448. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c9/switchMap_c9a61e10418ff0d233e9f37ce2564722 +29 -0
  449. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c9/switchMap_c9a61e10418ff0d233e9f37ce2564722.map +1 -0
  450. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c9/tap_c9701a92d0cb05c37b5e407d2612f461 +45 -0
  451. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c9/tap_c9701a92d0cb05c37b5e407d2612f461.map +1 -0
  452. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c9/throwIfEmpty_c95930779baae066280851a904dbeb3b +24 -0
  453. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/c9/throwIfEmpty_c95930779baae066280851a904dbeb3b.map +1 -0
  454. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ca/performanceTimestampProvider_ca75d4b8a7737a06fe0103f57ecab207 +11 -0
  455. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ca/performanceTimestampProvider_ca75d4b8a7737a06fe0103f57ecab207.map +1 -0
  456. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/cd/root_effect_scheduler_cd51ef0a8f200e1abf01dc277a3a5df9 +2781 -0
  457. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/cd/root_effect_scheduler_cd51ef0a8f200e1abf01dc277a3a5df9.map +7 -0
  458. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ce/never_cee185710a6214c29143737c23fd4677 +12 -0
  459. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ce/never_cee185710a6214c29143737c23fd4677.map +1 -0
  460. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/cf/router2_cf9d43bf1bbddffad92ce6f986903a05 +4525 -0
  461. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/cf/router2_cf9d43bf1bbddffad92ce6f986903a05.map +7 -0
  462. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d0/raceWith_d051c9b953c1fd2639013e156ba6ae19 +49 -0
  463. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d0/raceWith_d051c9b953c1fd2639013e156ba6ae19.map +1 -0
  464. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d1/config_d1c9202c35f14e62ae850fe7743cae36 +12 -0
  465. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d1/config_d1c9202c35f14e62ae850fe7743cae36.map +1 -0
  466. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d3/AsapAction_d39639bf5f6b225cc38dc8c74d1af9a6 +62 -0
  467. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d3/AsapAction_d39639bf5f6b225cc38dc8c74d1af9a6.map +1 -0
  468. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d3/multicast_d36b647dfd33a398736534a046a02bf5 +18 -0
  469. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d3/multicast_d36b647dfd33a398736534a046a02bf5.map +1 -0
  470. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d4/index_d4a6e0403fbfbe6498f4f78f3d629738 +233 -0
  471. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d4/index_d4a6e0403fbfbe6498f4f78f3d629738.map +1 -0
  472. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d4/materialize_d43175ee753b655d51140c88bce1a6be +22 -0
  473. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d4/materialize_d43175ee753b655d51140c88bce1a6be.map +1 -0
  474. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d6/scheduleAsyncIterable_d6e81c64015c43541cba915cc3e31132 +28 -0
  475. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d6/scheduleAsyncIterable_d6e81c64015c43541cba915cc3e31132.map +1 -0
  476. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d7/combineLatestWith_d70435aa71a1b44c2f0fd0e5ace5c855 +43 -0
  477. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d7/combineLatestWith_d70435aa71a1b44c2f0fd0e5ace5c855.map +1 -0
  478. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/ObjectUnsubscribedError_d863d8d7ba62753dd49ed11452bb49ad +13 -0
  479. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/ObjectUnsubscribedError_d863d8d7ba62753dd49ed11452bb49ad.map +1 -0
  480. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/isReadableStreamLike_d8ac776d715d309f9290381eb737db32 +135 -0
  481. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/isReadableStreamLike_d8ac776d715d309f9290381eb737db32.map +1 -0
  482. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/mergeWith_d8c7619538423a1bf26f2b9af57b6d25 +43 -0
  483. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/mergeWith_d8c7619538423a1bf26f2b9af57b6d25.map +1 -0
  484. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/xhr_d8832649622efe3fcd143809f0f87fd4 +42 -0
  485. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/xhr_d8832649622efe3fcd143809f0f87fd4.map +7 -0
  486. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/zipAll_d804e1eccf146187e7358ac19aa173b3 +11 -0
  487. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d8/zipAll_d804e1eccf146187e7358ac19aa173b3.map +1 -0
  488. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d9/compiler_d92e4c0e6e7f4c5772f2508286502b68 +30180 -0
  489. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d9/compiler_d92e4c0e6e7f4c5772f2508286502b68.map +7 -0
  490. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d9/elementAt_d986766ccbe2107bdc7f5e669337600e +20 -0
  491. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/d9/elementAt_d986766ccbe2107bdc7f5e669337600e.map +1 -0
  492. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/db/executeSchedule_dbf7f93b0f5675ff5dd1cf6436806ec5 +27 -0
  493. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/db/executeSchedule_dbf7f93b0f5675ff5dd1cf6436806ec5.map +1 -0
  494. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/dc/bufferCount_dc0ef20dd5330da45bc2ce43a89e3e50 +109 -0
  495. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/dc/bufferCount_dc0ef20dd5330da45bc2ce43a89e3e50.map +1 -0
  496. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/dd/combineLatest_ddac0381b2fcc357b2049905db6355f8 +78 -0
  497. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/dd/combineLatest_ddac0381b2fcc357b2049905db6355f8.map +1 -0
  498. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/df/timeoutWith_df6ef9efc665a029df8ca430438b5e2f +36 -0
  499. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/df/timeoutWith_df6ef9efc665a029df8ca430438b5e2f.map +1 -0
  500. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e1/mergeInternals_e19ab8fb8b32e55949601e89605352ec +66 -0
  501. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e1/mergeInternals_e19ab8fb8b32e55949601e89605352ec.map +1 -0
  502. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e2/empty_e2792d620e14eba9bb559f5122b2c3cb +14 -0
  503. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e2/empty_e2792d620e14eba9bb559f5122b2c3cb.map +1 -0
  504. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e2/retryWhen_e2032835cf0c34e73ce7119acf419768 +37 -0
  505. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e2/retryWhen_e2032835cf0c34e73ce7119acf419768.map +1 -0
  506. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e3/SequenceError_e36656846dc4f82f2b68577130e16686 +13 -0
  507. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e3/SequenceError_e36656846dc4f82f2b68577130e16686.map +1 -0
  508. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e5/bindNodeCallback_e52282e47a455913b29058a2a317f57d +10 -0
  509. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e5/bindNodeCallback_e52282e47a455913b29058a2a317f57d.map +1 -0
  510. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e5/merge_e588ad7be7a101e8cd64100ee5ccd900 +28 -0
  511. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e5/merge_e588ad7be7a101e8cd64100ee5ccd900.map +1 -0
  512. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e5/refCount_e59caf6d2da72ecc70af816bec0f59cf +31 -0
  513. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e5/refCount_e59caf6d2da72ecc70af816bec0f59cf.map +1 -0
  514. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e6/authenticationconfig_e61ac491e3ffa80028d768cb76d35be4 +241 -0
  515. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e6/authenticationconfig_e61ac491e3ffa80028d768cb76d35be4.map +1 -0
  516. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e7/finalize_e722a897efe5058701cb7bd1994377c5 +17 -0
  517. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e7/finalize_e722a897efe5058701cb7bd1994377c5.map +1 -0
  518. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e9/common_module_e95b66602cfdfe1dc86f7d88b9daba39 +2817 -0
  519. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/e9/common_module_e95b66602cfdfe1dc86f7d88b9daba39.map +7 -0
  520. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/eb/index_eb85d2667ebd581897f23dd840905668 +363 -0
  521. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/eb/index_eb85d2667ebd581897f23dd840905668.map +1 -0
  522. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/eb/setupjest_eb921e8057ec61c0cb0a6b18b615e94d +65 -0
  523. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/eb/setupjest_eb921e8057ec61c0cb0a6b18b615e94d.map +1 -0
  524. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ec/http_ec606ed9a5da539b70c571c1db03c6c3 +411 -0
  525. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ec/http_ec606ed9a5da539b70c571c1db03c6c3.map +7 -0
  526. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ed/first_ed8d191ff8c8fcd5257867021e5d7644 +18 -0
  527. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ed/first_ed8d191ff8c8fcd5257867021e5d7644.map +1 -0
  528. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ee/argsArgArrayOrObject_eee0e6f9213cd3248bb235a57c58fe9d +27 -0
  529. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ee/argsArgArrayOrObject_eee0e6f9213cd3248bb235a57c58fe9d.map +1 -0
  530. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f0/ConnectableObservable_f019284d46b19e0ac701f4e5f966877b +83 -0
  531. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f0/ConnectableObservable_f019284d46b19e0ac701f4e5f966877b.map +1 -0
  532. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f0/bindCallbackInternals_f09fffe73e1327185aa6b27297978a6b +112 -0
  533. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f0/bindCallbackInternals_f09fffe73e1327185aa6b27297978a6b.map +1 -0
  534. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f1/VirtualTimeScheduler_f1e0966a6811c115d2e1b987a5bccbb1 +136 -0
  535. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f1/VirtualTimeScheduler_f1e0966a6811c115d2e1b987a5bccbb1.map +1 -0
  536. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f1/auditTime_f1f81974926fcabf16721c844c492587 +15 -0
  537. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f1/auditTime_f1f81974926fcabf16721c844c492587.map +1 -0
  538. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f3/switchAll_f36891bbdd859d95639bf39ea11871b3 +11 -0
  539. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f3/switchAll_f36891bbdd859d95639bf39ea11871b3.map +1 -0
  540. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f5/isDate_f580e5e8dd37953d4077ccfd3d2f3238 +9 -0
  541. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f5/isDate_f580e5e8dd37953d4077ccfd3d2f3238.map +1 -0
  542. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f6/onErrorResumeNext_f67503f4ac86fb2327db7b977000463a +40 -0
  543. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/f6/onErrorResumeNext_f67503f4ac86fb2327db7b977000463a.map +1 -0
  544. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fa/AnimationFrameScheduler_fa55eaf8d3b76acc48dc461757443954 +57 -0
  545. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fa/AnimationFrameScheduler_fa55eaf8d3b76acc48dc461757443954.map +1 -0
  546. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fb/sample_fb860d84458eeb36b477dfa74a843530 +28 -0
  547. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fb/sample_fb860d84458eeb36b477dfa74a843530.map +1 -0
  548. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fc/QueueScheduler_fc41cc77a1da1827c68511ec446c61cb +31 -0
  549. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fc/QueueScheduler_fc41cc77a1da1827c68511ec446c61cb.map +1 -0
  550. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fc/logincomponent_fc5f1b609a4695ceb7718cf57818ef14 +1951 -0
  551. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fc/logincomponent_fc5f1b609a4695ceb7718cf57818ef14.map +1 -0
  552. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fd/createObject_fd09005888b3a1482b913bc7416cf93d +9 -0
  553. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/fd/createObject_fd09005888b3a1482b913bc7416cf93d.map +1 -0
  554. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ff/subscribeOn_ff90b699bad608d185d3faa4c04f1b20 +15 -0
  555. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ff/subscribeOn_ff90b699bad608d185d3faa4c04f1b20.map +1 -0
  556. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ff/throwError_ff75e4c919422c524c63fa2e532e31b5 +13 -0
  557. package/.jest-cache/jest-transform-cache-9a3a3745ceefdbbde8dc96f3a11cb645-79ef2876fae7ca75eedb2aa53dc48338/ff/throwError_ff75e4c919422c524c63fa2e532e31b5.map +1 -0
  558. package/.jest-cache/perf-cache-9a3a3745ceefdbbde8dc96f3a11cb645-da39a3ee5e6b4b0d3255bfef95601890 +1 -0
  559. package/.nx/nxw.js +116 -0
  560. package/README.md +276 -0
  561. package/coverage/base.css +224 -0
  562. package/coverage/block-navigation.js +87 -0
  563. package/coverage/favicon.png +0 -0
  564. package/coverage/index.html +206 -0
  565. package/coverage/junit.xml +1540 -0
  566. package/coverage/lcov-report/base.css +224 -0
  567. package/coverage/lcov-report/block-navigation.js +87 -0
  568. package/coverage/lcov-report/favicon.png +0 -0
  569. package/coverage/lcov-report/index.html +206 -0
  570. package/coverage/lcov-report/lib/components/dashboard/dashboard.component.ts.html +943 -0
  571. package/coverage/lcov-report/lib/components/dashboard/index.html +116 -0
  572. package/coverage/lcov-report/lib/components/login/index.html +116 -0
  573. package/coverage/lcov-report/lib/components/login/login.component.ts.html +451 -0
  574. package/coverage/lcov-report/lib/config/app.config.ts.html +889 -0
  575. package/coverage/lcov-report/lib/config/authentication.config.ts.html +262 -0
  576. package/coverage/lcov-report/lib/config/index.html +131 -0
  577. package/coverage/lcov-report/lib/guards/authorization.guard.ts.html +178 -0
  578. package/coverage/lcov-report/lib/guards/index.html +116 -0
  579. package/coverage/lcov-report/lib/index.html +116 -0
  580. package/coverage/lcov-report/lib/models/index.html +116 -0
  581. package/coverage/lcov-report/lib/models/login-config.interface.ts.html +307 -0
  582. package/coverage/lcov-report/lib/services/authentication.service.ts.html +973 -0
  583. package/coverage/lcov-report/lib/services/authorization.service.ts.html +634 -0
  584. package/coverage/lcov-report/lib/services/config.service.ts.html +316 -0
  585. package/coverage/lcov-report/lib/services/index.html +146 -0
  586. package/coverage/lcov-report/lib/version.ts.html +148 -0
  587. package/coverage/lcov-report/prettify.css +1 -0
  588. package/coverage/lcov-report/prettify.js +2 -0
  589. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  590. package/coverage/lcov-report/sorter.js +210 -0
  591. package/coverage/lcov.info +1060 -0
  592. package/coverage/lib/components/dashboard/dashboard.component.ts.html +943 -0
  593. package/coverage/lib/components/dashboard/index.html +116 -0
  594. package/coverage/lib/components/login/index.html +116 -0
  595. package/coverage/lib/components/login/login.component.ts.html +451 -0
  596. package/coverage/lib/config/app.config.ts.html +889 -0
  597. package/coverage/lib/config/authentication.config.ts.html +262 -0
  598. package/coverage/lib/config/index.html +131 -0
  599. package/coverage/lib/guards/authorization.guard.ts.html +178 -0
  600. package/coverage/lib/guards/index.html +116 -0
  601. package/coverage/lib/index.html +116 -0
  602. package/coverage/lib/models/index.html +116 -0
  603. package/coverage/lib/models/login-config.interface.ts.html +307 -0
  604. package/coverage/lib/services/authentication.service.ts.html +973 -0
  605. package/coverage/lib/services/authorization.service.ts.html +634 -0
  606. package/coverage/lib/services/config.service.ts.html +316 -0
  607. package/coverage/lib/services/index.html +146 -0
  608. package/coverage/lib/version.ts.html +148 -0
  609. package/coverage/prettify.css +1 -0
  610. package/coverage/prettify.js +2 -0
  611. package/coverage/sort-arrow-sprite.png +0 -0
  612. package/coverage/sorter.js +210 -0
  613. package/dist/README.md +276 -0
  614. package/dist/fesm2022/shared-lib-angular.mjs +1253 -0
  615. package/dist/fesm2022/shared-lib-angular.mjs.map +1 -0
  616. package/dist/index.d.ts +529 -0
  617. package/dist/src/assets/logo-mh.png +0 -0
  618. package/dist/src/lib/styles/_auth.scss +188 -0
  619. package/dist/src/lib/styles/_dashboard.scss +276 -0
  620. package/dist/src/lib/styles/_index.scss +12 -0
  621. package/dist/src/lib/styles/_tokens.scss +143 -0
  622. package/jest.config.js +99 -0
  623. package/ng-package.json +12 -0
  624. package/nx +5 -0
  625. package/nx.bat +10 -0
  626. package/nx.json +5 -0
  627. package/package.json +62 -0
  628. package/scripts/sync-version.js +54 -0
  629. package/setup-jest.ts +70 -0
  630. package/sonar-project.properties +33 -0
  631. package/src/assets/logo-mh.png +0 -0
  632. package/src/lib/components/dashboard/dashboard.component.html +256 -0
  633. package/src/lib/components/dashboard/dashboard.component.scss +623 -0
  634. package/src/lib/components/dashboard/dashboard.component.spec.ts +255 -0
  635. package/src/lib/components/dashboard/dashboard.component.ts +286 -0
  636. package/src/lib/components/index.ts +2 -0
  637. package/src/lib/components/login/login.component.html +85 -0
  638. package/src/lib/components/login/login.component.scss +286 -0
  639. package/src/lib/components/login/login.component.spec.ts +144 -0
  640. package/src/lib/components/login/login.component.ts +122 -0
  641. package/src/lib/config/app.config.ts +320 -0
  642. package/src/lib/config/authentication.config.ts +59 -0
  643. package/src/lib/config/index.ts +2 -0
  644. package/src/lib/guards/authorization.guard.ts +31 -0
  645. package/src/lib/guards/index.ts +1 -0
  646. package/src/lib/models/app-config.interface.ts +61 -0
  647. package/src/lib/models/authorization.interface.ts +40 -0
  648. package/src/lib/models/index.ts +4 -0
  649. package/src/lib/models/library-config.interface.ts +104 -0
  650. package/src/lib/models/login-config.interface.ts +74 -0
  651. package/src/lib/services/authentication.service.spec.ts +201 -0
  652. package/src/lib/services/authentication.service.ts +296 -0
  653. package/src/lib/services/authorization.service.spec.ts +239 -0
  654. package/src/lib/services/authorization.service.ts +183 -0
  655. package/src/lib/services/config.service.spec.ts +99 -0
  656. package/src/lib/services/config.service.ts +77 -0
  657. package/src/lib/services/index.ts +3 -0
  658. package/src/lib/styles/_auth.scss +188 -0
  659. package/src/lib/styles/_dashboard.scss +276 -0
  660. package/src/lib/styles/_index.scss +12 -0
  661. package/src/lib/styles/_tokens.scss +143 -0
  662. package/src/lib/version.ts +21 -0
  663. package/src/public-api.ts +75 -0
  664. package/tsconfig.json +33 -0
  665. package/tsconfig.spec.json +16 -0
@@ -0,0 +1,1253 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, Injectable, inject, Input, Component, HostListener } from '@angular/core';
3
+ import * as i1 from 'angular-oauth2-oidc';
4
+ import { OAuthEvent } from 'angular-oauth2-oidc';
5
+ import { BehaviorSubject, firstValueFrom, of, Observable } from 'rxjs';
6
+ import * as i4 from '@angular/router';
7
+ import { Router, RouterModule } from '@angular/router';
8
+ import * as i1$1 from '@angular/common/http';
9
+ import { HttpParams, HttpHeaders } from '@angular/common/http';
10
+ import { map, catchError, take } from 'rxjs/operators';
11
+ import * as i2 from '@angular/common';
12
+ import { CommonModule } from '@angular/common';
13
+
14
+ // ========================================
15
+ // VERSION - Auto-generado por sync-version.js
16
+ // ========================================
17
+ // Ejecutar 'npm run sync-version' para actualizar manualmente
18
+ // Se sincroniza automáticamente en prebuild
19
+ /**
20
+ * Versión actual de la librería @dinafi/frmk
21
+ * Sincronizada con package.json
22
+ */
23
+ const VERSION = '1.0.0';
24
+ /**
25
+ * Información completa de la versión
26
+ */
27
+ const VERSION_INFO = {
28
+ version: '1.0.0',
29
+ name: 'shared-lib-angular',
30
+ buildDate: '2026-02-03T22:10:56.622Z',
31
+ angular: '^20.0.0'
32
+ };
33
+
34
+ /**
35
+ * Default configuration for the LoginComponent
36
+ */
37
+ const DEFAULT_LOGIN_CONFIG = {
38
+ logoUrl: 'assets/@dinafi/frmk/logo-mh.png',
39
+ logoAlt: 'Logo',
40
+ logoWidth: '120px',
41
+ logoHeight: '120px',
42
+ title: 'Sistema de Autenticación',
43
+ institutionName: 'Ministerio de Hacienda de El Salvador',
44
+ loginButtonText: 'Iniciar Sesión con OIDC',
45
+ logoutButtonText: 'Cerrar Sesión',
46
+ dashboardButtonText: 'Ir al Dashboard',
47
+ showVersion: true,
48
+ version: '1.0.0',
49
+ redirectUrl: '/home',
50
+ showLogoutButton: true,
51
+ showFooter: true
52
+ };
53
+
54
+ /**
55
+ * Configuración por defecto de la librería
56
+ */
57
+ const DEFAULT_LIBRARY_CONFIG = {
58
+ configServicePath: '/api/v1/config/service',
59
+ production: false,
60
+ requireHttps: true,
61
+ showDebugInformation: false
62
+ };
63
+ /**
64
+ * Token de inyección para la configuración de la librería
65
+ *
66
+ * @example
67
+ * // En el app.config.ts o app.module.ts de la aplicación consumidora:
68
+ * providers: [
69
+ * {
70
+ * provide: FRMK_LIBRARY_CONFIG,
71
+ * useValue: {
72
+ * configServerHost: 'config-server.miempresa.com',
73
+ * frontendId: 'mi-aplicacion-frontend',
74
+ * production: environment.production
75
+ * }
76
+ * }
77
+ * ]
78
+ */
79
+ const FRMK_LIBRARY_CONFIG = new InjectionToken('FrmkLibraryConfig');
80
+ /**
81
+ * Función helper para crear la configuración de la librería
82
+ *
83
+ * @example
84
+ * // En el app.config.ts:
85
+ * import { provideFrmkConfig } from '@mh-dinafi-frmk/shared-lib-angular';
86
+ *
87
+ * export const appConfig: ApplicationConfig = {
88
+ * providers: [
89
+ * provideFrmkConfig({
90
+ * configServerHost: environment.configServerHost,
91
+ * frontendId: 'mi-aplicacion'
92
+ * })
93
+ * ]
94
+ * };
95
+ */
96
+ function provideFrmkConfig(config) {
97
+ return {
98
+ provide: FRMK_LIBRARY_CONFIG,
99
+ useValue: {
100
+ ...DEFAULT_LIBRARY_CONFIG,
101
+ ...config
102
+ }
103
+ };
104
+ }
105
+
106
+ // Variable global para almacenar la configuración actual
107
+ let currentAppConfig = null;
108
+ // Variable global para almacenar la configuración de la librería
109
+ let libraryConfig = null;
110
+ /**
111
+ * Inicializa la configuración de la librería con los valores proporcionados por la aplicación
112
+ * Esta función debe ser llamada antes de usar cualquier servicio de la librería
113
+ *
114
+ * @param config Configuración proporcionada por la aplicación consumidora
115
+ */
116
+ function initializeLibraryConfig(config) {
117
+ libraryConfig = {
118
+ ...DEFAULT_LIBRARY_CONFIG,
119
+ ...config
120
+ };
121
+ // Resetear la configuración actual para que se reconstruya con los nuevos valores
122
+ currentAppConfig = null;
123
+ }
124
+ /**
125
+ * Obtiene la configuración de la librería
126
+ * Lanza error si no ha sido inicializada
127
+ */
128
+ function getLibraryConfig() {
129
+ if (!libraryConfig) {
130
+ throw new Error('[FRMK] La librería no ha sido configurada. ' +
131
+ 'Debe proporcionar FRMK_LIBRARY_CONFIG en los providers de su aplicación. ' +
132
+ 'Ejemplo: provideFrmkConfig({ configServerHost: "...", frontendId: "..." })');
133
+ }
134
+ return libraryConfig;
135
+ }
136
+ /**
137
+ * Verifica si la librería ha sido configurada
138
+ */
139
+ function isLibraryConfigured() {
140
+ return libraryConfig !== null;
141
+ }
142
+ // Función para crear la configuración por defecto usando los valores de la librería
143
+ function createDefaultAppConfig() {
144
+ const libConfig = getLibraryConfig();
145
+ return {
146
+ hosts: {
147
+ configServer: libConfig.configServerHost,
148
+ authServer: '', // Leído desde Config Server
149
+ keycloak: '', // Leído desde Config Server
150
+ localApp: '' // Leído desde Config Server
151
+ },
152
+ paths: {
153
+ configService: libConfig.configServicePath || '/api/v1/config/service',
154
+ realm: libConfig.realm || 'realm-to-create'
155
+ },
156
+ configServer: {
157
+ url: '', // Se construirá dinámicamente
158
+ frontend: libConfig.frontendId
159
+ },
160
+ auth: {
161
+ issuer: '', // Se construirá dinámicamente
162
+ loginUrl: '', // Se construirá dinámicamente
163
+ tokenEndpoint: '', // Se construirá dinámicamente
164
+ userinfoEndpoint: '', // Se construirá dinámicamente
165
+ logoutUrl: '', // Se construirá dinámicamente
166
+ clientId: '',
167
+ redirectUri: '', // Se construirá dinámicamente
168
+ postLogoutRedirectUri: '', // Se construirá dinámicamente
169
+ silentRefreshRedirectUri: '', // Se construirá dinámicamente
170
+ scope: 'openid email profile'
171
+ },
172
+ authorization: {
173
+ baseUrl: '',
174
+ verifyEndpoint: '/api/v1/authz/verify-groups',
175
+ hierarchyEndpoint: '/api/v1/authz/hierarchy-by-component-and-groups',
176
+ },
177
+ environment: {
178
+ production: libConfig.production ?? false,
179
+ requireHttps: libConfig.requireHttps ?? true,
180
+ showDebugInformation: libConfig.showDebugInformation ?? false
181
+ }
182
+ };
183
+ }
184
+ // Getter para obtener la configuración por defecto (lazy initialization)
185
+ function getDefaultAppConfig() {
186
+ return createDefaultAppConfig();
187
+ }
188
+ // Función para mapear la configuración del config server a la configuración de la aplicación
189
+ function mapConfigServerResponse(configServerData) {
190
+ const mappedConfig = {};
191
+ const defaultConfig = getDefaultAppConfig();
192
+ // Mapear Auth URL
193
+ configureAuthServer();
194
+ // Mapear client ID
195
+ initializeClientId();
196
+ // Mapear realm
197
+ initializeRealmMapping();
198
+ // Mapear URL de autorización (authServer)
199
+ initializeAuthorizationConfig();
200
+ // Mapear scope de autorización
201
+ initializeAuthScope();
202
+ // Mapear keycloak URL
203
+ initializeKeycloakHost();
204
+ // Mapear callback URL (local app host)
205
+ configureLocalAppCallback();
206
+ // Mapear callback URL (local app host)
207
+ initializeHttpsSettings();
208
+ return mappedConfig;
209
+ function initializeHttpsSettings() {
210
+ if (configServerData["security.url.https"]) {
211
+ mappedConfig.environment = {
212
+ ...defaultConfig.environment,
213
+ ...(mappedConfig.environment || {}),
214
+ requireHttps: configServerData["security.url.https"]
215
+ };
216
+ }
217
+ }
218
+ function configureLocalAppCallback() {
219
+ if (configServerData["security.url.callback"]) {
220
+ mappedConfig.hosts = {
221
+ ...defaultConfig.hosts,
222
+ ...(mappedConfig.hosts || {}),
223
+ localApp: configServerData["security.url.callback"]
224
+ };
225
+ }
226
+ }
227
+ function initializeKeycloakHost() {
228
+ if (configServerData["security.url.keycloak"]) {
229
+ mappedConfig.hosts = {
230
+ ...defaultConfig.hosts,
231
+ ...(mappedConfig.hosts || {}),
232
+ keycloak: configServerData["security.url.keycloak"]
233
+ };
234
+ }
235
+ }
236
+ function initializeAuthScope() {
237
+ if (configServerData["security.scope"]) {
238
+ mappedConfig.auth = {
239
+ ...defaultConfig.auth,
240
+ ...(mappedConfig.auth || {}),
241
+ scope: configServerData["security.scope"]
242
+ };
243
+ }
244
+ }
245
+ function initializeAuthorizationConfig() {
246
+ if (configServerData["security.url.authz"]) {
247
+ mappedConfig.authorization = {
248
+ ...defaultConfig.authorization,
249
+ ...(mappedConfig.authorization || {}),
250
+ baseUrl: configServerData["security.url.authz"]
251
+ };
252
+ }
253
+ }
254
+ function initializeRealmMapping() {
255
+ if (configServerData["security.realm"]) {
256
+ mappedConfig.paths = {
257
+ ...defaultConfig.paths,
258
+ ...(mappedConfig.paths || {}),
259
+ realm: configServerData["security.realm"]
260
+ };
261
+ }
262
+ }
263
+ function initializeClientId() {
264
+ if (configServerData["quarkus.oidc.client-id"]) {
265
+ mappedConfig.auth = {
266
+ ...defaultConfig.auth,
267
+ ...(mappedConfig.auth || {}),
268
+ clientId: configServerData["quarkus.oidc.client-id"]
269
+ };
270
+ }
271
+ }
272
+ function configureAuthServer() {
273
+ if (configServerData["security.url.auth"]) {
274
+ mappedConfig.hosts = {
275
+ ...defaultConfig.hosts,
276
+ ...(mappedConfig.hosts || {}),
277
+ authServer: configServerData["security.url.auth"]
278
+ };
279
+ }
280
+ }
281
+ }
282
+ /**
283
+ * Función para establecer la configuración actual con datos del config server
284
+ * Esta función debe ser llamada desde el ConfigService después de cargar la configuración
285
+ */
286
+ function setCurrentAppConfig(configServerData) {
287
+ currentAppConfig = getAppConfigWithServerData(configServerData);
288
+ }
289
+ /**
290
+ * Función para obtener la configuración actual
291
+ * Si no se ha establecido una configuración, devuelve la configuración por defecto
292
+ */
293
+ function getCurrentAppConfig() {
294
+ return currentAppConfig || getAppConfig();
295
+ }
296
+ // Función para obtener la configuración con posibles sobrescrituras de variables de entorno
297
+ function getAppConfig() {
298
+ const config = { ...getDefaultAppConfig() };
299
+ // Construir URLs dinámicamente
300
+ const protocol = 'https';
301
+ const localProtocol = config.environment.requireHttps ? 'https' : 'http';
302
+ // Config Server URL
303
+ config.configServer.url = `${localProtocol}://${config.hosts.configServer}${config.paths.configService}`;
304
+ // Auth URLs
305
+ config.auth.issuer = `${protocol}://${config.hosts.keycloak}/realms/${config.paths.realm}`;
306
+ config.auth.loginUrl = `${protocol}://${config.hosts.keycloak}/realms/${config.paths.realm}/protocol/openid-connect/auth`;
307
+ config.auth.tokenEndpoint = `${localProtocol}://${config.hosts.authServer}/oidc/realm/${config.paths.realm}/protocol/openid-connect/token`;
308
+ config.auth.userinfoEndpoint = `${localProtocol}://${config.hosts.authServer}/oidc/realm/${config.paths.realm}/protocol/openid-connect/userinfo`;
309
+ config.auth.logoutUrl = `${localProtocol}://${config.hosts.authServer}/oidc/realm/${config.paths.realm}/protocol/openid-connect/logout`;
310
+ // Redirect URLs (locales)
311
+ const currentOrigin = globalThis.window?.location?.origin ?? config.hosts.localApp;
312
+ config.auth.redirectUri = `${currentOrigin}/login`;
313
+ config.auth.postLogoutRedirectUri = `${currentOrigin}/login`;
314
+ // Authorization URL
315
+ config.authorization.baseUrl = `${localProtocol}://${config.authorization.baseUrl}`;
316
+ return config;
317
+ }
318
+ // Función para obtener la configuración aplicando primero la del config server y luego variables de entorno
319
+ function getAppConfigWithServerData(configServerData) {
320
+ let config = { ...getDefaultAppConfig() };
321
+ // Aplicar configuración del config server si está disponible
322
+ if (configServerData) {
323
+ const serverMappedConfig = mapConfigServerResponse(configServerData);
324
+ config = mergeConfigurations(config, serverMappedConfig);
325
+ }
326
+ // Construir URLs dinámicamente
327
+ config = buildDynamicUrls(config);
328
+ return config;
329
+ }
330
+ // Función auxiliar para fusionar configuraciones
331
+ function mergeConfigurations(base, override) {
332
+ const merged = { ...base };
333
+ if (override.hosts) {
334
+ merged.hosts = { ...merged.hosts, ...override.hosts };
335
+ }
336
+ if (override.paths) {
337
+ merged.paths = { ...merged.paths, ...override.paths };
338
+ }
339
+ if (override.configServer) {
340
+ merged.configServer = { ...merged.configServer, ...override.configServer };
341
+ }
342
+ if (override.auth) {
343
+ merged.auth = { ...merged.auth, ...override.auth };
344
+ }
345
+ if (override.authorization) {
346
+ merged.authorization = { ...merged.authorization, ...override.authorization };
347
+ }
348
+ if (override.environment) {
349
+ merged.environment = { ...merged.environment, ...override.environment };
350
+ }
351
+ return merged;
352
+ }
353
+ // Función para construir URLs dinámicamente
354
+ function buildDynamicUrls(config) {
355
+ const protocol = 'https';
356
+ const localProtocol = config.environment.requireHttps ? 'https' : 'http';
357
+ // Config Server URL
358
+ config.configServer.url = `${protocol}://${config.hosts.configServer}${config.paths.configService}`;
359
+ // Auth URLs
360
+ config.auth.issuer = `${protocol}://${config.hosts.keycloak}/realms/${config.paths.realm}`;
361
+ config.auth.loginUrl = `${protocol}://${config.hosts.keycloak}/realms/${config.paths.realm}/protocol/openid-connect/auth`;
362
+ config.auth.tokenEndpoint = `${localProtocol}://${config.hosts.authServer}/oidc/realm/${config.paths.realm}/protocol/openid-connect/token`;
363
+ config.auth.userinfoEndpoint = `${localProtocol}://${config.hosts.authServer}/oidc/realm/${config.paths.realm}/protocol/openid-connect/userinfo`;
364
+ config.auth.logoutUrl = `${localProtocol}://${config.hosts.authServer}/oidc/realm/${config.paths.realm}/protocol/openid-connect/logout`;
365
+ // Redirect URLs (locales)
366
+ const currentOrigin = globalThis.window?.location?.origin ?? config.hosts.localApp;
367
+ config.auth.redirectUri = `${currentOrigin}/login`;
368
+ config.auth.postLogoutRedirectUri = `${currentOrigin}/login`;
369
+ // Authorization URL
370
+ config.authorization.baseUrl = `${localProtocol}://${config.authorization.baseUrl}`;
371
+ return config;
372
+ }
373
+
374
+ /**
375
+ * Función para obtener la configuración de autenticación actual
376
+ * Esta función se evalúa cada vez que se llama, por lo que siempre tendrá la configuración más reciente
377
+ */
378
+ function getAuthConfig() {
379
+ const appConfig = getCurrentAppConfig();
380
+ return {
381
+ // URL base del servidor de identidad
382
+ issuer: appConfig.auth.issuer,
383
+ // URLs específicas para evitar discovery document
384
+ loginUrl: appConfig.auth.loginUrl,
385
+ tokenEndpoint: appConfig.auth.tokenEndpoint,
386
+ userinfoEndpoint: appConfig.auth.userinfoEndpoint,
387
+ logoutUrl: appConfig.auth.logoutUrl,
388
+ // IMPORTANTE: URLs de redirección completas
389
+ redirectUri: appConfig.auth.redirectUri,
390
+ postLogoutRedirectUri: appConfig.auth.postLogoutRedirectUri,
391
+ // Configuración del cliente
392
+ clientId: appConfig.auth.clientId,
393
+ // Configuración OAuth
394
+ responseType: 'code',
395
+ scope: appConfig.auth.scope,
396
+ // Configuraciones para desarrollo
397
+ disableAtHashCheck: true,
398
+ requireHttps: appConfig.environment.requireHttps,
399
+ showDebugInformation: appConfig.environment.showDebugInformation,
400
+ strictDiscoveryDocumentValidation: false,
401
+ skipIssuerCheck: true,
402
+ // IMPORTANTE: Configuraciones para manejar state y session_state
403
+ requestAccessToken: true,
404
+ customQueryParams: {},
405
+ // Timeouts
406
+ silentRefreshTimeout: 5000,
407
+ timeoutFactor: 0.25,
408
+ // Session checks
409
+ sessionChecksEnabled: false,
410
+ clearHashAfterLogin: false,
411
+ // Configuración OIDC
412
+ oidc: true
413
+ };
414
+ }
415
+ // Mantener la exportación original para compatibilidad
416
+ function getAuthConfigEnv() {
417
+ return getAuthConfig();
418
+ }
419
+
420
+ class AuthService {
421
+ oauthService;
422
+ router;
423
+ isAuthenticatedSubject$ = new BehaviorSubject(false);
424
+ isAuthenticated$ = this.isAuthenticatedSubject$.asObservable();
425
+ isDoneLoadingSubject$ = new BehaviorSubject(false);
426
+ isDoneLoading$ = this.isDoneLoadingSubject$.asObservable();
427
+ isInitialLogin = true;
428
+ constructor(oauthService, router) {
429
+ this.oauthService = oauthService;
430
+ this.router = router;
431
+ this.oauthService.events
432
+ .subscribe((event) => {
433
+ if (event instanceof OAuthEvent) {
434
+ if (event.type === 'token_received') {
435
+ this.handleSuccessfulAuthentication();
436
+ }
437
+ if (event.type === 'logout') {
438
+ this.handleLogout();
439
+ }
440
+ if (event.type === 'token_error') {
441
+ this.isDoneLoadingSubject$.next(true);
442
+ }
443
+ if (event.type === 'silently_refreshed') {
444
+ this.handleSilentRefresh();
445
+ }
446
+ }
447
+ });
448
+ }
449
+ handleSuccessfulAuthentication() {
450
+ if (this.oauthService.hasValidAccessToken()) {
451
+ this.isAuthenticatedSubject$.next(true);
452
+ this.isDoneLoadingSubject$.next(true);
453
+ if (this.isInitialLogin) {
454
+ this.isInitialLogin = false;
455
+ }
456
+ }
457
+ else {
458
+ this.isDoneLoadingSubject$.next(true);
459
+ }
460
+ }
461
+ handleSilentRefresh() {
462
+ if (this.oauthService.hasValidAccessToken()) {
463
+ this.isAuthenticatedSubject$.next(true);
464
+ this.isDoneLoadingSubject$.next(true);
465
+ }
466
+ }
467
+ handleLogout() {
468
+ this.isAuthenticatedSubject$.next(false);
469
+ this.isDoneLoadingSubject$.next(true);
470
+ }
471
+ async runInitialLoginSequence() {
472
+ try {
473
+ const urlParams = new URLSearchParams(window.location.search);
474
+ const hasCode = urlParams.has('code');
475
+ const hasFragment = window.location.hash.includes('access_token') || window.location.hash.includes('code');
476
+ if (hasCode || hasFragment) {
477
+ this.isInitialLogin = true;
478
+ await this.oauthService.tryLoginCodeFlow();
479
+ }
480
+ const hasValidToken = this.oauthService.hasValidAccessToken();
481
+ if (hasValidToken) {
482
+ if (!hasCode && !hasFragment) {
483
+ this.isInitialLogin = false;
484
+ }
485
+ this.handleSuccessfulAuthentication();
486
+ }
487
+ else {
488
+ this.isDoneLoadingSubject$.next(true);
489
+ }
490
+ }
491
+ catch (error) {
492
+ console.error('[AuthService] Error during authentication initialization:', error);
493
+ this.isDoneLoadingSubject$.next(true);
494
+ }
495
+ }
496
+ setupManualConfiguration() {
497
+ const authConfig = getAuthConfigEnv();
498
+ this.oauthService.tokenEndpoint = authConfig.tokenEndpoint;
499
+ this.oauthService.userinfoEndpoint = authConfig.userinfoEndpoint;
500
+ this.oauthService.loginUrl = authConfig.loginUrl;
501
+ this.oauthService.logoutUrl = authConfig.logoutUrl;
502
+ this.oauthService.clientId = authConfig.clientId;
503
+ this.oauthService.redirectUri = authConfig.redirectUri;
504
+ this.oauthService.scope = authConfig.scope;
505
+ this.oauthService.responseType = authConfig.responseType;
506
+ }
507
+ initializeAuth(authConfig) {
508
+ this.oauthService.configure(authConfig);
509
+ this.oauthService.setupAutomaticSilentRefresh();
510
+ this.setupManualConfiguration();
511
+ this.runInitialLoginSequence();
512
+ }
513
+ getAuthConfig() {
514
+ return getAuthConfigEnv();
515
+ }
516
+ login(targetUrl) {
517
+ this.isInitialLogin = true;
518
+ if (!this.oauthService.clientId) {
519
+ return;
520
+ }
521
+ if (!this.oauthService.redirectUri) {
522
+ return;
523
+ }
524
+ this.oauthService.initLoginFlow(targetUrl || undefined);
525
+ }
526
+ async logout() {
527
+ try {
528
+ await this.callKeycloakLogoutEndpoint().catch(err => {
529
+ console.warn('Keycloak logout endpoint failed, but will continue with local cleanup:', err);
530
+ });
531
+ this.performLocalLogout();
532
+ }
533
+ catch (error) {
534
+ console.error('Error during logout:', error);
535
+ this.performLocalLogout();
536
+ }
537
+ }
538
+ async callKeycloakLogoutEndpoint() {
539
+ const authConfig = getAuthConfigEnv();
540
+ const logoutUrl = authConfig.logoutUrl;
541
+ let refreshToken = this.oauthService.getRefreshToken();
542
+ if (!refreshToken) {
543
+ refreshToken = localStorage.getItem('refresh_token')
544
+ || localStorage.getItem('refresh_token_' + authConfig.clientId)
545
+ || sessionStorage.getItem('refresh_token');
546
+ }
547
+ if (!logoutUrl) {
548
+ console.warn('Logout URL not configured, skipping Keycloak logout');
549
+ return;
550
+ }
551
+ if (!refreshToken) {
552
+ console.warn('No refresh token found, logout endpoint may fail');
553
+ }
554
+ const body = new URLSearchParams();
555
+ body.set('client_id', authConfig.clientId);
556
+ if (refreshToken) {
557
+ body.set('refresh_token', refreshToken);
558
+ }
559
+ const headers = {
560
+ 'Content-Type': 'application/x-www-form-urlencoded'
561
+ };
562
+ try {
563
+ const response = await fetch(logoutUrl, {
564
+ method: 'POST',
565
+ headers,
566
+ body: body.toString()
567
+ });
568
+ if (!response.ok) {
569
+ const errorText = await response.text();
570
+ console.warn('Keycloak logout returned error, but local cleanup completed:', errorText);
571
+ }
572
+ }
573
+ catch (error) {
574
+ console.warn('Failed to call Keycloak logout endpoint:', error);
575
+ }
576
+ }
577
+ performLocalLogout() {
578
+ this.oauthService.logOut(true);
579
+ // Limpiar tokens del localStorage
580
+ localStorage.removeItem('access_token');
581
+ localStorage.removeItem('id_token');
582
+ localStorage.removeItem('refresh_token');
583
+ localStorage.removeItem('code_verifier');
584
+ localStorage.removeItem('nonce');
585
+ localStorage.removeItem('PKCE_verifier');
586
+ // Limpiar tokens del sessionStorage
587
+ sessionStorage.removeItem('access_token');
588
+ sessionStorage.removeItem('id_token');
589
+ sessionStorage.removeItem('refresh_token');
590
+ sessionStorage.removeItem('nonce');
591
+ sessionStorage.removeItem('PKCE_verifier');
592
+ this.isAuthenticatedSubject$.next(false);
593
+ this.isDoneLoadingSubject$.next(true);
594
+ const currentUrl = this.router.url;
595
+ if (currentUrl !== '/login' && !currentUrl.includes('/login')) {
596
+ this.router.navigate(['/login']);
597
+ }
598
+ }
599
+ logoutAndRedirect(targetUrl = '/login') {
600
+ this.logout();
601
+ this.router.navigate([targetUrl]);
602
+ }
603
+ hasValidToken() {
604
+ return this.oauthService.hasValidAccessToken();
605
+ }
606
+ get identityClaims() {
607
+ return this.oauthService.getIdentityClaims();
608
+ }
609
+ get accessToken() {
610
+ return this.oauthService.getAccessToken();
611
+ }
612
+ getUserRoles() {
613
+ const claims = this.identityClaims;
614
+ if (claims?.roles) {
615
+ return Array.isArray(claims.roles) ? claims.roles : [claims.roles];
616
+ }
617
+ if (claims) {
618
+ const roles = [];
619
+ if (claims.realm_access?.roles) {
620
+ roles.push(...claims.realm_access.roles);
621
+ }
622
+ const authConfig = getAuthConfigEnv();
623
+ if (claims.resource_access?.[authConfig.clientId]?.roles) {
624
+ roles.push(...claims.resource_access[authConfig.clientId].roles);
625
+ }
626
+ return roles;
627
+ }
628
+ return [];
629
+ }
630
+ hasRole(role) {
631
+ return this.getUserRoles().includes(role);
632
+ }
633
+ hasAnyRole(roles) {
634
+ const userRoles = this.getUserRoles();
635
+ return roles.some(role => userRoles.includes(role));
636
+ }
637
+ getUserGroups() {
638
+ const claims = this.identityClaims;
639
+ const groups = [];
640
+ if (!claims) {
641
+ return groups;
642
+ }
643
+ if (claims.groups) {
644
+ if (Array.isArray(claims.groups)) {
645
+ groups.push(...claims.groups);
646
+ }
647
+ else {
648
+ groups.push(claims.groups);
649
+ }
650
+ }
651
+ if (claims.accessTokenGroups) {
652
+ if (Array.isArray(claims.accessTokenGroups)) {
653
+ groups.push(...claims.accessTokenGroups);
654
+ }
655
+ else {
656
+ groups.push(claims.accessTokenGroups);
657
+ }
658
+ }
659
+ if (claims.realm_access?.groups) {
660
+ groups.push(...claims.realm_access.groups);
661
+ }
662
+ return [...new Set(groups)];
663
+ }
664
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthService, deps: [{ token: i1.OAuthService }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });
665
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthService, providedIn: 'root' });
666
+ }
667
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthService, decorators: [{
668
+ type: Injectable,
669
+ args: [{
670
+ providedIn: 'root'
671
+ }]
672
+ }], ctorParameters: () => [{ type: i1.OAuthService }, { type: i4.Router }] });
673
+
674
+ class ConfigService {
675
+ http;
676
+ configServerData = null;
677
+ finalAppConfig = null;
678
+ isLoaded = false;
679
+ initialAppConfig = getAppConfig();
680
+ constructor(http) {
681
+ this.http = http;
682
+ }
683
+ /**
684
+ * Carga la configuración desde el config-server
685
+ */
686
+ async loadConfig() {
687
+ try {
688
+ const url = `${this.initialAppConfig.configServer.url}/${this.initialAppConfig.configServer.frontend}`;
689
+ this.configServerData = await firstValueFrom(this.http.get(url));
690
+ this.finalAppConfig = getAppConfigWithServerData(this.configServerData);
691
+ // IMPORTANTE: Establecer la configuración actual para que esté disponible globalmente
692
+ setCurrentAppConfig(this.configServerData);
693
+ this.isLoaded = true;
694
+ }
695
+ catch (error) {
696
+ console.log(`Exception while loading config: ${error}`);
697
+ this.finalAppConfig = this.initialAppConfig;
698
+ setCurrentAppConfig();
699
+ this.isLoaded = true;
700
+ }
701
+ }
702
+ /**
703
+ * Obtiene un valor de configuración por clave del config server
704
+ */
705
+ get(key) {
706
+ return this.configServerData?.[key];
707
+ }
708
+ /**
709
+ * Obtiene toda la configuración del config server
710
+ */
711
+ getAll() {
712
+ return this.configServerData ? { ...this.configServerData } : null;
713
+ }
714
+ /**
715
+ * Verifica si la configuración ha sido cargada
716
+ */
717
+ isConfigLoaded() {
718
+ return this.isLoaded;
719
+ }
720
+ /**
721
+ * Obtiene la configuración final de la aplicación (con valores del config server aplicados)
722
+ */
723
+ getAppConfig() {
724
+ return this.finalAppConfig || this.initialAppConfig;
725
+ }
726
+ /**
727
+ * Obtiene los datos raw del config server
728
+ */
729
+ getConfigServerData() {
730
+ return this.configServerData;
731
+ }
732
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfigService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
733
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfigService, providedIn: 'root' });
734
+ }
735
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: ConfigService, decorators: [{
736
+ type: Injectable,
737
+ args: [{
738
+ providedIn: 'root'
739
+ }]
740
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }] });
741
+
742
+ class AuthorizationService {
743
+ http;
744
+ authService;
745
+ configService;
746
+ constructor(http, authService, configService) {
747
+ this.http = http;
748
+ this.authService = authService;
749
+ this.configService = configService;
750
+ }
751
+ /**
752
+ * Verifica si el usuario tiene permisos para acceder a un recurso específico
753
+ */
754
+ verifyPermission(resourcePath, operationName = 'VIEW') {
755
+ const groups = this.getUserGroups();
756
+ const config = this.configService.getAppConfig();
757
+ if (groups.length === 0) {
758
+ return of(false);
759
+ }
760
+ const request = {
761
+ groupIds: groups,
762
+ componentId: config.configServer.frontend,
763
+ resourcePath: resourcePath,
764
+ operationName: operationName
765
+ };
766
+ return this.checkAuthorization(request);
767
+ }
768
+ /**
769
+ * Realiza la llamada HTTP al servicio de autorización
770
+ */
771
+ checkAuthorization(request) {
772
+ let params = new HttpParams();
773
+ const cleanGroups = request.groupIds.map(group => group.replace(/\//g, ''));
774
+ const groupIdsString = cleanGroups.join(',');
775
+ params = params.set('groupIds', groupIdsString);
776
+ params = params.set('componentId', request.componentId);
777
+ params = params.set('resourcePath', request.resourcePath);
778
+ params = params.set('operationName', request.operationName);
779
+ let headers = new HttpHeaders();
780
+ const url = `${this.configService.getAppConfig().authorization.baseUrl}${this.configService.getAppConfig().authorization.verifyEndpoint}`;
781
+ return this.http.get(url, {
782
+ params,
783
+ headers
784
+ }).pipe(map(response => {
785
+ return response.hasPermission;
786
+ }), catchError(() => {
787
+ return of(false);
788
+ }));
789
+ }
790
+ /**
791
+ * Obtiene los grupos del usuario desde el access token
792
+ */
793
+ getUserGroups() {
794
+ return this.authService.getUserGroups();
795
+ }
796
+ /**
797
+ * Método público para obtener los grupos del usuario (útil para debugging)
798
+ */
799
+ getUserGroupsDebug() {
800
+ return this.authService.getUserGroups();
801
+ }
802
+ /**
803
+ * Obtiene la jerarquía de menús basada en el componente y los grupos del usuario
804
+ */
805
+ getMenuHierarchy() {
806
+ const groups = this.getUserGroups();
807
+ const config = this.configService.getAppConfig();
808
+ if (groups.length === 0) {
809
+ return of([]);
810
+ }
811
+ const cleanGroups = groups.map(group => group.replace(/\//g, ''));
812
+ const groupIdsString = cleanGroups.join(',');
813
+ let params = new HttpParams();
814
+ params = params.set('componentId', config.configServer.frontend);
815
+ params = params.set('groupIds', groupIdsString);
816
+ let headers = new HttpHeaders();
817
+ const url = `${config.authorization.baseUrl}${config.authorization.hierarchyEndpoint}`;
818
+ return this.http.get(url, {
819
+ params,
820
+ headers
821
+ }).pipe(catchError(error => {
822
+ console.error('Error obteniendo jerarquía de menús:', error);
823
+ return of([]);
824
+ }));
825
+ }
826
+ /**
827
+ * Obtiene elementos de menú de nivel raíz (level 1)
828
+ */
829
+ getRootMenuItems(menuHierarchy) {
830
+ return menuHierarchy.filter(item => item.level === 1);
831
+ }
832
+ /**
833
+ * Obtiene elementos hijos de un elemento padre específico por path
834
+ */
835
+ getChildMenuItems(menuHierarchy, parentPath, level) {
836
+ return menuHierarchy.filter(item => item.level === level &&
837
+ item.hasParent &&
838
+ item.path.startsWith(parentPath) &&
839
+ item.path !== parentPath &&
840
+ this.isDirectChild(item.path, parentPath, level));
841
+ }
842
+ /**
843
+ * Verifica si un elemento tiene hijos
844
+ */
845
+ hasChildren(menuHierarchy, item) {
846
+ return this.getChildMenuItems(menuHierarchy, item.path, item.level + 1).length > 0;
847
+ }
848
+ /**
849
+ * Verifica si un path es hijo directo de otro path
850
+ */
851
+ isDirectChild(childPath, parentPath, expectedLevel) {
852
+ const relativePath = childPath.substring(parentPath.length);
853
+ const slashCount = (relativePath.match(/\//g) || []).length;
854
+ return slashCount === 1;
855
+ }
856
+ /**
857
+ * Verifica múltiples permisos a la vez
858
+ */
859
+ verifyMultiplePermissions(permissions) {
860
+ const results = {};
861
+ const observables = permissions.map(permission => this.verifyPermission(permission.resourcePath, permission.operationName).pipe(map(authorized => ({
862
+ key: `${permission.resourcePath}_${permission.operationName || 'VIEW'}`,
863
+ authorized
864
+ }))));
865
+ return new Observable(observer => {
866
+ let completed = 0;
867
+ observables.forEach(obs => {
868
+ obs.subscribe(result => {
869
+ results[result.key] = result.authorized;
870
+ completed++;
871
+ if (completed === observables.length) {
872
+ observer.next(results);
873
+ observer.complete();
874
+ }
875
+ });
876
+ });
877
+ });
878
+ }
879
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthorizationService, deps: [{ token: i1$1.HttpClient }, { token: AuthService }, { token: ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
880
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthorizationService, providedIn: 'root' });
881
+ }
882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: AuthorizationService, decorators: [{
883
+ type: Injectable,
884
+ args: [{
885
+ providedIn: 'root'
886
+ }]
887
+ }], ctorParameters: () => [{ type: i1$1.HttpClient }, { type: AuthService }, { type: ConfigService }] });
888
+
889
+ const authGuard = (route, state) => {
890
+ const authService = inject(AuthService);
891
+ const router = inject(Router);
892
+ const handleAuthenticated = () => {
893
+ return true;
894
+ };
895
+ const handleUnauthenticated = (currentUrl) => {
896
+ if (currentUrl !== '/login' && !currentUrl.includes('/login')) {
897
+ router.navigate(['/login'], {
898
+ queryParams: { returnUrl: currentUrl }
899
+ });
900
+ }
901
+ return false;
902
+ };
903
+ return authService.isAuthenticated$.pipe(take(1), map(isAuthenticated => {
904
+ return isAuthenticated
905
+ ? handleAuthenticated()
906
+ : handleUnauthenticated(state.url);
907
+ }));
908
+ };
909
+
910
+ class LoginComponent {
911
+ authService;
912
+ /**
913
+ * Configuration object to customize the login component appearance and behavior
914
+ */
915
+ config = {};
916
+ isLoggingIn = false;
917
+ statusMessage = '';
918
+ authSubscription;
919
+ isProcessingCallback = false;
920
+ // Merged configuration with defaults
921
+ _mergedConfig = { ...DEFAULT_LOGIN_CONFIG };
922
+ constructor(authService) {
923
+ this.authService = authService;
924
+ }
925
+ ngOnInit() {
926
+ // Merge provided config with defaults
927
+ this._mergedConfig = {
928
+ ...DEFAULT_LOGIN_CONFIG,
929
+ ...this.config,
930
+ version: this.config.version || VERSION
931
+ };
932
+ // Check if processing OAuth callback
933
+ const urlParams = new URLSearchParams(globalThis.location?.search || '');
934
+ const hasCode = urlParams.has('code');
935
+ const hasFragment = (globalThis.location?.hash || '').includes('access_token') ||
936
+ (globalThis.location?.hash || '').includes('code');
937
+ if (hasCode || hasFragment) {
938
+ this.isProcessingCallback = true;
939
+ this.statusMessage = 'Procesando autenticación...';
940
+ }
941
+ // Subscribe to authentication state changes
942
+ this.authSubscription = this.authService.isAuthenticated$.subscribe(isAuthenticated => {
943
+ if (isAuthenticated && this.isProcessingCallback) {
944
+ this.statusMessage = '¡Autenticación exitosa! Redirigiendo...';
945
+ setTimeout(() => {
946
+ this.navigateToRedirect();
947
+ }, 1000);
948
+ }
949
+ else if (isAuthenticated && !this.isProcessingCallback) {
950
+ this.navigateToRedirect();
951
+ }
952
+ });
953
+ }
954
+ ngOnDestroy() {
955
+ if (this.authSubscription) {
956
+ this.authSubscription.unsubscribe();
957
+ }
958
+ }
959
+ /**
960
+ * Get merged configuration value
961
+ */
962
+ getConfig(key) {
963
+ return this._mergedConfig[key];
964
+ }
965
+ /**
966
+ * Get custom CSS styles for theming
967
+ */
968
+ getCustomStyles() {
969
+ const styles = {};
970
+ if (this._mergedConfig.primaryColor) {
971
+ styles['--color-primary'] = this._mergedConfig.primaryColor;
972
+ }
973
+ if (this._mergedConfig.backgroundColor) {
974
+ styles['--login-bg-color'] = this._mergedConfig.backgroundColor;
975
+ }
976
+ if (this._mergedConfig.textColor) {
977
+ styles['--login-text-color'] = this._mergedConfig.textColor;
978
+ }
979
+ return styles;
980
+ }
981
+ login() {
982
+ this.isLoggingIn = true;
983
+ this.statusMessage = 'Redirigiendo al proveedor de autenticación...';
984
+ setTimeout(() => {
985
+ this.authService.login();
986
+ }, 500);
987
+ }
988
+ logout() {
989
+ this.authService.logout();
990
+ this.isLoggingIn = false;
991
+ this.statusMessage = '';
992
+ this.isProcessingCallback = false;
993
+ }
994
+ goToDashboard() {
995
+ this.navigateToRedirect();
996
+ }
997
+ navigateToRedirect() {
998
+ const redirectUrl = this._mergedConfig.redirectUrl;
999
+ if (typeof globalThis.location !== 'undefined') {
1000
+ const baseUrl = `${globalThis.location.protocol}//${globalThis.location.host}`;
1001
+ globalThis.location.href = `${baseUrl}${redirectUrl}`;
1002
+ }
1003
+ }
1004
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoginComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component });
1005
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: LoginComponent, isStandalone: true, selector: "lib-login", inputs: { config: "config" }, ngImport: i0, template: "<div class=\"login-page\" [ngStyle]=\"getCustomStyles()\">\r\n <div class=\"login-page__container\">\r\n <!-- Logo -->\r\n <div class=\"login-page__logo\">\r\n <img \r\n [src]=\"getConfig('logoUrl')\" \r\n [alt]=\"getConfig('logoAlt')\" \r\n class=\"login-page__logo-img\"\r\n [style.width]=\"getConfig('logoWidth')\"\r\n [style.height]=\"getConfig('logoHeight')\" />\r\n </div>\r\n\r\n <!-- Header -->\r\n <div class=\"login-page__header\">\r\n <h1>{{ getConfig('title') }}</h1>\r\n <p *ngIf=\"getConfig('subtitle')\" class=\"subtitle\">{{ getConfig('subtitle') }}</p>\r\n </div>\r\n \r\n <!-- Login Form -->\r\n <div *ngIf=\"(authService.isDoneLoading$ | async)\" class=\"login-page__form\">\r\n <div *ngIf=\"!(authService.isAuthenticated$ | async)\">\r\n <!-- Status Message -->\r\n <div *ngIf=\"statusMessage\" class=\"auth-alert auth-alert--info\">\r\n <div class=\"auth-alert__content\">\r\n <p>{{ statusMessage }}</p>\r\n </div>\r\n </div>\r\n\r\n <!-- Login Button -->\r\n <button \r\n class=\"btn btn--primary btn--lg\" \r\n (click)=\"login()\" \r\n [disabled]=\"isLoggingIn\"\r\n [class.loading]=\"isLoggingIn\">\r\n {{ isLoggingIn ? 'Redirigiendo...' : getConfig('loginButtonText') }}\r\n </button>\r\n\r\n <!-- Footer -->\r\n <div class=\"login-page__footer\" *ngIf=\"getConfig('showFooter')\">\r\n <p *ngIf=\"getConfig('footerText'); else defaultFooter\">\r\n {{ getConfig('footerText') }}\r\n </p>\r\n <ng-template #defaultFooter>\r\n <p>\r\n Acceso seguro para usuarios de \r\n <strong>{{ getConfig('institutionName') }}</strong>\r\n </p>\r\n </ng-template>\r\n </div>\r\n </div>\r\n \r\n <!-- Already Authenticated -->\r\n <div *ngIf=\"authService.isAuthenticated$ | async\" class=\"auth-alert auth-alert--success\">\r\n <div class=\"auth-alert__content\">\r\n <h4>\u00A1Sesi\u00F3n activa!</h4>\r\n <p>Ya tienes una sesi\u00F3n iniciada en el sistema.</p>\r\n </div>\r\n \r\n <div class=\"login-page__actions\">\r\n <button class=\"btn btn--primary btn--lg\" (click)=\"goToDashboard()\">\r\n {{ getConfig('dashboardButtonText') }}\r\n </button>\r\n \r\n <button \r\n *ngIf=\"getConfig('showLogoutButton')\"\r\n class=\"btn btn--secondary btn--lg\" \r\n (click)=\"logout()\">\r\n {{ getConfig('logoutButtonText') }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- Loading State -->\r\n <div *ngIf=\"!(authService.isDoneLoading$ | async)\" class=\"auth-loading\">\r\n <div class=\"auth-loading__spinner\"></div>\r\n <p class=\"auth-loading__text\">Procesando autenticaci\u00F3n...</p>\r\n </div>\r\n\r\n <!-- Version -->\r\n <div *ngIf=\"getConfig('showVersion')\" class=\"login-page__version\">\r\n <span>v{{ getConfig('version') }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%;height:100vh}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-primary, #313945);padding:var(--spacing-4, 1rem);position:relative}.login-page__container{width:100%;max-width:450px;background:var(--login-bg-color, var(--color-primary, #313945));color:var(--login-text-color, var(--color-white, #ffffff));border-radius:var(--border-radius-2xl, 1rem);box-shadow:0 25px 50px -12px #00000040;padding:var(--spacing-8, 2rem);position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.2);animation:slideInUp .6s cubic-bezier(.4,0,.2,1)}.login-page__container:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#313945,#3c4557)}@media(max-width:576px){.login-page__container{padding:var(--spacing-6, 1.5rem);margin:var(--spacing-4, 1rem);max-width:380px}}.login-page__logo{width:120px;height:120px;margin:0 auto var(--spacing-6, 1.5rem) auto;display:flex;justify-content:center;align-items:center}.login-page__logo-img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(30,58,95,.1));transition:transform .25s cubic-bezier(.4,0,.2,1)}.login-page__logo-img:hover{transform:scale(1.05)}.login-page__header{text-align:center;margin-bottom:var(--spacing-8, 2rem)}.login-page__header h1{font-family:var(--font-family-display, \"Bembo Std\", Georgia, serif);font-size:var(--font-size-3xl, 1.875rem);font-weight:var(--font-weight-bold, 700);color:var(--login-text-color, var(--color-white, #ffffff));margin:0 0 var(--spacing-3, .75rem) 0}@media(max-width:576px){.login-page__header h1{font-size:var(--font-size-2xl, 1.5rem)}}.login-page__header .subtitle{color:var(--login-text-color, var(--color-white, #ffffff));font-size:var(--font-size-base, 1rem);margin:0;font-weight:var(--font-weight-normal, 400);opacity:.8}.login-page__form .btn{width:100%;margin-bottom:var(--spacing-3, .75rem)}.login-page__actions{margin-top:var(--spacing-6, 1.5rem);display:flex;flex-direction:column;gap:var(--spacing-3, .75rem)}.login-page__footer{text-align:center;margin-top:var(--spacing-8, 2rem);padding-top:var(--spacing-6, 1.5rem);border-top:1px solid rgba(255,255,255,.2)}.login-page__footer p{color:#fffc;font-size:var(--font-size-sm, .875rem);margin:0}.login-page__version{text-align:center;margin-top:var(--spacing-4, 1rem)}.login-page__version span{font-size:var(--font-size-xs, .75rem);color:#ffffff80}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-3, .75rem) var(--spacing-6, 1.5rem);font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-medium, 500);border-radius:var(--border-radius-lg, .5rem);border:none;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.btn--lg{height:48px;font-size:var(--font-size-base, 1rem)}.btn--primary{background-color:var(--color-gray-900, #212529);color:var(--color-white, #ffffff);border:1px solid var(--color-primary, #313945)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover, #1c1e4d);border-color:var(--color-primary-hover, #1c1e4d);transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--primary:disabled{opacity:.7;cursor:not-allowed}.btn--primary.loading{pointer-events:none}.btn--secondary{background-color:transparent;color:var(--color-white, #ffffff);border:1px solid rgba(255,255,255,.3)}.btn--secondary:hover:not(:disabled){background-color:#ffffff1a;border-color:#ffffff80}.auth-alert{padding:var(--spacing-4, 1rem);border-radius:var(--border-radius-lg, .5rem);margin-bottom:var(--spacing-4, 1rem)}.auth-alert--info{background:#2ca8ff1a;border:1px solid rgba(44,168,255,.3)}.auth-alert--success{background:#018e111a;border:1px solid rgba(1,142,17,.3)}.auth-alert__content h4{margin:0 0 var(--spacing-2, .5rem) 0;font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-semibold, 600)}.auth-alert__content p{margin:0;font-size:var(--font-size-sm, .875rem);opacity:.9}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8, 2rem)}.auth-loading__spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top:3px solid var(--color-white, #ffffff);border-radius:50%;animation:spin 1s linear infinite}.auth-loading__text{margin-top:var(--spacing-4, 1rem);font-size:var(--font-size-sm, .875rem);color:#fffc}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.login-page__container{animation:none}.login-page__logo-img{transition:none}.auth-loading__spinner{animation:none}}@media(prefers-contrast:high){.login-page__container{border:2px solid var(--color-white, #ffffff)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
1006
+ }
1007
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: LoginComponent, decorators: [{
1008
+ type: Component,
1009
+ args: [{ selector: 'lib-login', standalone: true, imports: [CommonModule], template: "<div class=\"login-page\" [ngStyle]=\"getCustomStyles()\">\r\n <div class=\"login-page__container\">\r\n <!-- Logo -->\r\n <div class=\"login-page__logo\">\r\n <img \r\n [src]=\"getConfig('logoUrl')\" \r\n [alt]=\"getConfig('logoAlt')\" \r\n class=\"login-page__logo-img\"\r\n [style.width]=\"getConfig('logoWidth')\"\r\n [style.height]=\"getConfig('logoHeight')\" />\r\n </div>\r\n\r\n <!-- Header -->\r\n <div class=\"login-page__header\">\r\n <h1>{{ getConfig('title') }}</h1>\r\n <p *ngIf=\"getConfig('subtitle')\" class=\"subtitle\">{{ getConfig('subtitle') }}</p>\r\n </div>\r\n \r\n <!-- Login Form -->\r\n <div *ngIf=\"(authService.isDoneLoading$ | async)\" class=\"login-page__form\">\r\n <div *ngIf=\"!(authService.isAuthenticated$ | async)\">\r\n <!-- Status Message -->\r\n <div *ngIf=\"statusMessage\" class=\"auth-alert auth-alert--info\">\r\n <div class=\"auth-alert__content\">\r\n <p>{{ statusMessage }}</p>\r\n </div>\r\n </div>\r\n\r\n <!-- Login Button -->\r\n <button \r\n class=\"btn btn--primary btn--lg\" \r\n (click)=\"login()\" \r\n [disabled]=\"isLoggingIn\"\r\n [class.loading]=\"isLoggingIn\">\r\n {{ isLoggingIn ? 'Redirigiendo...' : getConfig('loginButtonText') }}\r\n </button>\r\n\r\n <!-- Footer -->\r\n <div class=\"login-page__footer\" *ngIf=\"getConfig('showFooter')\">\r\n <p *ngIf=\"getConfig('footerText'); else defaultFooter\">\r\n {{ getConfig('footerText') }}\r\n </p>\r\n <ng-template #defaultFooter>\r\n <p>\r\n Acceso seguro para usuarios de \r\n <strong>{{ getConfig('institutionName') }}</strong>\r\n </p>\r\n </ng-template>\r\n </div>\r\n </div>\r\n \r\n <!-- Already Authenticated -->\r\n <div *ngIf=\"authService.isAuthenticated$ | async\" class=\"auth-alert auth-alert--success\">\r\n <div class=\"auth-alert__content\">\r\n <h4>\u00A1Sesi\u00F3n activa!</h4>\r\n <p>Ya tienes una sesi\u00F3n iniciada en el sistema.</p>\r\n </div>\r\n \r\n <div class=\"login-page__actions\">\r\n <button class=\"btn btn--primary btn--lg\" (click)=\"goToDashboard()\">\r\n {{ getConfig('dashboardButtonText') }}\r\n </button>\r\n \r\n <button \r\n *ngIf=\"getConfig('showLogoutButton')\"\r\n class=\"btn btn--secondary btn--lg\" \r\n (click)=\"logout()\">\r\n {{ getConfig('logoutButtonText') }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- Loading State -->\r\n <div *ngIf=\"!(authService.isDoneLoading$ | async)\" class=\"auth-loading\">\r\n <div class=\"auth-loading__spinner\"></div>\r\n <p class=\"auth-loading__text\">Procesando autenticaci\u00F3n...</p>\r\n </div>\r\n\r\n <!-- Version -->\r\n <div *ngIf=\"getConfig('showVersion')\" class=\"login-page__version\">\r\n <span>v{{ getConfig('version') }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%;height:100vh}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-primary, #313945);padding:var(--spacing-4, 1rem);position:relative}.login-page__container{width:100%;max-width:450px;background:var(--login-bg-color, var(--color-primary, #313945));color:var(--login-text-color, var(--color-white, #ffffff));border-radius:var(--border-radius-2xl, 1rem);box-shadow:0 25px 50px -12px #00000040;padding:var(--spacing-8, 2rem);position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.2);animation:slideInUp .6s cubic-bezier(.4,0,.2,1)}.login-page__container:before{content:\"\";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#313945,#3c4557)}@media(max-width:576px){.login-page__container{padding:var(--spacing-6, 1.5rem);margin:var(--spacing-4, 1rem);max-width:380px}}.login-page__logo{width:120px;height:120px;margin:0 auto var(--spacing-6, 1.5rem) auto;display:flex;justify-content:center;align-items:center}.login-page__logo-img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(30,58,95,.1));transition:transform .25s cubic-bezier(.4,0,.2,1)}.login-page__logo-img:hover{transform:scale(1.05)}.login-page__header{text-align:center;margin-bottom:var(--spacing-8, 2rem)}.login-page__header h1{font-family:var(--font-family-display, \"Bembo Std\", Georgia, serif);font-size:var(--font-size-3xl, 1.875rem);font-weight:var(--font-weight-bold, 700);color:var(--login-text-color, var(--color-white, #ffffff));margin:0 0 var(--spacing-3, .75rem) 0}@media(max-width:576px){.login-page__header h1{font-size:var(--font-size-2xl, 1.5rem)}}.login-page__header .subtitle{color:var(--login-text-color, var(--color-white, #ffffff));font-size:var(--font-size-base, 1rem);margin:0;font-weight:var(--font-weight-normal, 400);opacity:.8}.login-page__form .btn{width:100%;margin-bottom:var(--spacing-3, .75rem)}.login-page__actions{margin-top:var(--spacing-6, 1.5rem);display:flex;flex-direction:column;gap:var(--spacing-3, .75rem)}.login-page__footer{text-align:center;margin-top:var(--spacing-8, 2rem);padding-top:var(--spacing-6, 1.5rem);border-top:1px solid rgba(255,255,255,.2)}.login-page__footer p{color:#fffc;font-size:var(--font-size-sm, .875rem);margin:0}.login-page__version{text-align:center;margin-top:var(--spacing-4, 1rem)}.login-page__version span{font-size:var(--font-size-xs, .75rem);color:#ffffff80}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-3, .75rem) var(--spacing-6, 1.5rem);font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-medium, 500);border-radius:var(--border-radius-lg, .5rem);border:none;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1)}.btn--lg{height:48px;font-size:var(--font-size-base, 1rem)}.btn--primary{background-color:var(--color-gray-900, #212529);color:var(--color-white, #ffffff);border:1px solid var(--color-primary, #313945)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover, #1c1e4d);border-color:var(--color-primary-hover, #1c1e4d);transform:translateY(-2px);box-shadow:0 10px 15px -3px #0000001a}.btn--primary:active:not(:disabled){transform:translateY(0)}.btn--primary:disabled{opacity:.7;cursor:not-allowed}.btn--primary.loading{pointer-events:none}.btn--secondary{background-color:transparent;color:var(--color-white, #ffffff);border:1px solid rgba(255,255,255,.3)}.btn--secondary:hover:not(:disabled){background-color:#ffffff1a;border-color:#ffffff80}.auth-alert{padding:var(--spacing-4, 1rem);border-radius:var(--border-radius-lg, .5rem);margin-bottom:var(--spacing-4, 1rem)}.auth-alert--info{background:#2ca8ff1a;border:1px solid rgba(44,168,255,.3)}.auth-alert--success{background:#018e111a;border:1px solid rgba(1,142,17,.3)}.auth-alert__content h4{margin:0 0 var(--spacing-2, .5rem) 0;font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-semibold, 600)}.auth-alert__content p{margin:0;font-size:var(--font-size-sm, .875rem);opacity:.9}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8, 2rem)}.auth-loading__spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top:3px solid var(--color-white, #ffffff);border-radius:50%;animation:spin 1s linear infinite}.auth-loading__text{margin-top:var(--spacing-4, 1rem);font-size:var(--font-size-sm, .875rem);color:#fffc}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.login-page__container{animation:none}.login-page__logo-img{transition:none}.auth-loading__spinner{animation:none}}@media(prefers-contrast:high){.login-page__container{border:2px solid var(--color-white, #ffffff)}}\n"] }]
1010
+ }], ctorParameters: () => [{ type: AuthService }], propDecorators: { config: [{
1011
+ type: Input
1012
+ }] } });
1013
+
1014
+ const DEFAULT_DASHBOARD_CONFIG = {
1015
+ title: 'Sistema',
1016
+ logoUrl: 'assets/@dinafi/frmk/logo-mh.png',
1017
+ logoAlt: 'Logo',
1018
+ footerText: 'Ministerio de Hacienda, El Salvador',
1019
+ showVersion: true,
1020
+ version: VERSION,
1021
+ showStaticMenu: true
1022
+ };
1023
+ class DashboardComponent {
1024
+ authService;
1025
+ authorizationService;
1026
+ config = {};
1027
+ userInfo = null;
1028
+ userRoles = [];
1029
+ menuHierarchy = [];
1030
+ isMenuOpen = false;
1031
+ isLoadingMenu = false;
1032
+ openMenuItems = new Set();
1033
+ isUserPanelOpen = false;
1034
+ isMobileMenuOpen = false;
1035
+ _mergedConfig = { ...DEFAULT_DASHBOARD_CONFIG };
1036
+ constructor(authService, authorizationService) {
1037
+ this.authService = authService;
1038
+ this.authorizationService = authorizationService;
1039
+ }
1040
+ ngOnInit() {
1041
+ this._mergedConfig = {
1042
+ ...DEFAULT_DASHBOARD_CONFIG,
1043
+ ...this.config,
1044
+ version: this.config.version || VERSION
1045
+ };
1046
+ this.loadUserInfo();
1047
+ this.loadMenuHierarchy();
1048
+ }
1049
+ getConfig(key) {
1050
+ return this._mergedConfig[key];
1051
+ }
1052
+ get appVersion() {
1053
+ return this._mergedConfig.version;
1054
+ }
1055
+ loadUserInfo() {
1056
+ this.userInfo = this.authService.identityClaims;
1057
+ this.userRoles = this.authService.getUserRoles();
1058
+ }
1059
+ loadMenuHierarchy() {
1060
+ this.isLoadingMenu = true;
1061
+ this.authorizationService.getMenuHierarchy().subscribe({
1062
+ next: (menuItems) => {
1063
+ this.menuHierarchy = this.buildHierarchicalMenu(menuItems);
1064
+ this.isLoadingMenu = false;
1065
+ },
1066
+ error: (error) => {
1067
+ console.error('Error loading menu hierarchy:', error);
1068
+ this.menuHierarchy = [];
1069
+ this.isLoadingMenu = false;
1070
+ }
1071
+ });
1072
+ }
1073
+ buildHierarchicalMenu(flatItems) {
1074
+ const itemMap = new Map();
1075
+ flatItems.forEach(item => {
1076
+ itemMap.set(item.path, { ...item, children: [] });
1077
+ });
1078
+ const rootItems = [];
1079
+ flatItems.forEach(item => {
1080
+ const currentItem = itemMap.get(item.path);
1081
+ if (item.level === 1) {
1082
+ rootItems.push(currentItem);
1083
+ }
1084
+ else {
1085
+ const parent = this.findParent(item, flatItems);
1086
+ if (parent) {
1087
+ const parentItem = itemMap.get(parent.path);
1088
+ if (parentItem?.children) {
1089
+ parentItem.children.push(currentItem);
1090
+ }
1091
+ }
1092
+ }
1093
+ });
1094
+ return rootItems;
1095
+ }
1096
+ findParent(item, allItems) {
1097
+ for (const potentialParent of allItems) {
1098
+ if (potentialParent.level === item.level - 1 &&
1099
+ item.path.startsWith(potentialParent.path) &&
1100
+ item.path !== potentialParent.path) {
1101
+ return potentialParent;
1102
+ }
1103
+ }
1104
+ return null;
1105
+ }
1106
+ toggleMenuItem(itemId, item) {
1107
+ const isCurrentlyOpen = this.openMenuItems.has(itemId);
1108
+ if (isCurrentlyOpen) {
1109
+ this.closeMenuAndChildren(itemId);
1110
+ }
1111
+ else {
1112
+ this.closeSiblingMenus(item);
1113
+ this.openMenuItems.add(itemId);
1114
+ }
1115
+ }
1116
+ closeMenuAndChildren(itemId) {
1117
+ this.openMenuItems.delete(itemId);
1118
+ const itemsToClose = Array.from(this.openMenuItems).filter(id => id.startsWith(itemId + '-'));
1119
+ itemsToClose.forEach(id => this.openMenuItems.delete(id));
1120
+ }
1121
+ closeSiblingMenus(currentItem) {
1122
+ if (currentItem.level === 1) {
1123
+ const rootItems = this.getRootMenuItems();
1124
+ rootItems.forEach(rootItem => {
1125
+ if (rootItem.code !== currentItem.code) {
1126
+ this.closeMenuAndChildren(rootItem.code);
1127
+ }
1128
+ });
1129
+ }
1130
+ else {
1131
+ const allItems = this.flattenMenuItems(this.menuHierarchy);
1132
+ const parent = this.findParent(currentItem, allItems);
1133
+ if (parent?.children) {
1134
+ parent.children.forEach(sibling => {
1135
+ if (sibling.code !== currentItem.code) {
1136
+ this.closeMenuAndChildren(sibling.code);
1137
+ }
1138
+ });
1139
+ }
1140
+ }
1141
+ }
1142
+ flattenMenuItems(items) {
1143
+ const flattened = [];
1144
+ const flatten = (itemList) => {
1145
+ itemList.forEach(item => {
1146
+ flattened.push(item);
1147
+ if (item.children) {
1148
+ flatten(item.children);
1149
+ }
1150
+ });
1151
+ };
1152
+ flatten(items);
1153
+ return flattened;
1154
+ }
1155
+ onMenuItemClick(event, item) {
1156
+ if (this.hasChildren(item)) {
1157
+ event.preventDefault();
1158
+ event.stopPropagation();
1159
+ this.toggleMenuItem(item.code, item);
1160
+ }
1161
+ }
1162
+ onDocumentClick(event) {
1163
+ const target = event.target;
1164
+ const navElement = target.closest('.dashboard-nav');
1165
+ const userPanel = target.closest('.user-profile');
1166
+ if (!navElement) {
1167
+ this.openMenuItems.clear();
1168
+ }
1169
+ if (!userPanel) {
1170
+ this.isUserPanelOpen = false;
1171
+ }
1172
+ }
1173
+ toggleUserPanel(event) {
1174
+ event.stopPropagation();
1175
+ this.isUserPanelOpen = !this.isUserPanelOpen;
1176
+ }
1177
+ getUsername() {
1178
+ if (!this.userInfo?.preferred_username)
1179
+ return 'usuario';
1180
+ const username = this.userInfo.preferred_username;
1181
+ const atIndex = username.indexOf('@');
1182
+ return atIndex > 0 ? username.substring(0, atIndex) : username;
1183
+ }
1184
+ getUserFullName() {
1185
+ return this.userInfo?.name || 'Usuario';
1186
+ }
1187
+ getDocument() {
1188
+ return this.userInfo?.dui || 'N/A';
1189
+ }
1190
+ getInstitution() {
1191
+ return this.userInfo?.direccion || 'N/A';
1192
+ }
1193
+ getDependency() {
1194
+ return this.userInfo?.dependencia || 'N/A';
1195
+ }
1196
+ getRole() {
1197
+ return this.userInfo?.cargo || 'N/A';
1198
+ }
1199
+ isMenuItemOpen(itemId) {
1200
+ return this.openMenuItems.has(itemId);
1201
+ }
1202
+ hasChildren(item) {
1203
+ return !!(item.children && item.children.length > 0);
1204
+ }
1205
+ getRootMenuItems() {
1206
+ return this.menuHierarchy.filter(item => item.level === 1);
1207
+ }
1208
+ logoutAndRedirect() {
1209
+ this.authService.logoutAndRedirect();
1210
+ }
1211
+ getUserInitials() {
1212
+ if (!this.userInfo)
1213
+ return 'U';
1214
+ const name = this.userInfo.name || this.userInfo.preferred_username || 'Usuario';
1215
+ const words = name.split(' ');
1216
+ if (words.length >= 2) {
1217
+ return (words[0][0] + words[1][0]).toUpperCase();
1218
+ }
1219
+ else {
1220
+ return name.substring(0, 2).toUpperCase();
1221
+ }
1222
+ }
1223
+ toggleMobileMenu() {
1224
+ this.isMobileMenuOpen = !this.isMobileMenuOpen;
1225
+ }
1226
+ closeMobileMenu() {
1227
+ this.isMobileMenuOpen = false;
1228
+ }
1229
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DashboardComponent, deps: [{ token: AuthService }, { token: AuthorizationService }], target: i0.ɵɵFactoryTarget.Component });
1230
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.16", type: DashboardComponent, isStandalone: true, selector: "lib-dashboard", inputs: { config: "config" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, ngImport: i0, template: "<div class=\"dashboard\">\r\n <!-- Header -->\r\n <header class=\"dashboard-header\">\r\n <!-- Mobile Header Top -->\r\n <div class=\"header-mobile-top\">\r\n <div class=\"ministry-logo-mobile\">\r\n <img [src]=\"getConfig('logoUrl')\" [alt]=\"getConfig('logoAlt')\" />\r\n </div>\r\n <h1 class=\"mobile-title\">{{ getConfig('title') }}</h1>\r\n </div>\r\n\r\n <!-- Mobile Header Bottom -->\r\n <div class=\"header-mobile-bottom\">\r\n <button class=\"hamburger-btn\" \r\n (click)=\"toggleMobileMenu()\"\r\n [class.active]=\"isMobileMenuOpen\"\r\n aria-label=\"Toggle menu\">\r\n <span class=\"hamburger-line\"></span>\r\n <span class=\"hamburger-line\"></span>\r\n <span class=\"hamburger-line\"></span>\r\n </button>\r\n\r\n <div class=\"user-profile mobile-user\" *ngIf=\"userInfo\">\r\n <button class=\"user-info-trigger\" \r\n (click)=\"toggleUserPanel($event)\"\r\n [attr.aria-expanded]=\"isUserPanelOpen\"\r\n aria-label=\"Abrir men\u00FA de usuario\">\r\n <div class=\"user-avatar\">\r\n <span>{{ getUserInitials() }}</span>\r\n </div>\r\n <div class=\"user-details\">\r\n <span class=\"user-name\">{{ getUsername() }}</span>\r\n </div>\r\n <span class=\"material-symbols-outlined dropdown-icon\">\r\n {{ isUserPanelOpen ? 'expand_less' : 'expand_more' }}\r\n </span>\r\n </button>\r\n \r\n <!-- User Panel -->\r\n <ng-container *ngTemplateOutlet=\"userPanelTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- Desktop Header -->\r\n <div class=\"header-desktop-layout\">\r\n <div class=\"header-left\">\r\n <div class=\"ministry-logo\">\r\n <div class=\"logo-icon\">\r\n <img [src]=\"getConfig('logoUrl')\" [alt]=\"getConfig('logoAlt')\" />\r\n </div>\r\n <div class=\"ministry-info\">\r\n <h1>{{ getConfig('title') }}</h1>\r\n <span class=\"subtitle\" *ngIf=\"getConfig('subtitle')\">{{ getConfig('subtitle') }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"header-right\">\r\n <div class=\"user-profile desktop-user\" *ngIf=\"userInfo\">\r\n <button class=\"user-info-trigger\" \r\n (click)=\"toggleUserPanel($event)\"\r\n [attr.aria-expanded]=\"isUserPanelOpen\"\r\n aria-label=\"Abrir men\u00FA de usuario\">\r\n <div class=\"user-avatar\">\r\n <span>{{ getUserInitials() }}</span>\r\n </div>\r\n <div class=\"user-details\">\r\n <span class=\"user-name\">{{ getUsername() }}</span>\r\n </div>\r\n <span class=\"material-symbols-outlined dropdown-icon\">\r\n {{ isUserPanelOpen ? 'expand_less' : 'expand_more' }}\r\n </span>\r\n </button>\r\n \r\n <!-- User Panel -->\r\n <ng-container *ngTemplateOutlet=\"userPanelTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </header>\r\n\r\n <!-- User Panel Template -->\r\n <ng-template #userPanelTemplate>\r\n <div class=\"user-panel\" *ngIf=\"isUserPanelOpen\">\r\n <div class=\"user-panel-header\">\r\n <span class=\"panel-title\">Perfil de Usuario</span>\r\n </div>\r\n <div class=\"user-panel-content\">\r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">person</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">C\u00F3digo de Usuario:</span>\r\n <span class=\"info-value\">{{ getUsername() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">badge</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Nombre de Usuario:</span>\r\n <span class=\"info-value\">{{ getUserFullName() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">credit_card</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Documento:</span>\r\n <span class=\"info-value\">{{ getDocument() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">business</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Instituci\u00F3n:</span>\r\n <span class=\"info-value\">{{ getInstitution() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">apartment</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Dependencia:</span>\r\n <span class=\"info-value\">{{ getDependency() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">work</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Rol:</span>\r\n <span class=\"info-value\">{{ getRole() }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"user-panel-footer\">\r\n <button class=\"logout-btn-panel\" (click)=\"logoutAndRedirect()\" title=\"Cerrar sesi\u00F3n\">\r\n <span class=\"material-symbols-outlined\">logout</span>\r\n <span class=\"logout-text\">CERRAR SESI\u00D3N</span>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Mobile Menu Overlay -->\r\n <div class=\"nav-overlay\" *ngIf=\"isMobileMenuOpen\" (click)=\"closeMobileMenu()\"></div>\r\n\r\n <!-- Navigation -->\r\n <nav class=\"dashboard-nav\" [class.mobile-open]=\"isMobileMenuOpen\">\r\n <div class=\"nav-mobile-header\">\r\n <div class=\"nav-mobile-logo\">\r\n <img [src]=\"getConfig('logoUrl')\" [alt]=\"getConfig('logoAlt')\" />\r\n <span class=\"nav-mobile-title\">Men\u00FA</span>\r\n </div>\r\n <button class=\"nav-close-btn\" (click)=\"closeMobileMenu()\" aria-label=\"Cerrar men\u00FA\">\r\n <span class=\"material-symbols-outlined\">close</span>\r\n </button>\r\n </div>\r\n\r\n <div class=\"nav-container\">\r\n <!-- Static Menu Items -->\r\n <ng-container *ngIf=\"getConfig('showStaticMenu')\">\r\n <a routerLink=\".\" \r\n routerLinkActive=\"active\" \r\n [routerLinkActiveOptions]=\"{exact: true}\" \r\n class=\"nav-item\"\r\n (click)=\"closeMobileMenu()\">\r\n <span class=\"material-symbols-outlined nav-icon\">home</span>\r\n <span class=\"nav-text\">Inicio</span>\r\n </a>\r\n </ng-container>\r\n \r\n <!-- Separator -->\r\n <div class=\"nav-separator\" *ngIf=\"!isLoadingMenu && menuHierarchy.length > 0\"></div>\r\n \r\n <!-- Dynamic Menu -->\r\n <div class=\"dynamic-menu\" *ngIf=\"!isLoadingMenu && menuHierarchy.length > 0\">\r\n <ng-container *ngFor=\"let rootItem of getRootMenuItems()\">\r\n <div class=\"menu-item-container\" [class.has-children]=\"hasChildren(rootItem)\">\r\n <a \r\n [routerLink]=\"hasChildren(rootItem) ? null : rootItem.path\" \r\n routerLinkActive=\"active\" \r\n class=\"nav-item root-item\"\r\n [class.expandable]=\"hasChildren(rootItem)\"\r\n (click)=\"onMenuItemClick($event, rootItem)\">\r\n <span class=\"material-symbols-outlined nav-icon\">folder</span>\r\n <span class=\"nav-text\">{{ rootItem.name }}</span>\r\n <span class=\"material-symbols-outlined expand-icon\" *ngIf=\"hasChildren(rootItem)\">\r\n {{ isMenuItemOpen(rootItem.code) ? 'expand_more' : 'chevron_right' }}\r\n </span>\r\n </a>\r\n \r\n <!-- Submenu -->\r\n <div class=\"submenu\" *ngIf=\"hasChildren(rootItem) && isMenuItemOpen(rootItem.code)\">\r\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { items: rootItem.children, level: 2 }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n <!-- Loading Indicator -->\r\n <div class=\"menu-loading\" *ngIf=\"isLoadingMenu\">\r\n <span class=\"material-symbols-outlined nav-icon\">hourglass_empty</span>\r\n <span class=\"nav-text\">Cargando men\u00FA...</span>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <!-- Recursive Menu Template -->\r\n <ng-template #menuTemplate let-items=\"items\" let-level=\"level\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <div class=\"menu-item-container\" [class.has-children]=\"hasChildren(item)\" [attr.data-level]=\"level\">\r\n <a \r\n [routerLink]=\"hasChildren(item) ? null : item.path\" \r\n routerLinkActive=\"active\" \r\n class=\"nav-item submenu-item\"\r\n [class.expandable]=\"hasChildren(item)\"\r\n (click)=\"onMenuItemClick($event, item)\">\r\n <span class=\"material-symbols-outlined nav-icon\">\r\n {{ level === 2 ? 'edit_note' : 'radio_button_unchecked' }}\r\n </span>\r\n <span class=\"nav-text\">{{ item.name }}</span>\r\n <span class=\"material-symbols-outlined expand-icon\" *ngIf=\"hasChildren(item)\">\r\n {{ isMenuItemOpen(item.code) ? 'expand_more' : 'chevron_right' }}\r\n </span>\r\n </a>\r\n \r\n <!-- Recursive Submenu (max 5 levels) -->\r\n <div class=\"submenu\" *ngIf=\"hasChildren(item) && isMenuItemOpen(item.code) && level < 5\">\r\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { items: item.children, level: level + 1 }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Main Content -->\r\n <main class=\"dashboard-content\">\r\n <div class=\"content-wrapper\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <!-- Footer -->\r\n <footer class=\"dashboard-footer\">\r\n <div class=\"footer-content\">\r\n <span class=\"footer-text\">\r\n {{ getConfig('footerText') }}\r\n <ng-container *ngIf=\"getConfig('showVersion')\">\r\n Versi\u00F3n {{ appVersion }}.\r\n </ng-container>\r\n Todos los derechos reservados.\r\n </span>\r\n </div>\r\n </footer>\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-height:100vh}.dashboard{min-height:100vh;display:flex;flex-direction:column;background:var(--color-primary, #313945);font-family:var(--font-family-primary, \"Museo Sans\", sans-serif)}.dashboard-header{background:var(--color-primary, #313945);color:var(--color-white, #ffffff);padding:var(--spacing-4, 1rem) var(--spacing-6, 1.5rem);border-bottom:1px solid var(--color-gray-200, #e9ecef);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:var(--spacing-2, .5rem);padding:var(--spacing-3, .75rem);align-items:stretch}}.header-mobile-top{display:none}@media(max-width:768px){.header-mobile-top{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--spacing-3, .75rem)}}.ministry-logo-mobile{display:none}@media(max-width:768px){.ministry-logo-mobile{display:flex;align-items:center}.ministry-logo-mobile img{height:80px;width:auto;filter:brightness(0) invert(1)}}.mobile-title{display:none}@media(max-width:768px){.mobile-title{display:block;font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-bold, 700);color:var(--color-white, #ffffff);margin:0;text-align:right;flex:1}}.header-mobile-bottom{display:none}@media(max-width:768px){.header-mobile-bottom{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--spacing-3, .75rem);padding-top:var(--spacing-2, .5rem)}}.header-desktop-layout{display:flex;justify-content:space-between;align-items:center;width:100%}@media(max-width:768px){.header-desktop-layout{display:none}}.header-left{display:flex;align-items:center;gap:var(--spacing-3, .75rem)}.header-right{display:flex;align-items:center}.ministry-logo{display:flex;align-items:center;gap:var(--spacing-4, 1rem)}.ministry-logo .logo-icon{font-size:3rem;display:flex;width:120px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.ministry-logo .logo-icon img{width:100%;height:auto}.ministry-logo .ministry-info h1{font-family:var(--font-family-primary, sans-serif);font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);margin:0;color:var(--color-white, #ffffff);text-shadow:0 2px 4px rgba(0,0,0,.2);line-height:1.2}.ministry-logo .ministry-info .subtitle{font-size:var(--font-size-sm, .875rem);color:#ffffffe6;font-weight:var(--font-weight-medium, 500)}.hamburger-btn{display:none;flex-direction:column;justify-content:space-around;width:40px;height:40px;background:#ffffff1a;border:none;border-radius:var(--border-radius-md, .375rem);cursor:pointer;padding:8px;z-index:1003;transition:all .3s ease;flex-shrink:0}@media(max-width:768px){.hamburger-btn{display:flex}}.hamburger-btn .hamburger-line{width:100%;height:3px;background:var(--color-white, #ffffff);border-radius:2px;transition:all .3s ease;transform-origin:center}.hamburger-btn.active{background:#fff3}.hamburger-btn.active .hamburger-line:nth-child(1){transform:translateY(9px) rotate(45deg)}.hamburger-btn.active .hamburger-line:nth-child(2){opacity:0}.hamburger-btn.active .hamburger-line:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.hamburger-btn:hover{background:#fff3}.user-profile{position:relative;display:flex;align-items:center}.user-profile .user-info-trigger{display:flex;align-items:center;gap:var(--spacing-3, .75rem);background:#ffffff1a;padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem);border-radius:var(--border-radius-xl, .75rem);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:inherit;font-family:inherit}.user-profile .user-info-trigger:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.user-profile .user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--color-white, #ffffff) 0%,#e2e8f0 100%);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold, 700);color:var(--color-primary, #313945);font-size:var(--font-size-lg, 1.125rem);box-shadow:0 4px 12px #0000001a;border:2px solid rgba(255,255,255,.3)}.user-profile .user-details{display:flex;flex-direction:column;gap:var(--spacing-1, .25rem)}.user-profile .user-details .user-name{font-size:var(--font-size-md, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-white, #ffffff)}.user-profile .dropdown-icon{color:#fffc;transition:transform .3s ease}.user-panel{position:absolute;top:calc(100% + var(--spacing-2, .5rem));right:0;min-width:350px;background:var(--color-white, #ffffff);border-radius:var(--border-radius-lg, .5rem);box-shadow:0 10px 40px #0003;border:1px solid var(--color-gray-200, #e9ecef);z-index:1100;overflow:hidden;animation:slideDown .3s cubic-bezier(.4,0,.2,1)}@media(max-width:768px){.user-panel{position:absolute;right:var(--spacing-2, .5rem);left:var(--spacing-2, .5rem);min-width:auto;width:auto}}.user-panel-header{background:linear-gradient(135deg,#3c4557,#2a3142);padding:var(--spacing-4, 1rem);border-bottom:1px solid var(--color-gray-200, #e9ecef)}.user-panel-header .panel-title{font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-bold, 700);color:var(--color-white, #ffffff)}.user-panel-content{padding:var(--spacing-4, 1rem);max-height:400px;overflow-y:auto}.user-info-item{display:flex;align-items:flex-start;gap:var(--spacing-3, .75rem);padding:var(--spacing-3, .75rem);border-bottom:1px solid var(--color-gray-100, #f1f3f4);transition:background .2s ease}.user-info-item:last-child{border-bottom:none}.user-info-item:hover{background:var(--color-gray-50, #f8f9fa)}.user-info-item .info-icon{font-size:var(--font-size-xl, 1.25rem);flex-shrink:0;color:var(--color-primary, #313945)}.user-info-item .info-content{display:flex;flex-direction:column;gap:var(--spacing-1, .25rem);flex:1}.user-info-item .info-content .info-label{font-size:var(--font-size-xs, .75rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-600, #5a6268);text-transform:uppercase;letter-spacing:.5px}.user-info-item .info-content .info-value{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-gray-900, #212529);word-break:break-word}.user-panel-footer{padding:var(--spacing-4, 1rem);background:var(--color-gray-50, #f8f9fa);border-top:1px solid var(--color-gray-200, #e9ecef)}.user-panel-footer .logout-btn-panel{width:100%;background:linear-gradient(135deg,#dc2626,#b91c1c);color:var(--color-white, #ffffff);border:none;padding:var(--spacing-3, .75rem) var(--spacing-4, 1rem);border-radius:var(--border-radius-lg, .5rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-bold, 700);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:var(--spacing-2, .5rem);text-transform:uppercase;letter-spacing:.5px}.user-panel-footer .logout-btn-panel:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);transform:translateY(-2px);box-shadow:0 8px 20px #dc26264d}.user-panel-footer .logout-btn-panel:active{transform:translateY(0)}.nav-overlay{display:none}@media(max-width:768px){.nav-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:1001;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.dashboard-nav{border-bottom:1px solid var(--color-gray-200, #e9ecef);box-shadow:0 2px 8px #0000000d;background-color:#3c4557!important;position:sticky;top:88px;z-index:100;transition:transform .3s ease}@media(max-width:768px){.dashboard-nav{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85%;transform:translate(-100%);z-index:1002;overflow-y:auto;box-shadow:2px 0 10px #0000004d;border-bottom:none;border-right:1px solid var(--color-gray-200, #e9ecef)}.dashboard-nav.mobile-open{transform:translate(0)}}.dashboard-nav .nav-mobile-header{display:none}@media(max-width:768px){.dashboard-nav .nav-mobile-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4, 1rem);background:var(--color-primary, #313945);border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:10}}.dashboard-nav .nav-mobile-logo{display:flex;align-items:center;gap:var(--spacing-3, .75rem)}.dashboard-nav .nav-mobile-logo img{width:40px;height:auto;filter:brightness(0) invert(1)}.dashboard-nav .nav-mobile-logo .nav-mobile-title{color:var(--color-white, #ffffff);font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-semibold, 600)}.dashboard-nav .nav-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff1a;border:none;border-radius:var(--border-radius-md, .375rem);cursor:pointer;transition:all .2s ease;color:var(--color-white, #ffffff)}.dashboard-nav .nav-close-btn:hover{background:#fff3}.nav-container{display:flex;flex-wrap:wrap;gap:var(--spacing-1, .25rem);padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem)}@media(max-width:768px){.nav-container{flex-direction:column;padding:var(--spacing-4, 1rem);gap:var(--spacing-2, .5rem)}}.nav-item{display:flex;align-items:center;gap:var(--spacing-2, .5rem);padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem);color:var(--color-white, #ffffff);text-decoration:none;border-radius:var(--border-radius-md, .375rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);transition:all .2s ease;cursor:pointer;background:transparent;border:none;font-family:inherit}.nav-item:hover{background:#ffffff1a}.nav-item.active{background:#fff3}.nav-item .nav-icon{font-size:20px}.nav-item .expand-icon{margin-left:auto;font-size:16px}.nav-separator{width:1px;height:24px;background:#fff3;margin:0 var(--spacing-2, .5rem)}@media(max-width:768px){.nav-separator{width:100%;height:1px;margin:var(--spacing-2, .5rem) 0}}.submenu{padding-left:var(--spacing-4, 1rem)}@media(max-width:768px){.submenu{padding-left:var(--spacing-6, 1.5rem)}}.submenu .submenu-item{padding:var(--spacing-2, .5rem) var(--spacing-3, .75rem);font-size:var(--font-size-sm, .875rem)}.menu-loading{display:flex;align-items:center;gap:var(--spacing-2, .5rem);color:#ffffffb3;padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem)}.dashboard-content{flex:1;background:var(--color-white, #ffffff)}.dashboard-content .content-wrapper{padding:var(--spacing-6, 1.5rem);max-width:1400px;margin:0 auto}@media(max-width:768px){.dashboard-content .content-wrapper{padding:var(--spacing-4, 1rem)}}.dashboard-footer{background:#3c4557;color:#c5c8cf;padding:var(--spacing-4, 1rem) var(--spacing-6, 1.5rem);border-top:1px solid var(--color-gray-200, #e9ecef)}.dashboard-footer .footer-content{text-align:center}.dashboard-footer .footer-text{font-size:var(--font-size-sm, .875rem)}@media(min-width:769px){.mobile-user{display:none}}@media(max-width:768px){.desktop-user{display:none}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i4.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
1231
+ }
1232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: DashboardComponent, decorators: [{
1233
+ type: Component,
1234
+ args: [{ selector: 'lib-dashboard', standalone: true, imports: [CommonModule, RouterModule], template: "<div class=\"dashboard\">\r\n <!-- Header -->\r\n <header class=\"dashboard-header\">\r\n <!-- Mobile Header Top -->\r\n <div class=\"header-mobile-top\">\r\n <div class=\"ministry-logo-mobile\">\r\n <img [src]=\"getConfig('logoUrl')\" [alt]=\"getConfig('logoAlt')\" />\r\n </div>\r\n <h1 class=\"mobile-title\">{{ getConfig('title') }}</h1>\r\n </div>\r\n\r\n <!-- Mobile Header Bottom -->\r\n <div class=\"header-mobile-bottom\">\r\n <button class=\"hamburger-btn\" \r\n (click)=\"toggleMobileMenu()\"\r\n [class.active]=\"isMobileMenuOpen\"\r\n aria-label=\"Toggle menu\">\r\n <span class=\"hamburger-line\"></span>\r\n <span class=\"hamburger-line\"></span>\r\n <span class=\"hamburger-line\"></span>\r\n </button>\r\n\r\n <div class=\"user-profile mobile-user\" *ngIf=\"userInfo\">\r\n <button class=\"user-info-trigger\" \r\n (click)=\"toggleUserPanel($event)\"\r\n [attr.aria-expanded]=\"isUserPanelOpen\"\r\n aria-label=\"Abrir men\u00FA de usuario\">\r\n <div class=\"user-avatar\">\r\n <span>{{ getUserInitials() }}</span>\r\n </div>\r\n <div class=\"user-details\">\r\n <span class=\"user-name\">{{ getUsername() }}</span>\r\n </div>\r\n <span class=\"material-symbols-outlined dropdown-icon\">\r\n {{ isUserPanelOpen ? 'expand_less' : 'expand_more' }}\r\n </span>\r\n </button>\r\n \r\n <!-- User Panel -->\r\n <ng-container *ngTemplateOutlet=\"userPanelTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n <!-- Desktop Header -->\r\n <div class=\"header-desktop-layout\">\r\n <div class=\"header-left\">\r\n <div class=\"ministry-logo\">\r\n <div class=\"logo-icon\">\r\n <img [src]=\"getConfig('logoUrl')\" [alt]=\"getConfig('logoAlt')\" />\r\n </div>\r\n <div class=\"ministry-info\">\r\n <h1>{{ getConfig('title') }}</h1>\r\n <span class=\"subtitle\" *ngIf=\"getConfig('subtitle')\">{{ getConfig('subtitle') }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"header-right\">\r\n <div class=\"user-profile desktop-user\" *ngIf=\"userInfo\">\r\n <button class=\"user-info-trigger\" \r\n (click)=\"toggleUserPanel($event)\"\r\n [attr.aria-expanded]=\"isUserPanelOpen\"\r\n aria-label=\"Abrir men\u00FA de usuario\">\r\n <div class=\"user-avatar\">\r\n <span>{{ getUserInitials() }}</span>\r\n </div>\r\n <div class=\"user-details\">\r\n <span class=\"user-name\">{{ getUsername() }}</span>\r\n </div>\r\n <span class=\"material-symbols-outlined dropdown-icon\">\r\n {{ isUserPanelOpen ? 'expand_less' : 'expand_more' }}\r\n </span>\r\n </button>\r\n \r\n <!-- User Panel -->\r\n <ng-container *ngTemplateOutlet=\"userPanelTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </header>\r\n\r\n <!-- User Panel Template -->\r\n <ng-template #userPanelTemplate>\r\n <div class=\"user-panel\" *ngIf=\"isUserPanelOpen\">\r\n <div class=\"user-panel-header\">\r\n <span class=\"panel-title\">Perfil de Usuario</span>\r\n </div>\r\n <div class=\"user-panel-content\">\r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">person</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">C\u00F3digo de Usuario:</span>\r\n <span class=\"info-value\">{{ getUsername() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">badge</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Nombre de Usuario:</span>\r\n <span class=\"info-value\">{{ getUserFullName() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">credit_card</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Documento:</span>\r\n <span class=\"info-value\">{{ getDocument() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">business</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Instituci\u00F3n:</span>\r\n <span class=\"info-value\">{{ getInstitution() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">apartment</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Dependencia:</span>\r\n <span class=\"info-value\">{{ getDependency() }}</span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"user-info-item\">\r\n <span class=\"material-symbols-outlined info-icon\">work</span>\r\n <div class=\"info-content\">\r\n <span class=\"info-label\">Rol:</span>\r\n <span class=\"info-value\">{{ getRole() }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"user-panel-footer\">\r\n <button class=\"logout-btn-panel\" (click)=\"logoutAndRedirect()\" title=\"Cerrar sesi\u00F3n\">\r\n <span class=\"material-symbols-outlined\">logout</span>\r\n <span class=\"logout-text\">CERRAR SESI\u00D3N</span>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <!-- Mobile Menu Overlay -->\r\n <div class=\"nav-overlay\" *ngIf=\"isMobileMenuOpen\" (click)=\"closeMobileMenu()\"></div>\r\n\r\n <!-- Navigation -->\r\n <nav class=\"dashboard-nav\" [class.mobile-open]=\"isMobileMenuOpen\">\r\n <div class=\"nav-mobile-header\">\r\n <div class=\"nav-mobile-logo\">\r\n <img [src]=\"getConfig('logoUrl')\" [alt]=\"getConfig('logoAlt')\" />\r\n <span class=\"nav-mobile-title\">Men\u00FA</span>\r\n </div>\r\n <button class=\"nav-close-btn\" (click)=\"closeMobileMenu()\" aria-label=\"Cerrar men\u00FA\">\r\n <span class=\"material-symbols-outlined\">close</span>\r\n </button>\r\n </div>\r\n\r\n <div class=\"nav-container\">\r\n <!-- Static Menu Items -->\r\n <ng-container *ngIf=\"getConfig('showStaticMenu')\">\r\n <a routerLink=\".\" \r\n routerLinkActive=\"active\" \r\n [routerLinkActiveOptions]=\"{exact: true}\" \r\n class=\"nav-item\"\r\n (click)=\"closeMobileMenu()\">\r\n <span class=\"material-symbols-outlined nav-icon\">home</span>\r\n <span class=\"nav-text\">Inicio</span>\r\n </a>\r\n </ng-container>\r\n \r\n <!-- Separator -->\r\n <div class=\"nav-separator\" *ngIf=\"!isLoadingMenu && menuHierarchy.length > 0\"></div>\r\n \r\n <!-- Dynamic Menu -->\r\n <div class=\"dynamic-menu\" *ngIf=\"!isLoadingMenu && menuHierarchy.length > 0\">\r\n <ng-container *ngFor=\"let rootItem of getRootMenuItems()\">\r\n <div class=\"menu-item-container\" [class.has-children]=\"hasChildren(rootItem)\">\r\n <a \r\n [routerLink]=\"hasChildren(rootItem) ? null : rootItem.path\" \r\n routerLinkActive=\"active\" \r\n class=\"nav-item root-item\"\r\n [class.expandable]=\"hasChildren(rootItem)\"\r\n (click)=\"onMenuItemClick($event, rootItem)\">\r\n <span class=\"material-symbols-outlined nav-icon\">folder</span>\r\n <span class=\"nav-text\">{{ rootItem.name }}</span>\r\n <span class=\"material-symbols-outlined expand-icon\" *ngIf=\"hasChildren(rootItem)\">\r\n {{ isMenuItemOpen(rootItem.code) ? 'expand_more' : 'chevron_right' }}\r\n </span>\r\n </a>\r\n \r\n <!-- Submenu -->\r\n <div class=\"submenu\" *ngIf=\"hasChildren(rootItem) && isMenuItemOpen(rootItem.code)\">\r\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { items: rootItem.children, level: 2 }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n <!-- Loading Indicator -->\r\n <div class=\"menu-loading\" *ngIf=\"isLoadingMenu\">\r\n <span class=\"material-symbols-outlined nav-icon\">hourglass_empty</span>\r\n <span class=\"nav-text\">Cargando men\u00FA...</span>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <!-- Recursive Menu Template -->\r\n <ng-template #menuTemplate let-items=\"items\" let-level=\"level\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <div class=\"menu-item-container\" [class.has-children]=\"hasChildren(item)\" [attr.data-level]=\"level\">\r\n <a \r\n [routerLink]=\"hasChildren(item) ? null : item.path\" \r\n routerLinkActive=\"active\" \r\n class=\"nav-item submenu-item\"\r\n [class.expandable]=\"hasChildren(item)\"\r\n (click)=\"onMenuItemClick($event, item)\">\r\n <span class=\"material-symbols-outlined nav-icon\">\r\n {{ level === 2 ? 'edit_note' : 'radio_button_unchecked' }}\r\n </span>\r\n <span class=\"nav-text\">{{ item.name }}</span>\r\n <span class=\"material-symbols-outlined expand-icon\" *ngIf=\"hasChildren(item)\">\r\n {{ isMenuItemOpen(item.code) ? 'expand_more' : 'chevron_right' }}\r\n </span>\r\n </a>\r\n \r\n <!-- Recursive Submenu (max 5 levels) -->\r\n <div class=\"submenu\" *ngIf=\"hasChildren(item) && isMenuItemOpen(item.code) && level < 5\">\r\n <ng-container *ngTemplateOutlet=\"menuTemplate; context: { items: item.children, level: level + 1 }\"></ng-container>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <!-- Main Content -->\r\n <main class=\"dashboard-content\">\r\n <div class=\"content-wrapper\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </main>\r\n\r\n <!-- Footer -->\r\n <footer class=\"dashboard-footer\">\r\n <div class=\"footer-content\">\r\n <span class=\"footer-text\">\r\n {{ getConfig('footerText') }}\r\n <ng-container *ngIf=\"getConfig('showVersion')\">\r\n Versi\u00F3n {{ appVersion }}.\r\n </ng-container>\r\n Todos los derechos reservados.\r\n </span>\r\n </div>\r\n </footer>\r\n</div>\r\n", styles: [":host{display:block;width:100%;min-height:100vh}.dashboard{min-height:100vh;display:flex;flex-direction:column;background:var(--color-primary, #313945);font-family:var(--font-family-primary, \"Museo Sans\", sans-serif)}.dashboard-header{background:var(--color-primary, #313945);color:var(--color-white, #ffffff);padding:var(--spacing-4, 1rem) var(--spacing-6, 1.5rem);border-bottom:1px solid var(--color-gray-200, #e9ecef);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:var(--spacing-2, .5rem);padding:var(--spacing-3, .75rem);align-items:stretch}}.header-mobile-top{display:none}@media(max-width:768px){.header-mobile-top{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--spacing-3, .75rem)}}.ministry-logo-mobile{display:none}@media(max-width:768px){.ministry-logo-mobile{display:flex;align-items:center}.ministry-logo-mobile img{height:80px;width:auto;filter:brightness(0) invert(1)}}.mobile-title{display:none}@media(max-width:768px){.mobile-title{display:block;font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-bold, 700);color:var(--color-white, #ffffff);margin:0;text-align:right;flex:1}}.header-mobile-bottom{display:none}@media(max-width:768px){.header-mobile-bottom{display:flex;justify-content:space-between;align-items:center;width:100%;gap:var(--spacing-3, .75rem);padding-top:var(--spacing-2, .5rem)}}.header-desktop-layout{display:flex;justify-content:space-between;align-items:center;width:100%}@media(max-width:768px){.header-desktop-layout{display:none}}.header-left{display:flex;align-items:center;gap:var(--spacing-3, .75rem)}.header-right{display:flex;align-items:center}.ministry-logo{display:flex;align-items:center;gap:var(--spacing-4, 1rem)}.ministry-logo .logo-icon{font-size:3rem;display:flex;width:120px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.ministry-logo .logo-icon img{width:100%;height:auto}.ministry-logo .ministry-info h1{font-family:var(--font-family-primary, sans-serif);font-size:var(--font-size-2xl, 1.5rem);font-weight:var(--font-weight-bold, 700);margin:0;color:var(--color-white, #ffffff);text-shadow:0 2px 4px rgba(0,0,0,.2);line-height:1.2}.ministry-logo .ministry-info .subtitle{font-size:var(--font-size-sm, .875rem);color:#ffffffe6;font-weight:var(--font-weight-medium, 500)}.hamburger-btn{display:none;flex-direction:column;justify-content:space-around;width:40px;height:40px;background:#ffffff1a;border:none;border-radius:var(--border-radius-md, .375rem);cursor:pointer;padding:8px;z-index:1003;transition:all .3s ease;flex-shrink:0}@media(max-width:768px){.hamburger-btn{display:flex}}.hamburger-btn .hamburger-line{width:100%;height:3px;background:var(--color-white, #ffffff);border-radius:2px;transition:all .3s ease;transform-origin:center}.hamburger-btn.active{background:#fff3}.hamburger-btn.active .hamburger-line:nth-child(1){transform:translateY(9px) rotate(45deg)}.hamburger-btn.active .hamburger-line:nth-child(2){opacity:0}.hamburger-btn.active .hamburger-line:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.hamburger-btn:hover{background:#fff3}.user-profile{position:relative;display:flex;align-items:center}.user-profile .user-info-trigger{display:flex;align-items:center;gap:var(--spacing-3, .75rem);background:#ffffff1a;padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem);border-radius:var(--border-radius-xl, .75rem);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);color:inherit;font-family:inherit}.user-profile .user-info-trigger:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.user-profile .user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--color-white, #ffffff) 0%,#e2e8f0 100%);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold, 700);color:var(--color-primary, #313945);font-size:var(--font-size-lg, 1.125rem);box-shadow:0 4px 12px #0000001a;border:2px solid rgba(255,255,255,.3)}.user-profile .user-details{display:flex;flex-direction:column;gap:var(--spacing-1, .25rem)}.user-profile .user-details .user-name{font-size:var(--font-size-md, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-white, #ffffff)}.user-profile .dropdown-icon{color:#fffc;transition:transform .3s ease}.user-panel{position:absolute;top:calc(100% + var(--spacing-2, .5rem));right:0;min-width:350px;background:var(--color-white, #ffffff);border-radius:var(--border-radius-lg, .5rem);box-shadow:0 10px 40px #0003;border:1px solid var(--color-gray-200, #e9ecef);z-index:1100;overflow:hidden;animation:slideDown .3s cubic-bezier(.4,0,.2,1)}@media(max-width:768px){.user-panel{position:absolute;right:var(--spacing-2, .5rem);left:var(--spacing-2, .5rem);min-width:auto;width:auto}}.user-panel-header{background:linear-gradient(135deg,#3c4557,#2a3142);padding:var(--spacing-4, 1rem);border-bottom:1px solid var(--color-gray-200, #e9ecef)}.user-panel-header .panel-title{font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-bold, 700);color:var(--color-white, #ffffff)}.user-panel-content{padding:var(--spacing-4, 1rem);max-height:400px;overflow-y:auto}.user-info-item{display:flex;align-items:flex-start;gap:var(--spacing-3, .75rem);padding:var(--spacing-3, .75rem);border-bottom:1px solid var(--color-gray-100, #f1f3f4);transition:background .2s ease}.user-info-item:last-child{border-bottom:none}.user-info-item:hover{background:var(--color-gray-50, #f8f9fa)}.user-info-item .info-icon{font-size:var(--font-size-xl, 1.25rem);flex-shrink:0;color:var(--color-primary, #313945)}.user-info-item .info-content{display:flex;flex-direction:column;gap:var(--spacing-1, .25rem);flex:1}.user-info-item .info-content .info-label{font-size:var(--font-size-xs, .75rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-gray-600, #5a6268);text-transform:uppercase;letter-spacing:.5px}.user-info-item .info-content .info-value{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-gray-900, #212529);word-break:break-word}.user-panel-footer{padding:var(--spacing-4, 1rem);background:var(--color-gray-50, #f8f9fa);border-top:1px solid var(--color-gray-200, #e9ecef)}.user-panel-footer .logout-btn-panel{width:100%;background:linear-gradient(135deg,#dc2626,#b91c1c);color:var(--color-white, #ffffff);border:none;padding:var(--spacing-3, .75rem) var(--spacing-4, 1rem);border-radius:var(--border-radius-lg, .5rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-bold, 700);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;gap:var(--spacing-2, .5rem);text-transform:uppercase;letter-spacing:.5px}.user-panel-footer .logout-btn-panel:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);transform:translateY(-2px);box-shadow:0 8px 20px #dc26264d}.user-panel-footer .logout-btn-panel:active{transform:translateY(0)}.nav-overlay{display:none}@media(max-width:768px){.nav-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:1001;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.dashboard-nav{border-bottom:1px solid var(--color-gray-200, #e9ecef);box-shadow:0 2px 8px #0000000d;background-color:#3c4557!important;position:sticky;top:88px;z-index:100;transition:transform .3s ease}@media(max-width:768px){.dashboard-nav{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85%;transform:translate(-100%);z-index:1002;overflow-y:auto;box-shadow:2px 0 10px #0000004d;border-bottom:none;border-right:1px solid var(--color-gray-200, #e9ecef)}.dashboard-nav.mobile-open{transform:translate(0)}}.dashboard-nav .nav-mobile-header{display:none}@media(max-width:768px){.dashboard-nav .nav-mobile-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4, 1rem);background:var(--color-primary, #313945);border-bottom:1px solid rgba(255,255,255,.1);position:sticky;top:0;z-index:10}}.dashboard-nav .nav-mobile-logo{display:flex;align-items:center;gap:var(--spacing-3, .75rem)}.dashboard-nav .nav-mobile-logo img{width:40px;height:auto;filter:brightness(0) invert(1)}.dashboard-nav .nav-mobile-logo .nav-mobile-title{color:var(--color-white, #ffffff);font-size:var(--font-size-lg, 1.125rem);font-weight:var(--font-weight-semibold, 600)}.dashboard-nav .nav-close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff1a;border:none;border-radius:var(--border-radius-md, .375rem);cursor:pointer;transition:all .2s ease;color:var(--color-white, #ffffff)}.dashboard-nav .nav-close-btn:hover{background:#fff3}.nav-container{display:flex;flex-wrap:wrap;gap:var(--spacing-1, .25rem);padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem)}@media(max-width:768px){.nav-container{flex-direction:column;padding:var(--spacing-4, 1rem);gap:var(--spacing-2, .5rem)}}.nav-item{display:flex;align-items:center;gap:var(--spacing-2, .5rem);padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem);color:var(--color-white, #ffffff);text-decoration:none;border-radius:var(--border-radius-md, .375rem);font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);transition:all .2s ease;cursor:pointer;background:transparent;border:none;font-family:inherit}.nav-item:hover{background:#ffffff1a}.nav-item.active{background:#fff3}.nav-item .nav-icon{font-size:20px}.nav-item .expand-icon{margin-left:auto;font-size:16px}.nav-separator{width:1px;height:24px;background:#fff3;margin:0 var(--spacing-2, .5rem)}@media(max-width:768px){.nav-separator{width:100%;height:1px;margin:var(--spacing-2, .5rem) 0}}.submenu{padding-left:var(--spacing-4, 1rem)}@media(max-width:768px){.submenu{padding-left:var(--spacing-6, 1.5rem)}}.submenu .submenu-item{padding:var(--spacing-2, .5rem) var(--spacing-3, .75rem);font-size:var(--font-size-sm, .875rem)}.menu-loading{display:flex;align-items:center;gap:var(--spacing-2, .5rem);color:#ffffffb3;padding:var(--spacing-2, .5rem) var(--spacing-4, 1rem)}.dashboard-content{flex:1;background:var(--color-white, #ffffff)}.dashboard-content .content-wrapper{padding:var(--spacing-6, 1.5rem);max-width:1400px;margin:0 auto}@media(max-width:768px){.dashboard-content .content-wrapper{padding:var(--spacing-4, 1rem)}}.dashboard-footer{background:#3c4557;color:#c5c8cf;padding:var(--spacing-4, 1rem) var(--spacing-6, 1.5rem);border-top:1px solid var(--color-gray-200, #e9ecef)}.dashboard-footer .footer-content{text-align:center}.dashboard-footer .footer-text{font-size:var(--font-size-sm, .875rem)}@media(min-width:769px){.mobile-user{display:none}}@media(max-width:768px){.desktop-user{display:none}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}\n"] }]
1235
+ }], ctorParameters: () => [{ type: AuthService }, { type: AuthorizationService }], propDecorators: { config: [{
1236
+ type: Input
1237
+ }], onDocumentClick: [{
1238
+ type: HostListener,
1239
+ args: ['document:click', ['$event']]
1240
+ }] } });
1241
+
1242
+ // ========================================
1243
+ // @dinafi/frmk - Public API
1244
+ // Angular Shared Library - Ministerio de Hacienda
1245
+ // ========================================
1246
+ // === VERSION ===
1247
+
1248
+ /**
1249
+ * Generated bundle index. Do not edit.
1250
+ */
1251
+
1252
+ export { AuthService, AuthorizationService, ConfigService, DEFAULT_LIBRARY_CONFIG, DEFAULT_LOGIN_CONFIG, DashboardComponent, FRMK_LIBRARY_CONFIG, LoginComponent, VERSION, VERSION_INFO, authGuard, getAppConfig, getAppConfigWithServerData, getAuthConfig, getAuthConfigEnv, getCurrentAppConfig, getDefaultAppConfig, getLibraryConfig, initializeLibraryConfig, isLibraryConfigured, mapConfigServerResponse, provideFrmkConfig, setCurrentAppConfig };
1253
+ //# sourceMappingURL=shared-lib-angular.mjs.map