@indice/ng-components 0.2.146 → 0.2.147

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 (159) hide show
  1. package/_styles.css +1 -1
  2. package/{esm2015/indice-ng-components.js → esm2020/indice-ng-components.mjs} +0 -0
  3. package/{esm2015/lib/controls/avatar-initials/avatar-initials.component.js → esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs} +5 -8
  4. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
  5. package/esm2020/lib/controls/combobox/combobox.component.mjs +96 -0
  6. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +260 -0
  7. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +68 -0
  8. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +36 -0
  9. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +31 -0
  10. package/{esm2015/lib/controls/list-view/list-column.component.js → esm2020/lib/controls/list-view/list-column.component.mjs} +4 -4
  11. package/{esm2015/lib/controls/list-view/list-details-section.component.js → esm2020/lib/controls/list-view/list-details-section.component.mjs} +4 -4
  12. package/{esm2015/lib/controls/list-view/list-tile.component.js → esm2020/lib/controls/list-view/list-tile.component.mjs} +4 -4
  13. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
  14. package/esm2020/lib/controls/list-view/list-view.component.mjs +183 -0
  15. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +42 -0
  16. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +73 -0
  17. package/esm2020/lib/controls/pager/pager.component.mjs +130 -0
  18. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +72 -0
  19. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +25 -0
  20. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +59 -0
  21. package/esm2020/lib/controls/tabs/lib-tab.component.mjs +57 -0
  22. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +28 -0
  23. package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
  24. package/esm2020/lib/controls/toggle/toggle.component.mjs +64 -0
  25. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
  26. package/{esm2015/lib/directives/click-outside.directive.js → esm2020/lib/directives/click-outside.directive.mjs} +4 -4
  27. package/{esm2015/lib/directives/dynamic-component-host.directive.js → esm2020/lib/directives/dynamic-component-host.directive.mjs} +4 -4
  28. package/esm2020/lib/helpers/base-list.component.mjs +181 -0
  29. package/esm2020/lib/icons.mjs +34 -0
  30. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
  31. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +131 -0
  32. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +103 -0
  33. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +47 -0
  34. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +80 -0
  35. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +49 -0
  36. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +98 -0
  37. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
  38. package/esm2020/lib/ng-components.module.mjs +245 -0
  39. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
  40. package/{esm2015/lib/pages/auth/auth-renew/auth-renew.component.js → esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs} +4 -4
  41. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
  42. package/esm2020/lib/pages/http-status/error/error.component.mjs +17 -0
  43. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
  44. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
  45. package/{esm2015/lib/pipes/address.pipe.js → esm2020/lib/pipes/address.pipe.mjs} +4 -4
  46. package/{esm2015/lib/pipes/duration-format.pipe.js → esm2020/lib/pipes/duration-format.pipe.mjs} +4 -4
  47. package/{esm2015/lib/services/component-loader/component-loader-options.class.js → esm2020/lib/services/component-loader/component-loader-options.class.mjs} +0 -0
  48. package/esm2020/lib/services/component-loader/component-loader.class.mjs +188 -0
  49. package/{esm2015/lib/services/component-loader/component-loader.factory.js → esm2020/lib/services/component-loader/component-loader.factory.mjs} +4 -4
  50. package/{esm2015/lib/services/component-loader/content-ref.class.js → esm2020/lib/services/component-loader/content-ref.class.mjs} +0 -0
  51. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
  52. package/esm2020/lib/services/modal-service/modal-container-component.mjs +126 -0
  53. package/{esm2015/lib/services/modal-service/modal-options.class.js → esm2020/lib/services/modal-service/modal-options.class.mjs} +4 -4
  54. package/esm2020/lib/services/modal-service/modal-service.mjs +219 -0
  55. package/{esm2015/lib/services/modal-service/modal-styles.class.js → esm2020/lib/services/modal-service/modal-styles.class.mjs} +0 -0
  56. package/{esm2015/lib/services/modal-service/modal.class.js → esm2020/lib/services/modal-service/modal.class.mjs} +4 -4
  57. package/{esm2015/lib/services/toaster.service.js → esm2020/lib/services/toaster.service.mjs} +4 -4
  58. package/esm2020/lib/tokens.mjs +7 -0
  59. package/{esm2015/lib/types.js → esm2020/lib/types.mjs} +1 -1
  60. package/esm2020/public-api.mjs +56 -0
  61. package/fesm2015/indice-ng-components.mjs +3629 -0
  62. package/fesm2015/indice-ng-components.mjs.map +1 -0
  63. package/fesm2020/indice-ng-components.mjs +3572 -0
  64. package/fesm2020/indice-ng-components.mjs.map +1 -0
  65. package/{indice-ng-components.d.ts → index.d.ts} +0 -0
  66. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
  67. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
  68. package/lib/controls/combobox/combobox.component.d.ts +29 -0
  69. package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
  70. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +1 -1
  71. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +1 -1
  72. package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
  73. package/lib/controls/list-view/list-column.component.d.ts +1 -1
  74. package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
  75. package/lib/controls/list-view/list-tile.component.d.ts +1 -1
  76. package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
  77. package/lib/controls/list-view/list-view.component.d.ts +1 -1
  78. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +1 -1
  79. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
  80. package/lib/controls/pager/pager.component.d.ts +1 -1
  81. package/lib/controls/side-pane/side-pane.component.d.ts +1 -1
  82. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  83. package/lib/controls/tabs/lib-tab-group.component.d.ts +1 -1
  84. package/lib/controls/tabs/lib-tab.component.d.ts +4 -5
  85. package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
  86. package/lib/controls/toaster/toaster.component.d.ts +1 -1
  87. package/lib/controls/toggle/toggle.component.d.ts +1 -1
  88. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
  89. package/lib/directives/click-outside.directive.d.ts +1 -1
  90. package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
  91. package/lib/helpers/base-list.component.d.ts +1 -1
  92. package/lib/icons.d.ts +2 -0
  93. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
  94. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
  95. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
  96. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +1 -1
  97. package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
  98. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +1 -1
  99. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
  100. package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
  101. package/lib/ng-components.module.d.ts +28 -27
  102. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
  103. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
  104. package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
  105. package/lib/pages/http-status/error/error.component.d.ts +1 -1
  106. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
  107. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
  108. package/lib/pipes/address.pipe.d.ts +1 -1
  109. package/lib/pipes/duration-format.pipe.d.ts +1 -1
  110. package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
  111. package/lib/services/modal-service/modal-container-component.d.ts +1 -1
  112. package/lib/tokens.d.ts +2 -0
  113. package/lib/types.d.ts +2 -0
  114. package/package.json +25 -12
  115. package/public-api.d.ts +2 -1
  116. package/bundles/indice-ng-components.umd.js +0 -4181
  117. package/bundles/indice-ng-components.umd.js.map +0 -1
  118. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
  119. package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -269
  120. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -72
  121. package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -39
  122. package/esm2015/lib/controls/language-selection/language-selection.component.js +0 -35
  123. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +0 -32
  124. package/esm2015/lib/controls/list-view/list-view.component.js +0 -186
  125. package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -45
  126. package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +0 -76
  127. package/esm2015/lib/controls/pager/pager.component.js +0 -133
  128. package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -76
  129. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -29
  130. package/esm2015/lib/controls/tabs/lib-tab-group.component.js +0 -60
  131. package/esm2015/lib/controls/tabs/lib-tab.component.js +0 -57
  132. package/esm2015/lib/controls/toaster/toaster-container.component.js +0 -31
  133. package/esm2015/lib/controls/toaster/toaster.component.js +0 -34
  134. package/esm2015/lib/controls/toggle/toggle.component.js +0 -68
  135. package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +0 -75
  136. package/esm2015/lib/helpers/base-list.component.js +0 -182
  137. package/esm2015/lib/icons.js +0 -32
  138. package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +0 -22
  139. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -136
  140. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -108
  141. package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +0 -50
  142. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -85
  143. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +0 -53
  144. package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +0 -101
  145. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -110
  146. package/esm2015/lib/ng-components.module.js +0 -242
  147. package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -34
  148. package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +0 -32
  149. package/esm2015/lib/pages/http-status/error/error.component.js +0 -20
  150. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -18
  151. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -17
  152. package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
  153. package/esm2015/lib/services/modal-service/modal-backdrop-component.js +0 -44
  154. package/esm2015/lib/services/modal-service/modal-container-component.js +0 -128
  155. package/esm2015/lib/services/modal-service/modal-service.js +0 -220
  156. package/esm2015/lib/tokens.js +0 -6
  157. package/esm2015/public-api.js +0 -55
  158. package/fesm2015/indice-ng-components.js +0 -3600
  159. package/fesm2015/indice-ng-components.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indice-ng-components.mjs","sources":["../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.html","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.html","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.html","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.html","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.html","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.html","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.html","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.html","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.html","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.html","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.html","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.ts","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.html","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.ts","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.html","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.html","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/services/component-loader/content-ref.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.factory.ts","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.ts","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.html","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.ts","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.html","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.html","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.html","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.html","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.html","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-styles.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-backdrop-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-options.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-container-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-service.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["//\n// https://github.com/arkon/ng-click-outside\n// the project is inactive - so imoved the directive code in our project\n//\nimport {\n Directive,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n PLATFORM_ID,\n SimpleChanges,\n NgZone,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n// tslint:disable-next-line:directive-selector\n@Directive({ selector: '[clickOutside]' })\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\n\n @Input() clickOutsideEnabled = true;\n\n @Input() attachOutsideOnClick = false;\n @Input() delayClickOutsideInit = false;\n @Input() emitOnBlur = false;\n\n @Input() exclude = '';\n @Input() excludeBeforeClick = false;\n\n @Input() clickOutsideEvents = '';\n\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n // tslint:disable-next-line:variable-name\n private _nodesExcluded: Array<HTMLElement> = [];\n // tslint:disable-next-line:variable-name\n private _events: Array<string> = ['click'];\n\n constructor(\n // tslint:disable-next-line:variable-name\n private _el: ElementRef,\n // tslint:disable-next-line:variable-name\n private _ngZone: NgZone,\n @Inject(PLATFORM_ID) private platformId: any) {\n this._initOnClickBody = this._initOnClickBody.bind(this);\n this._onClickBody = this._onClickBody.bind(this);\n this._onWindowBlur = this._onWindowBlur.bind(this);\n }\n\n ngOnInit(): void {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._init();\n }\n\n ngOnDestroy(): void {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n this._removeClickOutsideListener();\n this._removeAttachOutsideOnClickListener();\n this._removeWindowBlurListener();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!isPlatformBrowser(this.platformId)) { return; }\n\n // tslint:disable-next-line:no-string-literal\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\n this._init();\n }\n }\n\n private _init(): void {\n if (this.clickOutsideEvents !== '') {\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\n }\n\n this._excludeCheck();\n\n if (this.attachOutsideOnClick) {\n this._initAttachOutsideOnClickListener();\n } else {\n this._initOnClickBody();\n }\n\n if (this.emitOnBlur) {\n this._initWindowBlurListener();\n }\n }\n\n private _initOnClickBody(): void {\n if (this.delayClickOutsideInit) {\n setTimeout(this._initClickOutsideListener.bind(this));\n } else {\n this._initClickOutsideListener();\n }\n }\n\n private _excludeCheck(): void {\n if (this.exclude) {\n try {\n const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\n if (nodes) {\n this._nodesExcluded = nodes;\n }\n } catch (err) {\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n\n private _onClickBody(ev: Event): void {\n if (!this.clickOutsideEnabled) { return; }\n\n if (this.excludeBeforeClick) {\n this._excludeCheck();\n }\n\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\n this._emit(ev);\n\n if (this.attachOutsideOnClick) {\n this._removeClickOutsideListener();\n }\n }\n }\n\n /**\n * Resolves problem with outside click on iframe\n * @see https://github.com/arkon/ng-click-outside/issues/32\n */\n private _onWindowBlur(ev: Event): void {\n setTimeout(() => {\n if (!document.hidden) {\n this._emit(ev);\n }\n });\n }\n\n private _emit(ev: Event): void {\n if (!this.clickOutsideEnabled) { return; }\n\n this._ngZone.run(() => this.clickOutside.emit(ev));\n }\n\n private _shouldExclude(target: any): boolean {\n // tslint:disable-next-line:prefer-const\n for (let excludedNode of this._nodesExcluded) {\n if (excludedNode.contains(target)) {\n return true;\n }\n }\n\n return false;\n }\n\n private _initClickOutsideListener(): void {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\n });\n }\n\n private _removeClickOutsideListener(): void {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\n });\n }\n\n private _initAttachOutsideOnClickListener(): void {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\n });\n }\n\n private _removeAttachOutsideOnClickListener(): void {\n this._ngZone.runOutsideAngular(() => {\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\n });\n }\n\n private _initWindowBlurListener(): void {\n this._ngZone.runOutsideAngular(() => {\n window.addEventListener('blur', this._onWindowBlur);\n });\n }\n\n private _removeWindowBlurListener(): void {\n this._ngZone.runOutsideAngular(() => {\n window.removeEventListener('blur', this._onWindowBlur);\n });\n }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MenuOption } from '../../types';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'lib-drop-down-menu',\n templateUrl: './drop-down-menu.component.html',\n})\nexport class DropDownMenuComponent implements OnInit, OnChanges {\n @Input() options: MenuOption[] = [];\n // tslint:disable-next-line:no-input-rename\n @Input('selected') selectedValue: any | null = null;\n @Input() multiple = false;\n @Input() placeholder: string = 'Παρακαλώ επιλέξτε...';\n\n private selectedOption$: MenuOption | null = null;\n public get selectedOption(): MenuOption | null {\n return this.selectedOption$;\n }\n public set selectedOption(option: MenuOption | null) {\n this.selectedOption$ = option;\n this.selectedValue = option ? option.value : null;\n this.expanded = false;\n }\n\n @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\n @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\n\n private expanded$ = false;\n public get expanded(): boolean {\n return this.expanded$;\n }\n public set expanded(value: boolean) {\n this.expanded$ = value;\n }\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\n this.selectedOption$ = this.options.filter((o) => o.value === this.selectedValue)[0];\n }\n }\n\n ngOnInit(): void {}\n\n public isSelected(option: MenuOption): boolean {\n return option != null && this.selectedValue != null && option.value === this.selectedValue;\n }\n\n public onClickOutside($event: any): void {\n this.expanded = false;\n }\n\n public selectOption(option: MenuOption): void {\n this.selectedOption = option;\n this.selectedChange.emit(option.value);\n this.selectedChanged.emit(option.value);\n }\n}\n","<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\n <button\n type=\"button\"\n (click)=\"expanded = !expanded\"\n class=\"dropdown-button\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"true\"\n aria-labelledby=\"listbox-label\"\n >\n <span class=\"dropdown-selected-text\">\n {{ selectedOption?.text || placeholder }}\n </span>\n <span class=\"dropdown-button-icon\">\n <!-- Heroicon name: solid/selector -->\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </span>\n </button>\n <ul\n *ngIf=\"expanded && options && options.length > 0\"\n class=\"dropdown-ul\"\n tabindex=\"-1\"\n role=\"listbox\"\n aria-labelledby=\"listbox-label\"\n aria-activedescendant=\"listbox-option-3\"\n >\n <ng-container *ngFor=\"let option of options\">\n <li\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\n (click)=\"selectOption(option)\"\n id=\"listbox-option-0\"\n role=\"option\"\n >\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\n {{ option.text }}\n </span>\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\n <!-- Heroicon name: solid/check -->\n <svg\n class=\"dropdown-li-selected-indicator\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </span>\n </li>\n </ng-container>\n </ul>\n</div>\n","export class Icons {\n // https://uifabricicons.azurewebsites.net/\n public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\n public static Locations = `ms-Icon ms-Icon--MapPin `;\n public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\n public static Transations = `ms-Icon ms-Icon--PaymentCard `;\n public static Badges = `ms-Icon ms-Icon--IDBadge `;\n\n public static Information = `ms-Icon ms-Icon--Info`;\n public static Refresh = `ms-Icon ms-Icon--Refresh`;\n public static Search = `ms-Icon ms-Icon--Search`;\n public static Add = `ms-Icon ms-Icon--Add`;\n public static Delete = `ms-Icon ms-Icon--Delete`;\n public static SendEmail = `ms-Icon ms-Icon--NewMail`;\n public static Filter = `ms-Icon ms-Icon--Filter`;\n public static Export = `ms-Icon ms-Icon--ExcelDocument`;\n public static Import = `ms-Icon ms-Icon--PeopleAdd`;\n\n public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\n public static TableView = `ms-Icon ms-Icon--Table`;\n public static MapView = `ms-Icon ms-Icon--MapPin`;\n public static EntryView = `ms-Icon ms-Icon--EntryView`;\n\n public static Separator = `ms-Icon ms-Icon--Separator text-white`;\n\n public static ItemsCount = 'ms-Icon ms-Icon--Boards';\n\n public static Heart = 'ms-Icon ms-Icon--Heart';\n public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\n public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\n\n public static Expand = 'ms-Icon ms-Icon--ChevronDown';\n public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\n\n public static SortAsc = 'ms-Icon ms-Icon--Ascending';\n public static SortDesc = 'ms-Icon ms-Icon--Descending';\n\n public static Details = ' ms-Icon ms-Icon--AccountActivity';\n\n public static Messages = ' ms-Icon ms-Icon--Message';\n public static MessagesUnread = ' ms-Icon ms-Icon--MessageFill';\n}\n","import { Observable } from 'rxjs';\n\n\nexport interface IAppNotifications {\n messages: Observable<IResultSet<NavLink>>;\n getMessage?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\n refresh?: () => void | undefined;\n inboxAction?: () => void | undefined;\n}\n\nexport interface IAppLanguagesService {\n options: Observable<MenuOption[]> | undefined;\n selected?: string;\n default?: string;\n setSelected?: (lang: string) => void | undefined;\n}\n\nexport interface IAppLinks {\n public: Observable<NavLink[]>;\n main: Observable<NavLink[]>;\n profile: Observable<NavLink[]>;\n profileActions: Observable<NavLink[]>;\n legal: Observable<NavLink[]>;\n brand: Observable<NavLink[]>;\n notifications?: Observable<NavLink>;\n}\n\n\nexport class NavLink {\n constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string, data?: any) {\n this.text = text;\n this.path = path;\n this.exact = exact;\n this.external = external;\n this.icon = icon;\n this.data = data;\n }\n public text: string;\n public path: string;\n public exact: boolean;\n public external: boolean;\n public icon: string | undefined;\n public type = 'router';\n public data: any | undefined;\n}\n\nexport class ExternalNavLink extends NavLink {\n constructor(text: string, path: string, openInNewTab?: boolean, icon?: string) {\n super(text, path, true, openInNewTab, icon);\n }\n public type = 'external';\n}\n\nexport class FragmentNavLink extends NavLink {\n constructor(text: string, path: string, icon?: string) {\n super(text, path, true, true, icon);\n }\n public type = 'fragment';\n}\n\nexport class NotificationNavLink extends NavLink {\n constructor(text: string, path: string, public isRead: boolean, public creationDate?: Date) {\n super(text, path, true, false, undefined);\n }\n}\n\nexport class ViewAction {\n public type: string;\n public key: string | null;\n public param: any;\n public icon: string;\n public tooltip: string | null;\n\n constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null) {\n this.type = type;\n this.key = key;\n this.param = param;\n this.icon = icon;\n this.tooltip = tooltip;\n }\n}\n\nexport class ListViewType {\n public static Tiles = 'tiles';\n public static Table = 'table';\n public static Map = 'map';\n public static Gallery = 'gallery';\n}\n\nexport class RouterViewAction extends ViewAction {\n public outlet: string | null = null;\n public link: string | null = null;\n constructor(icon: string, link: string, outlet: string | null, tooltip: string | null) {\n super('router-link', null, null, icon, tooltip);\n this.outlet = outlet;\n this.link = link;\n }\n}\n\n\nexport class SwitchViewAction extends ViewAction {\n constructor(view: string, icon: string, tooltip: string | null) {\n super('switch-view', null, view, icon, tooltip);\n }\n}\n\nexport interface IResultSet<T> {\n count: number;\n items: T[];\n}\n\nexport class HeaderMetaItem {\n public key: string | null = null;\n public icon: string | null = null;\n public text: string | null = null;\n}\n\nexport class MenuOption {\n constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\n this.text = text;\n this.value = value;\n this.description = description;\n this.data = data;\n this.icon = icon;\n }\n public text: string;\n public value: any;\n public description: string | undefined;\n public data: any | undefined;\n public icon: string | undefined;\n}\n\nexport interface IAddress {\n id?: string;\n street?: string | null;\n streetNumber?: string | null;\n city?: string | null;\n region?: string | null;\n postalCode?: string | null;\n country?: string | null;\n}\n\nexport interface IShellConfig {\n layout?: ShellLayoutType;\n appLogo: string;\n appLogoAlt: string;\n showHeader: boolean;\n showUserNameOnHeader?: boolean;\n showAlertsOnHeader?: boolean;\n customHeaderComponent?: any;\n showFooter: boolean;\n customFooterComponent?: any;\n fluid: boolean;\n showLangsOnHeader?: boolean;\n}\n\nexport enum ShellLayoutType {\n Stacked = 'Stacked',\n Sidebar = 'Sidebar'\n}\n\nexport class DefaultShellConfig implements IShellConfig {\n layout = ShellLayoutType.Stacked;\n appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\n appLogoAlt = 'your app name here';\n showHeader = true;\n showUserNameOnHeader = false;\n showAlertsOnHeader = false;\n showFooter = true;\n fluid = false;\n}\n\nexport enum SCREEN_SIZE {\n XS,\n SM,\n MD,\n LG,\n XL\n}\n\nexport interface IScreenSize {\n id: SCREEN_SIZE;\n name: string;\n css: string;\n}\n\nexport enum ToastType {\n Info = 'info',\n Success = 'success',\n Error = 'error',\n Warning = 'warning'\n}\n\nexport const NULL_TOAST = { title : '_____NULL_____' } as Toast;\n\nexport interface Toast {\n type: ToastType;\n title: string;\n body: string;\n delay: number;\n}\n\nexport enum SidePaneSize {\n Default = '',\n Small25 = '25%',\n Medium50 = '50%',\n Large75 = '75%'\n}\n\nexport enum SidePaneOverlayType {\n Default = '',\n None = '-opacity-0',\n Light = '',\n Dark = '-opacity-50'\n}\n\n\nexport interface IValidationProblemDetails {\n type?: string | undefined;\n title?: string | undefined;\n status?: number | undefined;\n detail?: string | undefined;\n instance?: string | undefined;\n errors?: { [key: string]: string[]; } | undefined;\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Icons } from '../../icons';\nimport { MenuOption } from '../../types';\n\n@Component({\n selector: 'lib-pager',\n templateUrl: './pager.component.html'\n})\nexport class PagerComponent implements OnInit, OnChanges {\n // BUSY STATE\n @Input() busy = false;\n // PAGING\n @Input() count: number | null = null;\n @Input() page = 1;\n // tslint:disable-next-line:no-input-rename\n @Input('page-size') pageSize = 20;\n // tslint:disable-next-line:no-input-rename\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [\n new MenuOption('10', 10),\n new MenuOption('20', 20),\n new MenuOption('30', 30),\n new MenuOption('50', 50),\n new MenuOption('100', 100)\n ];\n public pages: MenuOption[] = [];\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\n public canPreviousPage = false;\n public canNextPage = false;\n\n // SORTING\n // tslint:disable-next-line:no-input-rename\n @Input('sort-options') sortOptions: MenuOption[] = [];\n // tslint:disable-next-line:no-input-rename\n @Input('sort') sort: string | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('sort-dir') sortdir: string | null = 'desc';\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\n public sortdirIcon = Icons.SortDesc;\n\n constructor(private router: Router) { }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.calcPages();\n }\n\n ngOnInit(): void {\n }\n\n private calcPages(): void {\n this.pages = [];\n if (this.count && this.count > 0) {\n const pageCount = this.count / this.pageSize;\n for (let i = 0; i < pageCount; i++) {\n this.pages.push(new MenuOption(i + 1 + '', i + 1));\n }\n }\n this.canPreviousPage = this.page > 1;\n this.canNextPage = this.page < this.pages.length;\n }\n\n public nextPage(): void {\n const next = this.page + 1;\n this.gotoPage(next);\n }\n\n public previousPage(): void {\n const previous = this.page - 1;\n this.gotoPage(previous);\n }\n\n public gotoPage(page: number): void {\n this.page = page;\n this.pageChanged.emit(page);\n this.calcPages();\n }\n\n public pageSizeOptionChanged(pageSize: number): void {\n this.pageSizeChanged.emit(pageSize);\n this.calcPages();\n }\n\n public pageOptionChanged(page: number): void {\n this.pageChanged.emit(page);\n this.calcPages();\n }\n\n public sortOptionChanged(sort: string): void {\n this.sortChanged.emit(sort);\n }\n\n public toggleSortdir(): void {\n let sortdir = 'desc';\n if (this.sortdir === 'desc') {\n sortdir = 'asc';\n this.sortdirIcon = Icons.SortAsc;\n } else {\n sortdir = 'desc';\n this.sortdirIcon = Icons.SortDesc;\n }\n this.sortdirChanged.emit(sortdir);\n }\n\n}\n","<div class=\"pager-container\">\n <div class=\"pager-container-inner\">\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\n <span class=\"sr-only\">sort direction</span>\n <span class=\"inline-block relative\">\n <i [class]=\"sortdirIcon\"></i>\n </span>\n </button>\n </div>\n <div class=\"pager-pages-container\">\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\n <div class=\"mx-2\" *ngIf=\"count !== null && count > pageSize\">\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\n class=\"pager-arrow-button-left\">\n <span class=\"sr-only\">Previous</span>\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\n class=\"pager-arrow-button-right\">\n <span class=\"sr-only\">Next</span>\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <lib-drop-down-menu *ngIf=\"(pages && pages.length > 0) && (count !== null && count > pageSize)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\n </div>\n </div>\n</div>\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({ selector: 'lib-list-tile', template: '<ng-content></ng-content>' })\nexport class ListTileComponent{\n @ContentChild(TemplateRef) template: any | null = null;\n constructor() {\n }\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({selector: 'lib-list-column', template: '<ng-content></ng-content>'})\nexport class ListColumnComponent {\n @Input() title: string | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('full-width') fullWidth = false;\n @ContentChild(TemplateRef) template: any | null = null;\n constructor() { }\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' })\nexport class ListDetailsSectionComponent{\n @ContentChild(TemplateRef) template: any | null = null;\n constructor() {\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-list-view-empty-state',\n templateUrl: './list-view-empty-state.component.html'\n})\nexport class ListViewEmptyStateComponent implements OnInit {\n\n @Input() title = 'Δεν βρέθηκαν εγγραφές.';\n // tslint:disable-next-line:no-input-rename\n @Input('sub-title') subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';\n // tslint:disable-next-line:no-input-rename\n @Input('new-item-label') newItemLabel = 'Νέα εγγραφή';\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"p-20\">\n <div class=\"text-center p-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\n </svg>\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\n <p class=\"mt-1 text-sm text-gray-500\">\n {{subTitle}}\n </p>\n <div class=\"mt-6\" *ngIf=\"false\">\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\n <!-- Heroicon name: solid/plus -->\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\n </svg>\n {{newItemLabel}}\n </button>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'lib-skeleton-loader',\n templateUrl: './skeleton-loader.component.html'\n})\nexport class SkeletonLoaderComponent implements OnInit {\n @Input() count = 5;\n @Input() type = 'tiles'; // 'large-tile', 'table'\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public counter(i: number): number[] {\n return new Array(i);\n }\n\n}\n","<!-- <h1>SKELETON LOADER!</h1> -->\n<ng-container *ngSwitch=\"type\">\n <div class=\"cards-deck-4\" *ngSwitchCase=\"'tiles'\">\n <ng-container *ngFor=\"let i of counter(count)\">\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\n <div class=\"animate-pulse flex flex-col\">\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\n <div class=\"flex flex-col mt-5\">\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"flex items-center mt-5\">\n <div>\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\n </div>\n <div class=\"flex justify-between w-full ml-3\">\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"cards-deck-3\" *ngSwitchCase=\"'large-tiles'\">\n <ng-container *ngFor=\"let i of counter(count)\">\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\n <div class=\"animate-pulse flex flex-col\">\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\n <div class=\"flex flex-col mt-5\">\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"flex items-center mt-5\">\n <div>\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\n </div>\n <div class=\"flex justify-between w-full ml-3\">\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"cards-deck-1\" *ngSwitchCase=\"'table'\">\n <ng-container *ngFor=\"let i of counter(count)\">\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\">\n <div class=\"animate-pulse flex space-x-4\">\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\">&nbsp;</div>\n <div class=\"flex-1 space-y-4 py-1\">\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\">&nbsp;</div>\n <div class=\"space-y-2\">\n <div class=\"h-4 bg-light-blue-400 rounded\">&nbsp;</div>\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\">&nbsp;</div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"cards-deck-3\" *ngSwitchDefault>\n <ng-container *ngFor=\"let i of counter(count)\">\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\n <div class=\"animate-pulse flex flex-col\">\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\n <div class=\"flex flex-col mt-5\">\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"flex items-center mt-5\">\n <div>\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\n </div>\n <div class=\"flex justify-between w-full ml-3\">\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n</ng-container>\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\nimport { MenuOption, ListViewType } from '../../types';\nimport { ListTileComponent } from './list-tile.component';\nimport { ListColumnComponent } from './list-column.component';\nimport { ListDetailsSectionComponent } from './list-details-section.component';\nimport { Icons } from '../../icons';\n\n@Component({\n selector: 'lib-list-view',\n templateUrl: './list-view.component.html'\n})\nexport class ListViewComponent implements OnChanges {\n // BUSY STATE\n @Input() busy = false;\n public expandIcon = Icons.Expand;\n public collapseIcon = Icons.Collapse;\n // DATA SOURCE!\n @Input() items: any[] | null | undefined;\n // tslint:disable-next-line:no-input-rename\n @Input('show-pager') showPager = true;\n\n // PAGING - pass through for pager component\n @Input() count: number | null = null;\n @Input() page = 1;\n // tslint:disable-next-line:no-input-rename\n @Input('page-size') pageSize = 20;\n // tslint:disable-next-line:no-input-rename\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\n @Output() detailsOpened: EventEmitter<{ item: any, open: boolean }> = new EventEmitter<{ item: any, open: boolean }>();\n\n public tableViewSupported = false;\n private multipleFullWidth = false;\n public fullWidthTHClass = 'list-view-th-full';\n public fullWidthTDClass = 'list-view-td-full';\n public tilesViewSupported = false;\n public detailsSectionSupported = false;\n public loaderItems: any[] = [];\n\n // DETAILS SECTION\n // Check if details section and button should be displayed according to the count of the value given\n // tslint:disable-next-line:no-input-rename\n @Input('details-section-property-count') detailsSectionPropertyCount: string | null = null;\n\n\n // SORTING - pass through for pager component\n // tslint:disable-next-line:no-input-rename\n @Input('sort-options') sortOptions: MenuOption[] = [];\n @Input() sort: string | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('sort-dir') sortdir: string | null = '-';\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\n\n @Input() view = ListViewType.Table;\n\n // COLUMNS\n public columns: any[] = [];\n @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\n set cols(refs: QueryList<ListColumnComponent>) {\n this.columns = refs?.toArray();\n if (this.columns && this.columns.length > 0) {\n this.tableViewSupported = true;\n }\n this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\n this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\n this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\n }\n\n public tilesDeckClass = 'cards-deck-4';\n // tslint:disable-next-line:no-input-rename\n @Input('tiles-count') tilesCount = 4;\n\n public tileTemplate: any | null | undefined = null;\n @ContentChild(ListTileComponent, { read: ListTileComponent })\n set tiles(ref: ListTileComponent) {\n this.tileTemplate = ref;\n if (this.tileTemplate) {\n this.tilesViewSupported = true;\n }\n }\n\n public detailsTemplate: any | null | undefined = null;\n @ContentChild(ListDetailsSectionComponent, { read: ListDetailsSectionComponent })\n set details(ref: ListDetailsSectionComponent) {\n this.detailsTemplate = ref;\n if (this.detailsTemplate) {\n this.detailsSectionSupported = true;\n }\n }\n\n constructor() {\n for (let i = 0; i < 5; i++) {\n this.loaderItems.push({});\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const tilesCountChange = changes['tiles-count'] || changes.tilesCount;\n if (tilesCountChange) {\n this.setTilesDeckClass(tilesCountChange.currentValue);\n }\n }\n\n // events\n public emitPageChanged($event: number): void {\n this.pageChanged.emit($event);\n }\n\n public emitPageSizeChanged($event: number): void {\n this.pageSizeChanged.emit($event);\n }\n\n public emitSortChanged($event: string): void {\n this.sortChanged.emit($event);\n }\n public emitSortdirChanged($event: string): void {\n this.sortdirChanged.emit($event);\n }\n\n public toggleDetails(item: any): void {\n item.detailsExpanded = !item.detailsExpanded;\n this.detailsOpened.emit({ item, open: item.detailsExpanded });\n }\n\n // helpers\n private setTilesDeckClass(tiles: number): void {\n if (tiles >= 1 && tiles <= 4) {\n this.tilesDeckClass =\n this.view !== ListViewType.Gallery\n ? `cards-deck-${tiles}`\n : this.items && this.items.length > 0\n ? `gallery-deck-${tiles}`\n : 'gallery-deck';\n } else {\n this.tilesDeckClass =\n this.view !== ListViewType.Gallery\n ? 'cards-deck-3'\n : this.items && this.items.length > 0\n ? 'gallery-deck-3'\n : 'gallery-deck';\n }\n }\n\n}\n","<div class=\"px-2\">\n\n <lib-pager *ngIf=\"showPager\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n <ng-container *ngSwitchCase=\"'tiles'\">\n <div [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n\n </div>\n </ng-container>\n\n\n <!-- *ngSwitchCase=\"'gallery'\" -->\n <ng-container *ngSwitchCase=\"'gallery'\">\n <ul role=\"list\" [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n\n <!-- *ngSwitchCase=\"'table'\" -->\n <ng-container *ngSwitchDefault>\n\n <div class=\"list-view-container\">\n <div class=\"list-view-container-inner\">\n <table class=\"list-view-table\">\n <thead class=\"list-view-thead\">\n <tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <th class=\"list-view-th-details\"></th>\n </ng-container>\n <ng-container *ngFor=\"let col of columns\">\n <th scope=\"col\"\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n {{col.title}}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button disabled\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\n <ng-container *ngFor=\"let item of items;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button (click)=\"toggleDetails(item)\"\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <ng-template [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\n <div class=\"cards-deck-1\">\n <lib-list-view-empty-state></lib-list-view-empty-state>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-collapsible-panel',\n templateUrl: './collapsible-panel.component.html'\n})\nexport class CollapsiblePanelComponent implements OnInit {\n @Input() title: string | null = null;\n public visible = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"collapsible-panel-container\">\n <div class=\"collapsible-panel-container-shadow\">\n <div class=\"collapsible-panel-container-inner\">\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\n <div class=\"collapsible-panel-button-content-container\">\n <span>{{ title }} </span>\n <span class=\"ico-plus\"></span>\n </div>\n </button>\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-kpi-tile',\n templateUrl: './kpi-tile.component.html'\n})\nexport class KpiTileComponent implements OnInit {\n\n @Input() title: string | undefined = undefined;\n @Input() busy = false;\n @Input() kpi: any | undefined = undefined;\n // tslint:disable-next-line:no-output-rename\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public emitTileAction($event: any): boolean {\n $event.preventDefault();\n $event.stopPropagation();\n this.tileAction.emit($event);\n return false;\n }\n\n}\n","<div class=\"card\"\n [ngClass]=\"{'card-deck-busy' : busy }\">\n <div class=\"card-body\">\n <div class=\"kpi-tile-title-container\">\n <a href=\"#\"\n class=\"kpi-tile-action\"\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\n </div>\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\n <div class=\"card-footer\">\n <div class=\"text-xs\">\n <a href=\"#\"\n class=\"kpi-tile-action\"\n (click)=\"emitTileAction($event)\">Περισσότερα</a>\n </div>\n </div>\n </div>\n</div>","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\n@Component({\n selector: 'lib-date-picker',\n templateUrl: './date-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true\n }\n ]\n})\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\n @Input() readonly: boolean = false;\n @Input() disabled: boolean = false;\n @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\n @Input() placeholder: string | undefined = '';\n @Input() value: Date | undefined | null = null;\n @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n @ViewChild('dateInput') dateInput: ElementRef | undefined;\n public showCalendar = false;\n public showYears = false;\n public monthNames = [\n 'Ιανουάριος',\n 'Φεβρουάριος',\n 'Μάρτιος',\n 'Απρίλιος',\n 'Μάϊος',\n 'Ιούνιος',\n 'Ιούλιος',\n 'Αύγουστος',\n 'Σεπτέμβριος',\n 'Οκτώβριος',\n 'Νοεμβριος',\n 'Δεκέμβριος',\n ];\n public dayNames = ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'];\n\n public month: number = -1;\n public year: number = -1;\n public calendarDates: any[] = [];\n public calendarYears: any[] = [];\n public showCalendarYears: any[] = [];\n public blankDays: any[] = [];\n public calendarYearPage = 1;\n private yearsPerPage = 30;\n\n private onChange$: any | undefined = undefined;\n private onTouched$: any | undefined = undefined;\n\n ngOnInit(): void {\n let today = new Date();\n this.month = today.getMonth();\n this.year = today.getFullYear();\n this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];\n this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];\n const yearsArray = [];\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });\n }\n this.calendarYears = yearsArray;\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\n this.calcDays();\n }\n\n constructor() { }\n\n writeValue(obj: any): void {\n if (obj) {\n this.value = new Date(obj);\n this.month = this.value.getMonth();\n this.year = this.value.getFullYear();\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange$ = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched$ = fn;\n }\n\n public onBlur(event: any): void {\n if (this.onTouched$) {\n this.onTouched$();\n }\n this.getDateFromInput();\n }\n\n public selectDateValue(date: any): void {\n // This should be in UTC\n let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);\n this.value = selectedDate;\n this.valueChange.emit(this.value);\n if (this.onChange$) {\n this.onChange$(this.value);\n }\n this.updateDays();\n if (this.onTouched$) {\n this.onTouched$();\n }\n this.showCalendar = false;\n }\n\n public selectYearValue(year: any): void {\n // This should be in UTC\n let selectedDate = new Date(year.year, this.month ?? 1, this.calendarDates?.find(x => x.selected == true).day ?? 1, 3, 0, 0, 0);\n this.year = year.year;\n this.value = selectedDate;\n this.valueChange.emit(this.value);\n if (this.onChange$) {\n this.onChange$(this.value);\n }\n this.updateDays();\n if (this.onTouched$) {\n this.onTouched$();\n }\n this.showYears = false;\n this.showCalendar = true;\n this.calcDays();\n }\n\n public previousMonth(): void {\n if (this.month !== 0) {\n this.month = this.month - 1;\n this.calcDays();\n } else {\n this.month = 11;\n this.year = this.year - 1;\n this.calcDays();\n }\n if (this.onTouched$) {\n this.onTouched$();\n }\n }\n\n public nextMonth(): void {\n if (this.month !== 11) {\n this.month = this.month + 1;\n this.calcDays();\n } else {\n this.month = 0;\n this.year = this.year + 1;\n this.calcDays();\n }\n if (this.onTouched$) {\n this.onTouched$();\n }\n }\n\n public previousYear(): void {\n this.showCalendarYears = this.paginate(\n this.calendarYears,\n this.calendarYearPage > 1 ? --this.calendarYearPage : 1);\n this.calcDays();\n if (this.onTouched$) {\n this.onTouched$();\n }\n }\n\n public nextYear(): void {\n this.showCalendarYears = this.paginate(\n this.calendarYears,\n this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage\n ? ++this.calendarYearPage\n : this.calendarYearPage);\n this.calcDays();\n if (this.onTouched$) {\n this.onTouched$();\n }\n }\n\n private compareDates(date1: Date | undefined | null, day: number | null | undefined, year: number | null | undefined): boolean {\n if (!date1) {\n return false;\n }\n const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());\n return date1.toDateString() === d.toDateString();\n };\n\n private calcDays(): void {\n const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\n // find where to start calendar day of week\n const dayOfWeek = new Date(this.year, this.month).getDay();\n const blankdaysArray = new Array<number>();\n for (var i = 1; i <= dayOfWeek; i++) {\n // check if month is February\n blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));\n blankdaysArray.reverse().sort();\n }\n const daysArray = [];\n const today = new Date();\n for (var i = 1; i <= daysInMonth; i++) {\n daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value ?? today, i, null) });\n }\n const yearsArray = [];\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });\n }\n this.calendarYears = yearsArray;\n this.blankDays = blankdaysArray;\n this.calendarDates = daysArray;\n }\n\n private updateDays(): void {\n const today = new Date();\n this.calendarDates.forEach(d => {\n d.today = this.compareDates(today, d, this.year);\n d.selected = this.compareDates(this.value, d, this.year);\n });\n }\n\n private paginate(array: any[], page_number: number): any[] {\n return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);\n }\n\n private getDateFromInput() {\n if (this.dateInput?.nativeElement.value !== '') {\n var dateParts = this.dateInput?.nativeElement.value.split(\"/\");\n let dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);\n if (dateInGrFormat.toString() !== 'Invalid Date') {\n this.writeValue(dateInGrFormat)\n this.calcDays();\n this.valueChange.emit(dateInGrFormat);\n }\n if (this.onChange$) {\n this.onChange$(this.value);\n }\n this.updateDays();\n if (this.onTouched$) {\n this.onTouched$();\n }\n }\n this.showCalendar = false;\n }\n\n public openYears() {\n this.showYears = !this.showYears;\n this.calendarYearPage = Math.ceil(this.calendarYears.map(x => x.year).indexOf(this.year) / this.yearsPerPage);\n this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 1);\n this.calcDays();\n }\n\n public openCalendar() {\n this.showCalendar = !this.showCalendar;\n this.calcDays();\n }\n \n public closeCalendar(){\n this.showCalendar = false;\n this.getDateFromInput();\n }\n\n}","<div class=\"relative flex\"\n (clickOutside)=\"closeCalendar()\">\n\n <input type=\"text\"\n #dateInput\n [readonly]=\"readonly\"\n name=\"dateInput\"\n (blur)=\"onBlur($event)\"\n id=\"dateInput\"\n (focus)=\"showCalendar = false\"\n [value]=\"value | date: displayFormat\"\n class=\"w-full focus:ring-0 focus:outline-none rounded-none sm:text-sm border-gray-300 focus:border-0\"\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\n [placeholder]=\"disabled ? '' : placeholder\">\n\n <button type=\"button\"\n class=\"relative inline-flex items-center px-2 py-2 border border-gray-300 text-sm font-medium rounded-r-sm text-gray-700 bg-gray-50 hover:bg-gray-100 focus:outline-none focus:ring-1 focus:ring-gray-500 focus:border-gray-500\"\n [disabled]=\"disabled\"\n (click)=\"openCalendar()\"\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\n </button>\n\n <div *ngIf=\"showCalendar\"\n class=\"bg-gray-100 mt-10 rounded-sm shadow-md p-4 absolute left-0 z-50 w-full\"\n style=\"height:18rem;min-width:16rem;\"\n name=\"calendar\">\n <div class=\"flex justify-between items-center mb-2\">\n <div>\n <button type=\"button\"\n (click)=\"openYears()\">\n <span class=\"text-lg font-bold text-gray-800\">\n {{monthNames[month]}}\n </span>\n <span class=\"ml-1 text-lg text-gray-600 font-normal\">\n {{year}}</span>\n </button>\n </div>\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\n <button type=\"button\"\n class=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\n (click)=\"previousMonth();\">\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n <button type=\"button\"\n class=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\n (click)=\"nextMonth()\">\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n <ng-template #showYearsPickerTmpl>\n <div>\n <button type=\"button\"\n class=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25 w-1/2\"\n (click)=\"previousYear();\">\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n <button type=\"button\"\n class=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25 w-1/2\"\n (click)=\"nextYear()\">\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n </ng-template>\n </div>\n\n <div class=\"flex flex-wrap mb-3 -mx-1\"\n *ngIf=\"!showYears; else showCalYearsTmpl\">\n <div *ngFor=\"let day of dayNames\"\n class=\"text-gray-800 font-medium text-center text-sm uppercase\"\n style=\"width: 14.28%\">{{day}}</div>\n </div>\n\n <ng-template #showCalYearsTmpl>\n <div class=\"flex flex-wrap -mx-1 items-center\">\n <div *ngFor=\"let year of showCalendarYears\"\n style=\"width: 18.28%\"\n class=\"px-1 mb-1\">\n <div (click)=\"selectYearValue(year)\"\n class=\"cursor-pointer text-center hover:text-blue-600 text-sm leading-none rounded-full leading-loose transition ease-in-out duration-100\"\n [class]=\"year.selected ? 'bg-gray-700 text-blue-600 font-medium' : 'text-gray-800 hover:bg-gray-800'\">{{year.year}}</div>\n </div>\n </div>\n </ng-template>\n\n <div class=\"flex flex-wrap -mx-1 items-center\"\n *ngIf=\"!showYears\">\n <div *ngFor=\"let blankday of blankDays\"\n style=\"width: 14.28%\"\n class=\"text-center border p-1 border-transparent text-sm opacity-50\">{{blankday}}</div>\n <div *ngFor=\"let date of calendarDates\"\n style=\"width: 14.28%\"\n class=\"px-1 mb-1\">\n <div (click)=\"selectDateValue(date)\"\n class=\"cursor-pointer text-center hover:text-blue-600 text-sm leading-none rounded-full leading-loose transition ease-in-out duration-100\"\n [class]=\"date.selected ? 'bg-gray-700 text-blue-600 font-medium' : 'text-gray-800 hover:bg-gray-800'\">{{date.day}}</div>\n </div>\n </div>\n </div>\n\n</div>","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { Toast, ToastType, NULL_TOAST } from '../types';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToasterService {\n\n private subject: BehaviorSubject<Toast>;\n public toast$: Observable<Toast>;\n\n constructor() {\n this.subject = new BehaviorSubject<Toast>(NULL_TOAST);\n this.toast$ = this.subject.asObservable()\n .pipe(filter( toast => toast !== null && toast.title !== NULL_TOAST.title ));\n }\n\n public show(type: ToastType, title?: string, body?: string, delay?: number): void {\n this.subject.next({ type, title, body, delay } as Toast);\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Toast } from '../../types';\n\n@Component({\n selector: 'lib-toaster',\n templateUrl: './toaster.component.html'\n})\nexport class ToasterComponent implements OnInit {\n\n @Input() toast: Toast | undefined;\n @Input() i = 0;\n @Output() remove = new EventEmitter<number>();\n public isMobile = false;\n public closed = false;\n\n constructor() { }\n\n ngOnInit(): void {\n window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\n }\n\n public closeToast(index: number): void {\n this.closed = true;\n setTimeout(() => this.remove.emit(index), 100);\n }\n}\n","<div aria-live=\"assertive\"\n [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\n [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\n <div class=\"toast-container\">\n <div class=\"toast-pill\">\n <div class=\"toast-context-padding\">\n <div class=\"toast-context\"\n [ngSwitch]=\"toast?.type\">\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'info'\">\n <svg class=\"h-5 w-5 text-blue-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'success'\">\n <svg class=\"h-5 w-5 text-green-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'error'\">\n <svg class=\"h-5 w-5 text-red-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchCase=\"'warning'\">\n <svg class=\"h-5 w-5 text-yellow-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n clip-rule=\"evenodd\" />\n </svg>\n </div>\n <div class=\"toast-icon\"\n *ngSwitchDefault>\n <svg class=\"h-5 w-5 text-green-400\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n </div>\n\n <div class=\"ml-3 w-0 flex-1\">\n <p class=\"toast-title\"\n *ngIf=\"toast?.title\">\n {{toast?.title}}\n </p>\n <p class=\"toast-body\">\n {{toast?.body}}\n </p>\n </div>\n <div class=\"toast-close-icon\">\n <button class=\"toast-close-button\"\n (click)=\"closeToast(i)\">\n <span class=\"sr-only\">Close</span>\n <!-- Heroicon name: solid/x -->\n <svg class=\"h-5 w-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { ToasterService } from '../../services/toaster.service';\nimport { Toast } from '../../types';\n\n@Component({\n selector: 'lib-toaster-container',\n templateUrl: './toaster-container.component.html'\n})\nexport class ToasterContainerComponent implements OnInit {\n\n toasts: Toast[] = [];\n\n constructor(private toaster: ToasterService) { }\n\n ngOnInit(): void {\n this.toaster.toast$\n .subscribe(toast => {\n this.toasts = [toast, ...this.toasts];\n setTimeout(() => this.toasts.pop(), toast.delay || 6000);\n });\n }\n\n remove(index: number): void {\n this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\n }\n\n}\n","<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-avatar-initials',\n templateUrl: './avatar-initials.component.html'\n})\nexport class AvatarInitialsComponent implements OnInit {\n @Input()\n public name: string | null | undefined;\n @Input()\n public large = false;\n public initials?: string;\n public circleColor!: string;\n private colors = [\n '#EB7181', // red\n '#468547', // green\n '#FFD558', // yellow\n '#3670B2', // blue\n ];\n\n constructor() { }\n\n ngOnInit(): void {\n this.createInititals();\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\n // assign this to a class if you want to randomly change background colors of the circle.\n this.circleColor = this.colors[randomIndex];\n }\n\n private createInititals(): void {\n if (this.name) {\n let initials = '';\n for (let i = 0; i < this.name.length; i++) {\n if (this.name.charAt(i) === ' ') {\n continue;\n }\n if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\n initials += this.name.charAt(i);\n if (initials.length === 2) {\n break;\n }\n }\n }\n this.initials = initials;\n }\n }\n}\n","<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\n</div>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'lib-toggle',\n templateUrl: './toggle.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true\n }\n ]\n})\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\n @Input()\n public value: boolean | null | undefined;\n @Input()\n public disabled:boolean | null | undefined;\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\n\n private onChange$: any | undefined = undefined;\n private onTouched$: any | undefined = undefined;\n\n constructor() { }\n \n writeValue(obj: any): void {\n if(obj) {\n this.value = obj || false;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange$ = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched$ = fn;\n }\n\n public onBlur(event: any): void {\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n ngOnInit(): void {\n }\n\n public changeValue(){\n this.value = !this.value;\n this.valueChange.emit(this.value);\n if(this.onChange$) {\n this.onChange$(this.value);\n }\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n}","<button type=\"button\"\n [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\n class=\"toggle-button\"\n role=\"switch\"\n aria-checked=\"false\"\n aria-labelledby=\"isPrivate\"\n (click)=\"changeValue()\"\n (blur)=\"onBlur($event)\"\n value=\"{{value}}\"\n [disabled]=\"disabled\"\n [title]=\"disabled ? 'Το αρχείο πρέπει να είναι ιδωτικό' : 'Ιδιωτικό'\">\n <span aria-hidden=\"true\"\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\n class=\"toggle-span\"></span>\n</button>","import { SidePaneOverlayType, SidePaneSize } from './../../types';\nimport { Router } from '@angular/router';\nimport { Component, Input, OnInit, OnDestroy, Inject, EventEmitter, Output } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'lib-side-pane',\n templateUrl: './side-pane.component.html'\n})\nexport class SidePaneComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:no-input-rename\n @Input('visible') showPane = false;\n public sizeContainerStyle = 'side-pane-box-size';\n public overlayStyle = 'side-pane-overlay';\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\n \n constructor(private router: Router, @Inject(DOCUMENT) private document: any,) { }\n\n ngOnDestroy(): void {\n }\n\n ngOnInit(): void {\n }\n\n public onSidePaneActivated(component: any): void {\n this.document.body.classList.add('modal-active');\n let sizeStyleSuffix = '';\n const state = this.router.getCurrentNavigation()?.extras.state;\n if (state) {\n if (state.paneSize) {\n if (state.paneSize === SidePaneSize.Small25) {\n sizeStyleSuffix = '-25';\n } else if (state.paneSize === SidePaneSize.Medium50) {\n sizeStyleSuffix = '-50';\n } else if (state.paneSize === SidePaneSize.Large75) {\n sizeStyleSuffix = '-75';\n }\n }\n if (state.paneOverlay) {\n if (state.paneOverlay === SidePaneOverlayType.None) {\n this.overlayStyle = 'side-pane-overlay-opacity-0';\n } else if (state.paneOverlay === SidePaneOverlayType.Dark) {\n this.overlayStyle = 'side-pane-overlay-opacity-50';\n } else {\n this.overlayStyle = 'side-pane-overlay';\n }\n }\n }\n this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;\n this.showPane = true;\n }\n\n public onSidePaneDeactivated($event: any): void { \n this.document.body.classList.remove('modal-active');\n this.showPane = false;\n this.onComplete.emit(true);\n }\n\n}\n","<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\n <div [class]=\"sizeContainerStyle\">\n <div class=\"side-pane\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n","import { Observable } from 'rxjs';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { NavLink } from '../../types';\n\n@Component({\n selector: 'lib-nav-links-list',\n templateUrl: './nav-links-list.component.html'\n})\nexport class NavLinksListComponent implements OnInit {\n\n @Input() links: Observable<NavLink[]> | undefined;\n // tslint:disable-next-line:no-input-rename\n @Input('active-fragment') activeFragment: Observable<string> | undefined;\n // tslint:disable-next-line:no-input-rename\n @Input('link-class') navLinkClass: string | string = 'nav-link';\n // tslint:disable-next-line:no-input-rename\n @Input('link-active-class') navLinkActiveClass: string | string[] = 'nav-link-active';\n // tslint:disable-next-line:no-input-rename\n @Input('container-class') containerClass: string | string[] | undefined = undefined;\n // tslint:disable-next-line:no-input-rename\n @Input('show-icons') showIcons: boolean | undefined = false;\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n <div class=\"nav-link-list-container-inner\">\n <ng-container *ngFor=\"let link of links | async\">\n <ng-container [ngSwitch]=\"link.type\">\n <a *ngSwitchCase=\"'router'\"\n href=\"#\"\n [routerLink]=\"[link.path]\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'external'\"\n [href]=\"link.path\"\n [attr.target]=\"link.external ? '_blank' : '_self'\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n <a *ngSwitchCase=\"'fragment'\"\n routerLink=\".\"\n [fragment]=\"link.path\"\n [class.active]=\"(activeFragment | async) === link.path\"\n [routerLinkActive]=\"navLinkActiveClass\"\n [class]=\"navLinkClass\">\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\n </a>\n </ng-container>\n </ng-container>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n\n@Component({\n selector: 'lib-combobox',\n templateUrl: './combobox.component.html'\n})\nexport class ComboboxComponent implements OnInit {\n private _debouncer: Subject<string> = new Subject<string>();\n private _items: any[] = [];\n\n private _defaultItemsFilter = (item: any) => {\n const selectedItem = this.selectedItems.find(x => x == item);\n return selectedItem == null || selectedItem == undefined;\n };\n\n constructor() { }\n\n @Input() public id: string = 'combobox';\n\n @Input('items') public set items(items: any[]) {\n if (!this.itemTemplate) {\n this._items = items.filter(this._defaultItemsFilter);\n } else {\n this._items = items.filter(this.selectedItemsFilter);\n }\n }\n\n public get items(): any[] {\n if (!this.itemTemplate) {\n return this._items.filter(this._defaultItemsFilter);\n } else {\n return this._items.filter(this.selectedItemsFilter);\n }\n }\n\n @Input() public itemTemplate: TemplateRef<HTMLElement> | null = null;\n @Input() public selectedItemsFilter: (item: any) => boolean | null = () => true;\n @Input() public selectedItemTemplate: TemplateRef<HTMLElement> | null = null;\n @Input() public busy: boolean = false;\n @Input() public debounceMs: number = 1000;\n @Output() public onSearch: EventEmitter<string | undefined> = new EventEmitter();\n @Output() public onItemSelected: EventEmitter<any> = new EventEmitter();\n public showOptions: boolean = false;\n public selectedItems: any[] = [];\n\n public ngOnInit(): void {\n this.emitSearchEvent();\n this._debouncer\n .pipe(\n debounceTime(this.debounceMs),\n distinctUntilChanged()\n )\n .subscribe((value: string) => this.emitSearchEvent(value));\n }\n\n public onInputClick(): void {\n this.showOptions = true;\n }\n\n public onInputClickOutside(): void {\n this.showOptions = false;\n }\n\n public onInputKeyUp(event: any): void {\n this._debouncer.next(event.currentTarget.value);\n }\n\n public onListItemSelected(item: any): void {\n this.onItemSelected.emit(item);\n this.selectedItems.push(item);\n }\n\n public removeSelectedItem(item: any): void {\n const index = this.selectedItems.indexOf(item);\n if (index > -1) {\n this.selectedItems.splice(index, 1);\n }\n }\n\n private emitSearchEvent(searchTerm: string | undefined = undefined): void {\n this.onSearch.emit(searchTerm);\n }\n}\n","<div class=\"relative mt-1\">\n <form autocomplete=\"off\" [id]=\"id + '-form'\">\n <input [id]=\"id + '-input'\" type=\"text\" (click)=\"onInputClick()\" (clickOutside)=\"onInputClickOutside()\" (keyup)=\"onInputKeyUp($event)\"\n class=\"w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-12 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm\" role=\"combobox\" aria-controls=\"options\"\n aria-expanded=\"false\" autocomplete=\"off\" list=\"autocomplete\">\n </form>\n <div class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\">\n <svg *ngIf=\"!busy\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\n </svg>\n <svg *ngIf=\"busy\" class=\"animate-spin h-6 w-6 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n </svg>\n </div>\n <ul [id]=\"id + '-options'\" *ngIf=\"showOptions\" class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\" role=\"listbox\">\n <li *ngFor=\"let item of items; let i = index;\" [id]=\"'option-'+ i\" (click)=\"onListItemSelected(item)\" role=\"option\" tabindex=\"-1\">\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </li>\n </ul>\n</div>\n<ul *ngIf=\"selectedItems.length > 0\" role=\"list\" class=\"grid grid-cols-1\">\n <li *ngFor=\"let item of selectedItems; let i = index;\" class=\"mt-3\">\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </li>\n</ul>\n<ng-template #defaultItemTemplate let-item>\n <span class=\"hover:bg-gray-100 relative cursor-pointer select-none py-2 pl-3 pr-3 block truncate\">{{ item }}</span>\n</ng-template>\n<ng-template #defaultSelectedItemTemplate let-item>\n <div class=\"grid grid-cols-1\">\n <div class=\"relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400\">\n <div class=\"flex-1 min-w-0\">\n <div class=\"focus:outline-none\">\n <span class=\"absolute\" aria-hidden=\"true\"></span>\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\n </div>\n </div>\n <div class=\"ml-4 flex-shrink-0 flex\">\n <button type=\"button\" (click)=\"removeSelectedItem(item)\" class=\"cursor-pointer bg-white rounded-md inline-flex text-gray-400 hover:text-gray-500\">\n <span class=\"sr-only\">Close</span>\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n</ng-template>","import { InjectionToken } from '@angular/core';\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\nimport { IAppLinks, IAppLanguagesService, IAppNotifications, IShellConfig } from './types';\n\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\nexport const APP_NOTIFICATIONS = new InjectionToken<IAppNotifications>('APP_NOTIFICATIONS');\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\nexport const APP_LANGUAGES = new InjectionToken<IAppLanguagesService>('APP_LANGUAGES');\nexport const LIBTABGROUP_ACCESSOR = new InjectionToken<LibTabGroupComponent>('LibTabGroupAccessor');\n","import { ChangeDetectionStrategy, Component, Inject, Input, OnInit, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\nimport * as uuid from 'uuid';\n\n@Component({\n selector: 'lib-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibTabComponent implements OnInit {\n private _isActive: boolean = false;\n\n constructor(\n @Optional() @Inject(LIBTABGROUP_ACCESSOR) public readonly _tabGroup?: any\n ) { }\n\n /** The content provided for the tab. */\n @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\n /** A label for the tab header. */\n @Input() public label: string | undefined;\n /** Indicates the unique id assigned in the tab. */\n @Input() public id!: string;\n\n /** Indicates the index of the tab. */\n public get index(): number | undefined {\n return this._tabGroup?.tabs?.toArray().indexOf(this) || undefined;\n }\n\n /** Indicates whether the tab is active. */\n public get isActive(): boolean {\n return this._isActive;\n }\n\n /** Setter for LibTabComponent isActive property. */\n public set isActive(isActive: boolean) {\n this._isActive = isActive;\n }\n\n public ngOnInit(): void {\n this.id = this.id || uuid.v4();\n }\n}","import { AfterContentChecked, AfterContentInit, Component, ContentChildren, EventEmitter, forwardRef, InjectionToken, OnInit, Output, QueryList } from '@angular/core';\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\n\nimport { LibTabComponent } from './lib-tab.component';\n\n@Component({\n selector: 'lib-tab-group',\n templateUrl: './lib-tab-group.component.html',\n providers: [\n { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }\n ]\n})\nexport class LibTabGroupComponent implements OnInit, AfterContentInit, AfterContentChecked {\n constructor() { }\n\n /** The inner tabs of the group. */\n @ContentChildren(LibTabComponent, { descendants: true }) public tabs: QueryList<LibTabComponent> | undefined = undefined;\n /** Emmited when a step change occurs. */\n @Output() public tabChanged: EventEmitter<LibTabComponent> = new EventEmitter<LibTabComponent>();\n\n /** The current tab. */\n public get currentTab(): LibTabComponent | undefined {\n return this.tabs?.find(x => x.isActive);\n }\n\n /** The index (starting from zero) of the current tab. */\n public get currentΤabIndex(): number | undefined {\n return this.currentTab?.index || undefined;\n }\n\n public ngOnInit(): void { }\n\n public ngAfterContentInit(): void {\n if (!this.tabs) {\n return;\n }\n }\n\n public ngAfterContentChecked(): void {\n if (this.tabs && this.tabs.length > 0) {\n const anyActive = this.tabs.filter(x => x.isActive).length > 0;\n if (!anyActive) {\n this.tabs.get(0)!.isActive = true;\n }\n }\n }\n\n public onTabChanged(selectedTab: LibTabComponent): void {\n this.tabs!.forEach((tab: LibTabComponent) => tab.isActive = tab.id === selectedTab.id);\n this.tabChanged.emit(selectedTab);\n }\n\n public onTabSelectChanged(selectedTabIndex: number): void {\n this.tabs!.forEach((tab: LibTabComponent, index: number) => tab.isActive = index === selectedTabIndex);\n this.tabChanged.emit(this.tabs?.get(selectedTabIndex));\n }\n}","<div class=\"sm:hidden\">\n <label for=\"tabs\" class=\"sr-only\">Select a tab</label>\n <select id=\"tabs\" name=\"tabs\" (change)=\"onTabSelectChanged(+tabsSelect.value)\" class=\"tab-group-select\" #tabsSelect>\n <option [value]=\"i\" *ngFor=\"let tab of tabs; let i = index\">{{ tab.label }}</option>\n </select>\n</div>\n<div class=\"hidden sm:block\">\n <div class=\"tab-group-container\">\n <nav class=\"-mb-px flex space-x-8\" aria-label=\"Tabs\">\n <a *ngFor=\"let tab of tabs\" href=\"javascript:void(0)\" [class.tab]=\"!tab.isActive\" [class.tab-active]=\"tab.isActive\" (click)=\"onTabChanged(tab)\">\n {{ tab.label }}\n </a>\n </nav>\n </div>\n</div>\n<div *ngIf=\"currentTab?.content\">\n <ng-container [ngTemplateOutlet]=\"currentTab!.content\"></ng-container>\n</div>","import { Directive, ViewContainerRef, Input } from '@angular/core';\n\n@Directive({ selector: '[appDynamicComponentHost]' })\nexport class DynamicComponentHostDirective {\n @Input() hostName: string = '';\n constructor(public viewContainerRef: ViewContainerRef) {}\n}","import { ComponentRef, ViewRef } from '@angular/core';\n\n/**\n * Holds information about the dynamic content.\n * @remarks\n * `ComponentRef` is undefined in the case content is of `TemplateRef` type.\n */\nexport class ContentRef {\n constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\n}\n","import {\n ComponentFactoryResolver,\n ViewContainerRef,\n ComponentFactory,\n Type,\n ElementRef,\n StaticProvider,\n TemplateRef,\n ComponentRef,\n ApplicationRef,\n Injector,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ComponentLoaderOptions } from './component-loader-options.class';\nimport { ContentRef } from './content-ref.class';\n\n/**\n * Provides ways of loading and handling dynamic content.\n *\n * @remarks\n * Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}\n * You can use this loader in two ways:\n * - Attaches a component to `ViewContainerRef`.\n * - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.\n *\n * @internal\n */\nexport class ComponentLoader<T> {\n /**\n * Before content is shown event.\n */\n onBeforeShow = new Subject();\n /**\n * After show content event.\n * @returns The id of newly created component ref.\n */\n onShown = new Subject();\n /**\n * Before content is hidden event.\n * @returns The instance of attached component;\n */\n onBeforeHide = new Subject();\n /**\n * After content is hidden event.\n * @returns The id of destroyed component ref.\n */\n onHidden = new Subject();\n\n public instance?: T;\n public componentRef?: ComponentRef<T>;\n private componentFactory?: ComponentFactory<T>;\n private container: string | ElementRef | any;\n private providers: StaticProvider[] = [];\n private contentRef?: ContentRef;\n private containerDefaultSelector = 'body';\n private innerComponent?: ComponentRef<T>;\n constructor(\n private vcr: ViewContainerRef | undefined,\n private cfr: ComponentFactoryResolver,\n private applicationRef: ApplicationRef,\n private injector: Injector\n ) {}\n\n /**\n * Attaches component.\n * @param componentType - The type component to attach.\n * @returns Current instance of {@link ComponentLoader}\n */\n public attach(componentType: Type<T>): ComponentLoader<T> {\n this.componentFactory = this.cfr.resolveComponentFactory<T>(componentType);\n return this;\n }\n\n /**\n * Body will be used in nothing is provided.\n * @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.\n * @returns Current instance of {@link ComponentLoader}\n */\n public to(container?: string | ElementRef): ComponentLoader<T> {\n this.container = container || this.container;\n return this;\n }\n\n /**\n * Adds provider to the providers array. These providers will be injected to the attached component.\n *\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\n *\n * @param provider - Provider to inject.\n * @returns Current instance of {@link ComponentLoader}\n */\n public provide(provider: StaticProvider): ComponentLoader<T> {\n this.providers.push(provider);\n return this;\n }\n\n /**\n * Attaches attached component to dom and any dynamic content if provided.\n * @remarks\n * Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.\n *\n * @param options - {@link ComponentLoaderOptions}.\n * @returns A reference to the created content.\n */\n public show(options: ComponentLoaderOptions = {}): ComponentRef<T> | undefined {\n if (this.componentRef) {\n throw Error('Component is already shown');\n }\n if (!this.componentFactory) {\n throw Error('You must attach a component');\n }\n this.onBeforeShow.next();\n\n if (options.content) {\n this.contentRef = this.getContentRef(options.content, options.context, options.initialState);\n }\n this.createComponentAndAttachToView(options);\n this.appendContentToContainer();\n this.markComponentsForCheck();\n\n this.onShown.next(options.id);\n\n return this.componentRef;\n }\n\n /**\n * Removes attached component from dom.\n * @remarks\n * Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.\n *\n * @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.\n * @returns Current instance of {@link ComponentLoader}\n */\n public hide(id?: number | string, result?: any): ComponentLoader<T> {\n if (!this.componentRef) {\n throw Error('No attached component found to hide');\n }\n\n this.onBeforeHide.next(this.componentRef.instance);\n\n const componentEl = this.componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if (this.contentRef?.componentRef) {\n this.contentRef.componentRef.destroy();\n }\n if (this.vcr && this.contentRef?.viewRef) {\n this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));\n }\n if (this.contentRef?.viewRef) {\n this.contentRef.viewRef.destroy();\n }\n this.contentRef = void 0;\n this.componentRef = void 0;\n\n this.onHidden.next(id ? { id, result } : null);\n\n return this;\n }\n\n getInnerComponent(): ComponentRef<T> | undefined {\n return this.innerComponent;\n }\n\n private markComponentsForCheck() {\n if (this.contentRef?.componentRef) {\n this.innerComponent = this.contentRef.componentRef.instance;\n this.contentRef.componentRef.changeDetectorRef.markForCheck();\n this.contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this.componentRef!.changeDetectorRef.markForCheck();\n this.componentRef!.changeDetectorRef.detectChanges();\n }\n\n private createComponentAndAttachToView(options: ComponentLoaderOptions) {\n const injector = Injector.create({\n providers: this.providers,\n parent: this.injector,\n });\n this.componentRef = this.componentFactory!.create(injector, this.contentRef?.nodes);\n this.applicationRef.attachView(this.componentRef.hostView);\n this.instance = this.componentRef.instance;\n Object.assign(this.componentRef.instance, options);\n }\n\n private appendContentToContainer() {\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);\n }\n if (typeof this.container === 'string' && typeof document !== 'undefined') {\n const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);\n if (!selectedElement) {\n return;\n }\n selectedElement.appendChild(this.componentRef?.location.nativeElement);\n }\n }\n\n private getContentRef(content?: string | TemplateRef<any>, context?: any, initialState?: any): ContentRef {\n //TemplateRef case\n if (content instanceof TemplateRef) {\n if (this.vcr) {\n const viewRef = this.vcr.createEmbeddedView<TemplateRef<T>>(content, context);\n viewRef.markForCheck();\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this.applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n\n //Component case\n if (typeof content === 'function') {\n const contentCf = this.cfr.resolveComponentFactory(content);\n const injector = Injector.create({\n providers: this.providers,\n parent: this.injector,\n });\n const componentRef = contentCf.create(injector);\n Object.assign(componentRef.instance, initialState);\n this.applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\n }\n\n throw Error('Unsupported content type');\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, ViewContainerRef } from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\n\n/**\n * Use to create instances of {@link ComponentLoader}.\n *\n * @public\n */\n@Injectable({ providedIn: 'root' })\nexport class ComponentLoaderFactory {\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector,\n private applicationRef: ApplicationRef\n ) {}\n\n /**\n * Returns a new instance of {@link ComponentLoader}\n * @param viewContainerRef - The view container the dynamic content will be attached to.\n * @returns A new instance of {@link ComponentLoader}.\n *\n * @public\n */\n createLoader<T>(viewContainerRef?: ViewContainerRef): ComponentLoader<T> {\n return new ComponentLoader<T>(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);\n }\n}\n","import { IAppNotifications, NavLink } from './../../types';\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';\n\n@Component({\n selector: 'lib-notifications-indicator',\n templateUrl: './notifications-indicator.component.html'\n})\nexport class NotificationsIndicatorComponent implements OnInit, OnDestroy {\n\n public menuExpanded = false;\n public unreadCount = 0;\n public items: any[] = [];\n public allNotificationsLink?: NavLink;\n private notificationsSub$: Subscription | undefined;\n private inboxAction: any | undefined = undefined;\n public newArrival = false;\n constructor(@Inject(APP_NOTIFICATIONS) public notifications: IAppNotifications, @Inject(APP_LINKS) public links: any) { }\n\n ngOnDestroy(): void {\n if (this.notificationsSub$) {\n this.notificationsSub$.unsubscribe();\n }\n }\n\n ngOnInit(): void {\n (this.links['notifications'] as Observable<NavLink>).subscribe(notificationsLink => {\n this.allNotificationsLink = notificationsLink;\n });\n this.notificationsSub$ = this.notifications.messages.subscribe(result => {\n if (result.items){\n this.newArrival = true;\n this.unreadCount = result.count;\n this.items = result.items;\n setTimeout( () => { this.newArrival = false; }, 1000 );\n }\n });\n }\n\n public doInboxAction(): void {\n if (this.notifications.inboxAction) {\n this.notifications.inboxAction();\n } else {\n this.menuExpanded = !this.menuExpanded;\n }\n this.unreadCount = 0;\n }\n\n public removeItem(index:number){\n this.items.splice(index,1);\n }\n\n // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {\n // this.allItemsLink = result.allNotifications;\n // this.items = result.items;\n // this.unreadCount = result.count;\n // }));\n\n // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;\n // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;\n // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;\n // this.getUnreadNotificationsCount();\n\n // tslint:disable-next-line:typedef\n public onClickOutside($event: any) {\n this.menuExpanded = false;\n }\n\n}\n","<div class=\"relative\"\n(clickOutside)=\"onClickOutside($event)\">\n <!-- Notifications Button -->\n <button type=\"button\"\n (click)=\"doInboxAction()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">View notifications</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\">\n <i class=\"ms-Icon hover:text-blue-400\"\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\n [class.text-sky-400]=\"unreadCount > 0\"\n [class.animate-notification]=\"newArrival\"\n [class.ms-Icon--Message]=\"unreadCount === 0\">\n </i>\n </span>\n <span\n *ngIf=\"unreadCount > 0\"\n [class.animate-pulse]=\"newArrival\"\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\n {{ unreadCount }}\n </span>\n </span>\n </button>\n\n <!-- Notifications dropdown -->\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\n </ng-container>\n <ng-template #messagesDropDown>\n <ul class=\"pr-1.5\">\n <ng-container *ngIf=\"items; else loading\">\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\n </ng-container>\n <ng-container *ngFor=\"let message of items; let i = index\">\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\n <div class=\"flex justify-between\">\n <div class=\"flex-grow\">\n <a\n [routerLink]=\"message.path\"\n (click)=\"removeItem(i)\"\n class=\"notifications-nav-link grid\"\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\n >\n <div class=\"flex flex-col\">\n <div class=\"font-thin tracking-tighter\">\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\n </div>\n <div class=\"font-bold\">\n {{ message.data.text }}\n </div>\n </div>\n </a>\n </div>\n </div>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-template #loading>\n <div class=\"h-32 flex items-center justify-center\">\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\n </div>\n </ng-template>\n </ul>\n </ng-template>\n </div>\n <div class=\"p-1 rounded-sm\">\n <a [routerLink]=\"allNotificationsLink!.path\">\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\n </a>\n </div>\n </div>\n</div>\n","import { MenuOption } from './../../types';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { APP_LANGUAGES } from '../../tokens';\nimport { IAppLanguagesService } from '../../types';\n\n@Component({\n selector: 'lib-language-selection',\n templateUrl: './language-selection.component.html'\n})\nexport class LanguageSelectionComponent implements OnInit {\n\n public menuExpanded = false;\n constructor(@Inject(APP_LANGUAGES) public langsService: IAppLanguagesService | undefined) { }\n\n ngOnInit(): void {\n }\n\n public selectLang(option: MenuOption): void {\n if (this.langsService?.setSelected) {\n this.langsService.setSelected(option.value);\n }\n }\n\n public onClickOutside($event: any): void {\n this.menuExpanded = false;\n }\n}\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\n <button class=\"text-blue-300 hover:text-blue-400\" (click)=\"menuExpanded = !menuExpanded\">\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\n <span>{{langsService?.selected || langsService?.default}}</span>\n </button>\n\n <div\n [class]=\"menuExpanded ? 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none':'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n <div class=\"py-1\" role=\"none\">\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\n {{lang.description}}\n </a>\n </ng-container>\n </div>\n </div>\n</div>\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService } from '@indice/ng-auth';\nimport { User } from 'oidc-client';\nimport { Subscription } from 'rxjs';\nimport { APP_LINKS } from '../../tokens';\n\n@Component({\n selector: 'lib-user-profile-menu',\n templateUrl: './user-profile-menu.component.html'\n})\nexport class UserProfileMenuComponent implements OnInit {\n\n // tslint:disable-next-line:no-input-rename\n @Input('show-user-name') showUserName: boolean | undefined = false;\n protected userSub$: Subscription | null = null;\n protected statusSub$: Subscription | null = null;\n public user: User | null = null;\n public avatarName: string | null = null;\n public userMenuExpanded = false;\n\n constructor(@Inject(AuthService) protected authService: AuthService,\n @Inject(Router) protected router: Router,\n @Inject(APP_LINKS) public links: any) { }\n\n ngOnInit(): void {\n this.authService.loadUser().subscribe((user) => {\n this.setCurrentUser(user);\n }, error => {\n console.error(error);\n });\n // Detect user changes and display / or not user info accordingly...\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\n // console.log('ShellHeaderComponent user subscription');\n this.setCurrentUser(user);\n });\n }\n\n public signin(event: any | null | undefined): void {\n if (event) {\n event.preventDefault();\n }\n this.authService.signinRedirect();\n }\n\n private setCurrentUser(user: any): void {\n this.user = user;\n if (this.user && this.user.profile) {\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`.toUpperCase();\n }\n }\n\n // tslint:disable-next-line:typedef\n public onClickOutside($event: any) {\n this.userMenuExpanded = false;\n }\n\n}\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\" (click)=\"userMenuExpanded = !userMenuExpanded\">\n\n <div class=\"inline-flex\">\n <!-- Username -->\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\n {{ user.profile.name }}\n </div>\n </div>\n\n <div [class.ml-2]=\"showUserName\">\n <button type=\"button\" *ngIf=\"user\"\n class=\"shell-header-profile-dropdown-button\"\n id=\"user-menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">Open user menu</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\">{{this.avatarName}}</span>\n </span>\n </button>\n\n <button type=\"button\"\n *ngIf=\"!user\"\n (click)=\"signin(null)\"\n class=\"shell-header-profile-dropdown-button\"\n id=\"user-menu\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">sign in</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\n </span>\n </button>\n </div>\n </div>\n\n <div [class]=\"userMenuExpanded ?\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\n :\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n <lib-nav-links-list\n [links]=\"links.profile\"\n [link-class]=\"'nav-link-profile'\"\n [link-active-class]=\"'nav-link-profile-active'\">\n </lib-nav-links-list>\n </div>\n\n</div>\n\n","import { ShellLayoutType } from './../../../types';\nimport { AuthService } from '@indice/ng-auth';\nimport { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\nimport { User } from 'oidc-client';\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\nimport { filter, share } from 'rxjs/operators';\nimport { NavLink } from '../../../types';\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\nimport { BehaviorSubject, isObservable, observable, Observable, of } from 'rxjs';\nimport { Subscription } from 'rxjs';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'lib-shell-header',\n templateUrl: './shell-header.component.html',\n})\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\n // tslint:disable-next-line:no-input-rename\n @Input('section-links') sectionLinksPath = 'main';\n // tslint:disable-next-line:no-input-rename\n @Input('profile-menu') profileMenuVisible = true;\n // tslint:disable-next-line:no-input-rename\n @Input('show-userName') showUserNameOnHeader: boolean | undefined = false;\n // tslint:disable-next-line:no-input-rename\n @Input('show-alerts') showAlerts: boolean | undefined = false;\n // tslint:disable-next-line:no-input-rename\n @Input('shell-layout') shellLayout: ShellLayoutType | undefined = ShellLayoutType.Stacked;\n @Input() border = true;\n public sectionLinks: Observable<NavLink[]> = of([]);\n public mobileMenuExpanded = false;\n public userMenuExpanded = false;\n protected routeSubject: Observable<Event>;\n protected routerSub$: Subscription | null = null;\n protected userSub$: Subscription | null = null;\n protected statusSub$: Subscription | null = null;\n public user: User | null = null;\n public avatarName: string | null = null;\n public activeFragment: any | null = null;\n\n constructor(\n @Inject(AuthService) protected authService: AuthService,\n @Inject(Router) protected router: Router,\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\n @Inject(SHELL_CONFIG) public config: any,\n @Inject(APP_LINKS) public links: any) {\n this.routeSubject = this.router.events.pipe(filter((event) => event instanceof NavigationStart));\n }\n\n ngOnInit(): void {\n this.activeFragment = this.route.fragment.pipe(share());\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\n this.routerSub$ = this.routeSubject.subscribe((event) => {\n this.mobileMenuExpanded = false;\n this.userMenuExpanded = false;\n });\n this.authService.loadUser().subscribe((user) => {\n this.setCurrentUser(user);\n }, error => {\n console.error(error);\n });\n // Detect user changes and display / or not user info accordingly...\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\n // console.log('ShellHeaderComponent user subscription');\n this.setCurrentUser(user);\n });\n }\n\n ngOnDestroy(): void {\n\n if (this.routerSub$) {\n this.routerSub$.unsubscribe();\n }\n // TODO: check authenticated user here before we start polling server status\n if (this.statusSub$) {\n this.statusSub$.unsubscribe();\n }\n if (this.userSub$) {\n this.userSub$.unsubscribe();\n }\n }\n\n // tslint:disable-next-line:typedef\n public onClickOutside($event: any) {\n this.userMenuExpanded = false;\n }\n\n public signin(event: any | null | undefined): void {\n if (event) {\n event.preventDefault();\n }\n this.authService.signinRedirect();\n }\n\n private setCurrentUser(user: any): void {\n this.user = user;\n if (this.user && this.user.profile) {\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`.toUpperCase();\n }\n }\n\n}\n\n","<nav>\n <div class=\"shell-header-paddings\">\n <div [class]=\"border ? 'shell-header-border' : ''\">\n <div class=\"shell-header-menu-container\">\n <div *ngIf=\"shellLayout==='Stacked'\" class=\"shell-header-logo-container\">\n <div>\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\n </div>\n </div>\n\n <div *ngIf=\"shellLayout==='Stacked'\" class=\"shell-header-link-container\">\n <div class=\"shell-header-link-container-inner\">\n <lib-nav-links-list\n [links]=\"sectionLinks\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'nav-link'\"\n [link-active-class]=\"'nav-link-active'\">\n </lib-nav-links-list>\n </div>\n </div>\n\n <div class=\"shell-header-md-visible\">\n\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\n\n <lib-nav-links-list\n [links]=\"links.profileActions\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'shell-header-menu-rounded-button'\"\n [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\n </lib-nav-links-list>\n\n\n <!-- Profile dropdown -->\n <div *ngIf=\"profileMenuVisible\" class=\"ml-2\">\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\n </div>\n\n <!-- Notifications dropdown -->\n <div *ngIf=\"showAlerts && user\" class=\"ml-2\">\n <lib-notifications-indicator></lib-notifications-indicator>\n </div>\n\n <!-- languages dropdown -->\n <div *ngIf=\"config.showLangsOnHeader\" class=\"ml-2\">\n <lib-language-selection></lib-language-selection>\n </div>\n </div>\n </div>\n\n <div class=\"mobile-menu-button-container\" *ngIf=\"shellLayout === 'Stacked'\">\n <!-- Mobile menu button -->\n <button type=\"button\"\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\n class=\"mobile-menu-button\"\n aria-controls=\"mobile-menu\"\n [attr.aria-expanded]=\"mobileMenuExpanded\">\n <span class=\"sr-only\">Open main menu</span>\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M4 6h16M4 12h16M4 18h16\" />\n </svg>\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\n <svg xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\"\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n </div>\n </div>\n </div>\n <!-- Mobile menu, show/hide based on menu state. -->\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\n <lib-nav-links-list\n [links]=\"sectionLinks\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'nav-link-mobile'\"\n [link-active-class]=\"'nav-link-mobile-active'\"\n [container-class]=\"'mobile-menu-link-container'\">\n </lib-nav-links-list>\n\n <div *ngIf=\"!user\">\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>Σύνδεση\n </a>\n </div>\n\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\n <div class=\"mobile-menu-user-info-container-inner\">\n <div class=\"flex-shrink-0\">\n <span class=\"mobile-menu-avatar-container\">\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\n </span>\n </div>\n <div class=\"ml-3\">\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\n </div>\n <!--\n <button class=\"mobile-menu-rounded-button\">\n <span class=\"sr-only\">View notifications</span>\n <svg class=\"mobile-menu-rounded-button-icon-style\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n aria-hidden=\"true\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\n </svg>\n </button>\n -->\n </div>\n </div>\n\n <lib-nav-links-list\n [links]=\"links.profile\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'nav-link-mobile'\"\n [link-active-class]=\"'nav-link-mobile-active'\"\n [container-class]=\"'mobile-menu-link-container'\">\n </lib-nav-links-list>\n </div>\n</nav>\n","import { Component, Inject } from '@angular/core';\nimport { APP_LINKS } from '../../../tokens';\nimport { IAppLinks } from '../../../types';\n\n@Component({\n selector: 'lib-shell-footer',\n templateUrl: './shell-footer.component.html'\n\n})\n\nexport class ShellFooterComponent {\n constructor(@Inject(APP_LINKS) public links: IAppLinks) {\n }\n}\n","<footer class=\"shell-footer-component-container\">\n <div class=\"shell-footer-paddings\">\n <div class=\"shell-footer-component-container-inner\">\n <div class=\"shell-footer-sections-container\">\n <div class=\"shell-footer-section\">\n <img class=\"shell-footer-logo-h\" src=\"assets/images/branding/indice.png\" alt=\"INDICE logo\" />\n <nav class=\"mt-4\">\n <ul class=\"space-y-2\">\n <ng-container *ngFor=\"let link of links.brand | async\">\n <li>\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\n </li>\n </ng-container>\n </ul>\n </nav>\n </div>\n <div class=\"shell-footer-section-links\">\n <h5 class=\"shell-footer-section-title\">Legal</h5>\n <nav class=\"mt-4\">\n <ul class=\"grid lg:grid-cols-2\">\n <ng-container *ngFor=\"let link of links.legal | async\">\n <li class=\"mb-2\">\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\n </li>\n </ng-container>\n </ul>\n </nav>\n </div>\n <div class=\"shell-footer-section-links\">\n <h5 class=\"shell-footer-section-title\">Follow us</h5>\n <nav class=\"mt-4\">\n <ul class=\"grid lg:grid-cols-2\">\n <li class=\"mb-2\">\n <a href=\"#\" class=\"shell-footer-social\">\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84\"/>\n </svg>\n <span> Twitter </span>\n </a>\n </li>\n <li class=\"mb-2\">\n <a href=\"#\" class=\"shell-footer-social\">\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path fill-rule=\"evenodd\" d=\"M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z\" clip-rule=\"evenodd\"/>\n </svg>\n <span> Instagram </span>\n </a>\n </li>\n <li class=\"mb-2\">\n <a href=\"#\" class=\"shell-footer-social\">\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\" >\n <path fill-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z\" clip-rule=\"evenodd\"/>\n </svg>\n <span> Facebook </span>\n </a>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n <div class=\"shell-footer-copyright\">\n <!--<nav class=\"flex flex-wrap justify-center space-x-6\">\n <a href=\"#\" class=\"font-normal text-sm hover:text-gray-100 mb-2\">Cookie settings</a>\n </nav>-->\n <p class=\"text-sm text-center sm:text-right\">\n © 2021 INDICE. All rights reserved.\n </p>\n </div>\n </div>\n</footer>\n","import { IShellConfig, NavLink } from './../../../types';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { of } from 'rxjs';\nimport { APP_LINKS } from '../../../tokens';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { share } from 'rxjs/operators';\n\n@Component({\n selector: 'lib-shell-sidebar',\n templateUrl: './shell-sidebar.component.html'\n})\nexport class ShellSidebarComponent implements OnInit {\n // tslint:disable-next-line:no-input-rename\n @Input('section-links') sectionLinksPath = 'main';\n public sectionLinks: Observable<NavLink[]> = of([]);\n // tslint:disable-next-line:no-input-rename\n @Input('config') shellConfig: IShellConfig | undefined = undefined;\n public activeFragment: any | null = null;\n constructor(@Inject(Router) protected router: Router,\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\n @Inject(APP_LINKS) public links: any) { }\n\n ngOnInit(): void {\n this.activeFragment = this.route.fragment.pipe(share());\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\n }\n\n}\n","<!-- Sidebar component, swap this element with another sidebar if you like -->\n<div class=\"flex w-full flex-col h-full min-h-0 bg-gray-800\">\n <div class=\"flex items-center h-16 flex-shrink-0 px-4 bg-gray-900\">\n <!-- <img class=\"h-8 w-auto\" src=\"https://tailwindui.com/img/logos/workflow-logo-indigo-500-mark-white-text.svg\" alt=\"Workflow\"> -->\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"shellConfig?.appLogo\" [alt]=\"shellConfig?.appLogoAlt\" /></a>\n </div>\n <div class=\"pt-4 px-2 sidebar\">\n <lib-nav-links-list\n [show-icons]=\"true\"\n [links]=\"sectionLinks\"\n [active-fragment]=\"activeFragment\"\n [link-class]=\"'sidebar nav-link'\"\n [link-active-class]=\"'sidebar nav-link-active'\">\n </lib-nav-links-list>\n </div>\n</div>\n","import { SHELL_CONFIG } from './../../../tokens';\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\nimport { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, QueryList, AfterViewChecked } from '@angular/core';\nimport { DOCUMENT, Location } from '@angular/common';\nimport { ActivationStart, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { Subscription, timer } from 'rxjs';\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\nimport { ComponentLoaderFactory } from '../../../services/component-loader/component-loader.factory';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'lib-shell-layout',\n templateUrl: './shell-layout.component.html',\n})\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit, AfterViewChecked {\n @ViewChildren(DynamicComponentHostDirective)\n dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\n public showRightPaneSM = false;\n private routerSub$: Subscription | null = null;\n public activeConfig: IShellConfig = new DefaultShellConfig();\n public loaded = false;\n public hideSidebar = false;\n constructor(\n @Inject(DOCUMENT) private document: any,\n private router: Router,\n private location: Location,\n @Inject(SHELL_CONFIG) private config: IShellConfig | undefined,\n private componentLoaderFactory: ComponentLoaderFactory\n ) {\n if (!config) {\n config = new DefaultShellConfig();\n }\n this.activeConfig = config;\n }\n\n ngAfterViewChecked(): void {\n setTimeout(() => { this.loaded = true; }, 200);\n }\n\n ngOnInit(): void {\n this.routerSub$ = this.router.events.pipe(filter((event) => event instanceof ActivationStart)).subscribe((e) => {\n // console.log('ShellLayoutComponent ActivationStart', e);\n if ((e as ActivationStart)?.snapshot) {\n // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);\n if ((e as ActivationStart)?.snapshot?.data) {\n // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);\n if ((e as ActivationStart)?.snapshot?.data.shell) {\n // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',\n // (e as ActivationStart)?.snapshot.data.shell);\n this.activeConfig = (e as ActivationStart)?.snapshot.data.shell as IShellConfig;\n // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);\n if (this.activeConfig.customHeaderComponent) {\n this.initCustomComponents();\n }\n } else {\n this.activeConfig = this.config ? this.config : new DefaultShellConfig();\n // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);\n }\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initCustomComponents();\n }\n\n private initCustomComponents(): void {\n if (this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0) {\n this.loadCustomComponent(this.dynamicComponentHosts.find((_) => _.hostName === 'Header'));\n // since you're not using it...\n // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));\n }\n }\n\n ngOnDestroy(): void {\n if (this.routerSub$) {\n this.routerSub$.unsubscribe();\n }\n }\n\n private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void {\n if (host) {\n const viewContainerRef = host.viewContainerRef;\n if (viewContainerRef && this.activeConfig.customHeaderComponent) {\n const clf = this.componentLoaderFactory.createLoader(viewContainerRef);\n const headerCompRef = clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();\n }\n }\n }\n}\n","<div *ngIf=\"loaded && (activeConfig.layout === 'Stacked' || !activeConfig.layout)\" [style.display]=\"!loaded ? 'none':'block'\" class=\"shell-container active-side-pane\">\n\n <div class=\"shell-header-container\" *ngIf=\"activeConfig.showHeader\">\n <div [class]=\"activeConfig.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\n <ng-container *ngIf=\"activeConfig.customHeaderComponent\">\n <div appDynamicComponentHost =\"Header\"></div>\n </ng-container>\n <lib-shell-header *ngIf=\"!activeConfig.customHeaderComponent\" [show-userName]=\"activeConfig.showUserNameOnHeader\"\n [show-alerts]=\"activeConfig.showAlertsOnHeader\">\n </lib-shell-header>\n </div>\n </div>\n\n <main [class]=\"activeConfig.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\n <div [class]=\"activeConfig.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\n <router-outlet *ngIf=\"loaded && (activeConfig.layout === 'Stacked' || !activeConfig.layout)\"></router-outlet>\n </div>\n </main>\n\n <div class=\"shell-footer-container\" *ngIf=\"activeConfig.showFooter\">\n <div [class]=\"activeConfig.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\n <ng-container *ngIf=\"activeConfig.customFooterComponent\">\n <div appDynamicComponentHost hostName=\"Footer\"></div>\n </ng-container>\n <lib-shell-footer *ngIf=\"!activeConfig.customFooterComponent\"></lib-shell-footer>\n </div>\n </div>\n\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n\n <lib-toaster-container></lib-toaster-container>\n</div>\n\n<!-- SIDEBAR LAYOUT -->\n\n<div *ngIf=\"loaded && activeConfig.layout === 'Sidebar'\" [style.display]=\"!loaded ? 'none':'block'\" class=\"sidebar shell-container active-side-pane\">\n\n <!-- Static sidebar for desktop -->\n <div class=\"hidden w-0 sm:w-64 flex-col inset-y-0 bg-gray-800\" [class.hidden]=\"hideSidebar\" [class.fixed]=\"!hideSidebar\">\n <lib-shell-sidebar [config]=\"activeConfig\" ></lib-shell-sidebar>\n </div>\n\n <div class=\"flex flex-col\" [class.pl-64]=\"!hideSidebar\">\n <div class=\"sticky top-0 z-10 flex-shrink-0 flex h-16 bg-gray-800\">\n\n <button type=\"button\" class=\"hidden sm:block px-4 border-0 text-white focus:outline-none\" (click)=\"hideSidebar = !hideSidebar\">\n <span class=\"sr-only\">Open sidebar</span>\n <!-- Heroicon name: outline/menu-alt-2 -->\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n\n <button type=\"button\" class=\"block sm:hidden px-4 border-0 text-gray-200 focus:outline-none\" (click)=\"hideSidebar = !hideSidebar\">\n <span class=\"sr-only\">Open sidebar</span>\n <!-- Heroicon name: outline/menu-alt-2 --> 111\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n </svg>\n </button>\n\n <div class=\"flex-1\">\n <div class=\"shell-header-container\">\n <lib-shell-header [shell-layout]=\"activeConfig.layout\" [show-userName]=\"activeConfig.showUserNameOnHeader\" [show-alerts]=\"activeConfig.showAlertsOnHeader\"></lib-shell-header>\n </div>\n </div>\n </div>\n\n <main class=\"shell-content-container-sidebar\">\n <div class=\"shell-content-container-inner\">\n <router-outlet *ngIf=\"loaded && activeConfig.layout === 'Sidebar'\"></router-outlet>\n </div>\n </main>\n </div>\n\n <lib-side-pane #rightPane>\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n\n <lib-toaster-container></lib-toaster-container>\n\n</div>\n","import { SwitchViewAction } from '../../../types';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\n\n@Component({\n selector: 'lib-view-layout',\n templateUrl: './view-layout.component.html'\n})\nexport class ViewLayoutComponent implements OnInit {\n // tslint:disable-next-line:no-input-rename\n @ViewChild('search') private searchInput$?: ElementRef;\n // tslint:disable-next-line:no-input-rename\n @Input('show-header') header = true;\n @Input() fluid = false;\n @Input() title = 'no title';\n @Input() icon: string | null = null;\n @Input() actions: ViewAction[] | null = null;\n @Input() busy = false;\n // tslint:disable-next-line:no-input-rename\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση';\n @Input() view: string | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [];\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\n\n constructor(private route$: ActivatedRoute, private router$: Router) { }\n\n ngOnInit(): void {\n if (this.searchInput$?.nativeElement){\n fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\n map((event: any) => {\n return event.target.value; // Get input value.\n }),\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\n // If character length greater than minimumSearchCharacters setting.\n debounceTime(1000), // Time in milliseconds between key events.\n distinctUntilChanged() // If previous query is different from current.\n ).subscribe();\n }\n }\n\n public emitActionClick(action: ViewAction): void {\n this.onAction.emit(action);\n }\n\n public routerLinkActionClick(action: RouterViewAction | any): void {\n // console.log('routerLinkActionClick', action);\n if (action.outlet) {\n this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\n } else {\n this.router$.navigate([action.link]);\n }\n }\n\n searchActionClick(action: ViewAction, text: string): void {\n this.onSearch.emit(text);\n }\n\n searchActionType(text: string): void {\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\n }\n\n public handleClear(event: any): void {\n console.log('handle clear!!!');\n event.stopPropagation();\n this.onSearch.emit(event.target?.value);\n }\n\n public switchViewActionClick(action: SwitchViewAction | any): void {\n // console.log('switchViewActionClick', action);\n this.view = action.param;\n if (action && action.param) {\n this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\n }\n }\n}\n","<header *ngIf=\"header\" class=\"view-layout-paddings\">\n\n <div class=\"view-layout-title-container\">\n\n <div class=\"view-layout-title-container-inner\">\n <div class=\"flex items-center\">\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\n </div>\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\n <ng-container *ngFor=\"let meta of metaItems\">\n <div class=\"meta-item-container\">\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\n <span class=\"meta-text\">{{meta.text}}</span>\n </div>\n </ng-container>\n </div>\n </div>\n\n <div class=\"flex items-center justify-end\">\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n\n <ng-container *ngSwitchCase=\"'switch-view'\">\n <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"ml-1 disabled:opacity-50 btn-view-header\" (click)=\"switchViewActionClick(action)\">\n <span class=\"inline-block relative\">\n <i [class]=\"action.icon\"></i>\n <span *ngIf=\"view === action.param\" class=\"selected-view-indicator\"></span>\n </span>\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\" class=\"sr-only\">Search</label>\n <div class=\"search-container\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\n </svg>-->\n </div>\n <input id=\"search\" #search class=\"search-input\" [placeholder]=\"searchPlaceholder\"\n type=\"search\" name=\"search\" (input)=\"searchActionType(search.value)\" (onsearch)=\"handleClear($event)\">\n </div>\n <button type=\"button\" href=\"#\" class=\"btn-view-header rounded-l-none\" [title]=\"action.tooltip\" (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\" href=\"#\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n\n\n <ng-container *ngSwitchDefault>\n <button type=\"button\" class=\"ml-1 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</header>\n\n<!-- component -->\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\n <ng-content></ng-content>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { HeaderMetaItem } from '../../../types';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'lib-model-view-layout',\n templateUrl: './model-view-layout.component.html'\n})\nexport class ModelViewLayoutComponent implements OnInit {\n public showRightPaneSM = false;\n @Input() title = 'no title';\n // tslint:disable-next-line:no-input-rename\n @Input('primary-links') primary: { text: string, link: string }[] | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('secondary-links') secondary: { text: string, link: string }[] | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\n ];\n constructor( private location: Location) { }\n\n ngOnInit(): void {\n }\n\n public onSidePaneActivated($event: any): void {\n this.showRightPaneSM = true;\n }\n\n public onSidePaneDeactivated($event: any): void {\n this.showRightPaneSM = false;\n }\n\n public closeSidePane(): void {\n this.location.back();\n }\n}\n","<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\">\n <main class=\"model-view-container\">\n <div class=\"model-view-container-inner\">\n <aside class=\"model-view-aside\">\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\n <div class=\"model-view-aside-header-container\">\n <div class=\"model-view-aside-header-container-inner\">\n <ng-content></ng-content>\n </div>\n <!-- menu items -->\n <div class=\"model-view-menu-container\">\n <nav class=\"model-view-menu-nav\">\n <div class=\"model-view-menu-item\">\n <ng-container *ngFor=\"let section of primary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLink]=\"section.link\"\n class=\"view-nav-link\">\n {{section.text}}\n </a>\n </ng-container>\n </div>\n <div class=\"model-view-menu-item-far\">\n <ng-container *ngFor=\"let section of secondary\">\n <a href=\"#\"\n [routerLinkActive]=\"['view-nav-link-active']\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [routerLink]=\"section.link\"\n class=\"view-nav-link\">\n {{section.text}}\n </a>\n </ng-container>\n </div>\n </nav>\n </div>\n </div>\n </section>\n </aside>\n <div class=\"model-view-details-container\">\n <router-outlet></router-outlet>\n </div>\n </div>\n </main>\n","import { Router } from '@angular/router';\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Location } from '@angular/common';\n\n@Component({\n selector: 'lib-side-view-layout',\n templateUrl: './side-view-layout.component.html'\n})\nexport class SideViewLayoutComponent implements OnInit {\n @Input() title: string | null = 'Πληροφορίες';\n @Input() showActions = true;\n @Input() disabled = false;\n // tslint:disable-next-line:no-input-rename\n @Input('return-path') returnPath: string | undefined;\n // tslint:disable-next-line:no-input-rename\n @Input('ok-label') okLabel = 'Αποθήκευση';\n // tslint:disable-next-line:no-input-rename\n @Input('ok-show') okShow = true;\n // tslint:disable-next-line:no-input-rename\n @Input('ok-close-dialog') closeOnOk = true;\n // tslint:disable-next-line:no-input-rename\n @Input('cancel-label') cancelLabel = 'Ακύρωση';\n // tslint:disable-next-line:no-input-rename\n @Input('cancel-show') cancelShow = true;\n // tslint:disable-next-line:no-input-rename\n @Input('force-location-back') forceLocationBack = false;\n // @Output() close = new EventEmitter<any>();\n @Output() cancel: EventEmitter<boolean> = new EventEmitter();\n @Output() ok: EventEmitter<boolean> = new EventEmitter();\n\n constructor(private location: Location, private router: Router) { }\n\n ngOnInit(): void {\n }\n\n public closeSidePane(): void {\n if (this.returnPath) {\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));\n } else {\n if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {\n this.router.navigateByUrl(this.router.url.split('/(')[0]);\n } else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {\n this.router.navigateByUrl(this.router.url.split('(')[0]);\n } else {\n this.location.back();\n }\n }\n }\n\n public emitClose(): void {\n this.cancel.emit(false);\n this.closeSidePane();\n }\n\n public emitCancel(): void {\n this.cancel.emit(false);\n this.closeSidePane();\n }\n\n public emitOK(): void {\n this.ok.emit(true);\n if (this.closeOnOk) {\n this.closeSidePane();\n }\n }\n\n}\n","<div class=\"side-view-layout-size-box\">\n <div class=\"side-view-layout-container\">\n <div class=\"side-view-layout-container-inner\">\n <div class=\"side-view-layout-header-margins\">\n <div class=\"side-view-layout-header-container\">\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\n {{title}}\n </h2>\n <div class=\"side-view-layout-close-button-container\">\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\n <span class=\"sr-only\">Close panel</span>\n <!-- Heroicon name: outline/x -->\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n <div class=\"side-view-layout-content-container\">\n <!-- Replace with your content -->\n <ng-content></ng-content>\n <!-- /End replace -->\n </div>\n </div>\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\n {{cancelLabel}}\n </button>\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\n {{okLabel}}\n </button>\n </div>\n </div>\n</div>\n\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { fromEvent } from 'rxjs';\nimport { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { RouterViewAction, ViewAction } from '../../../types';\n\n@Component({\n selector: 'lib-form-layout',\n templateUrl: './form-layout.component.html'\n})\nexport class FormLayoutComponent implements OnInit {\n // tslint:disable-next-line:no-input-rename\n @ViewChild('search') private searchInput$?: ElementRef;\n @Input() title: string | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\n @Input() actions: ViewAction[] | null = null;\n // tslint:disable-next-line:no-input-rename\n @Input('sub-title') subTitle: string | null = null;\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\n // tslint:disable-next-line:no-output-on-prefix\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n constructor(private router$: Router) { }\n\n ngOnInit(): void {\n if (this.searchInput$?.nativeElement){\n fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\n map((event: any) => {\n return event.target.value; // Get input value.\n }),\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\n // If character length greater than minimumSearchCharacters setting.\n debounceTime(1000), // Time in milliseconds between key events.\n distinctUntilChanged() // If previous query is different from current.\n ).subscribe();\n }\n }\n\n public onSidePaneDeactivated($event: any): void {\n this.onComplete.emit(true);\n }\n\n public emitActionClick(action: ViewAction): void {\n this.onAction.emit(action);\n }\n\n searchActionClick(action: ViewAction, text: string): void {\n this.onSearch.emit(text);\n }\n\n searchActionType(text: string): void {\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\n }\n\n public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\n if (action.outlet) {\n this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\n } else {\n this.router$.navigate([action.link]);\n }\n }\n\n}\n","<div class=\"form-layout-container\">\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\n <div class=\"form-header-inner\">\n <h3 class=\"form-title\">\n {{ title }}\n </h3>\n <p class=\"form-subtitle\">\n {{ subTitle }}\n </p>\n </div>\n <div class=\"form-header-actions\">\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n <ng-container *ngSwitchCase=\"'search'\">\n <label for=\"search\" class=\"sr-only\">Search</label>\n <div class=\"search-container\">\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\n </svg>-->\n </div>\n <input id=\"search\"\n #search\n class=\"form-search-input\"\n [placeholder]=\"searchPlaceholder\"\n type=\"search\"\n name=\"search\"\n (input)=\"searchActionType(search.value)\">\n </div>\n <button type=\"button\"\n href=\"#\"\n class=\"btn-form-view-header-search\"\n [title]=\"action.tooltip\"\n (click)=\"searchActionClick(action, search.value)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"'router-link'\">\n <button type=\"button\"\n href=\"#\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"routerLinkActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button type=\"button\"\n class=\"ml-1 btn-form-view-header\"\n [title]=\"action.tooltip\"\n (click)=\"emitActionClick(action)\">\n <i [class]=\"action.icon\"></i>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"form-content-container\">\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\n <ng-content></ng-content>\n </div>\n </div>\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\n <router-outlet name=\"formRightPane\"\n (activate)=\"formPane.onSidePaneActivated($event)\"\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\n </lib-side-pane>\n</div>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from '@indice/ng-auth';\n\n@Component({\n selector: 'lib-auth-callback',\n templateUrl: './auth-callback.component.html'\n})\nexport class AuthCallbackComponent implements OnInit {\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\n\n public status = 'παρακαλώ περιμένετε...';\n\n public ngOnInit(): void {\n this.authService.signinRedirectCallback().subscribe((user) => {\n if (user) {\n this.router.navigateByUrl(user.state?.url || '/');\n }\n });\n }\n}\n","<lib-view-layout [title]=\"status\" [busy]=\"true\"></lib-view-layout>","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from '@indice/ng-auth';\n\n@Component({\n selector: 'lib-auth-renew',\n template: ''\n})\nexport class AuthRenewComponent implements OnInit {\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\n\n public ngOnInit(): void {\n this.authService.signinSilentCallback().subscribe(user => {\n if (!user) {\n this.router.navigate(['/unauthorized']);\n }\n });\n }\n}\n","import { AuthService } from '@indice/ng-auth';\nimport { Component, Inject, OnInit } from '@angular/core';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'lib-logged-out',\n templateUrl: './logged-out.component.html'\n})\nexport class LoggedOutComponent implements OnInit {\n constructor(@Inject(AuthService) private authService: AuthService) { }\n\n public status = 'working on it, please give me a sec...';\n public finished = false;\n\n public ngOnInit(): void {\n this.authService.removeUser().subscribe(() => {\n this.status = 'Thank you!';\n this.finished = true;\n });\n }\n}\n","<lib-view-layout title=\"Έχετε αποσυνδεθεί με επιτυχία!\"></lib-view-layout>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-error',\n templateUrl: './error.component.html'\n})\nexport class ErrorComponent implements OnInit {\n public error = 'Error!';\n\n ngOnInit(): void {\n }\n\n}\n","<lib-view-layout [show-header]=\"false\" title=\"500 - παρουσιάστηκε σφάλμα!\">\n <div class=\"bg-gray-600 view-container\">\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\n <span class=\"block\">500</span>\n </h2>\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">σφάλμα, κατι δεν πήγε καλά...!</p>\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\n πατήστε εδώ για να επιστρέψετε\n </a>\n </div>\n </div>\n</lib-view-layout>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-page-not-found',\n templateUrl: './page-not-found.component.html'\n})\nexport class PageNotFoundComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<lib-view-layout [show-header]=\"false\" title=\"404 - δεν βρέθηκε!\">\n <div class=\"text-gray-900\">\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\n <span class=\"block\">404</span>\n </h2>\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">δεν βρέθηκε η σελίδα που ζητήσατε!</p>\n <a href=\"/\"\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\n πατήστε εδώ για να επιστρέψετε\n </a>\n </div>\n </div>\n</lib-view-layout>\n","import { Component, Inject, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-unauthorized',\n templateUrl: './unauthorized.component.html'\n})\nexport class UnauthorizedComponent implements OnInit {\n constructor() { }\n\n public ngOnInit(): void { }\n}\n","<lib-view-layout [show-header]=\"false\" title=\"401 - δεν επιτρέπεται η πρόσβαση!\">\n <div class=\"bg-gray-600 view-container\">\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\n <span class=\"block\">401</span>\n </h2>\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">δεν έχετε τα κατάλληλα δικαιώματα πρόσβασης!</p>\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\n πατήστε εδώ για να επιστρέψετε\n </a>\n </div>\n </div>\n </lib-view-layout>\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IAddress } from '../types';\n\n@Pipe({\n name: 'address',\n pure: false\n})\nexport class AddressPipe implements PipeTransform {\n\n transform(value: IAddress | undefined): string {\n if (value === undefined || null || '') {\n return '';\n }\n // tslint:disable-next-line:no-non-null-assertion\n return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'durationFormat',\n pure: false\n})\nexport class DurationFormatPipe implements PipeTransform {\n\n transform(value: any, arg1: any, arg2: any): string {\n\n let days: any;\n let seconds: any;\n let minutes: any;\n let hours: any;\n\n if (arg1 === 'ms' && arg2 === 'hhmmss') {\n seconds = Math.floor((value / 1000) % 60);\n minutes = Math.floor(((value / (1000 * 60)) % 60));\n hours = Math.floor((value / (1000 * 60 * 60)));\n return this.format(arg2, seconds, minutes, hours, days);\n\n } else if (arg1 === 's' && arg2 === 'hhmmss') {\n seconds = Math.floor((value % 60));\n minutes = Math.floor(((value / 60) % 60));\n hours = Math.floor(((value / 60) / 60));\n return this.format(arg2, seconds, minutes, hours, days);\n\n } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\n seconds = Math.floor(((value / 1000) % 60));\n minutes = Math.floor((value / (1000 * 60) % 60));\n hours = Math.floor((value / (1000 * 60 * 60) % 24));\n days = Math.floor((value / (1000 * 60 * 60 * 24)));\n return this.format(arg2, seconds, minutes, hours, days);\n\n } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\n seconds = Math.floor(value % 60);\n minutes = Math.floor(((value / 60) % 60));\n hours = Math.floor(((value / 60) / 60) % 24);\n days = Math.floor((((value / 60) / 60) / 24));\n return this.format(arg2, seconds, minutes, hours, days);\n\n }\n else {\n return value;\n }\n }\n\n private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\n (days < 10) ? days = '0' + days : days;\n (hours < 10) ? hours = '0' + hours : hours;\n (minutes < 10) ? minutes = '0' + minutes : minutes;\n (seconds < 10) ? seconds = '0' + seconds : seconds;\n\n switch (arg2) {\n case 'hhmmss':\n return `${hours}:${minutes}:${seconds}`;\n\n case 'ddhhmmss':\n return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\n\n case 'ddhhmmssLong':\n return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\n }\n return undefined;\n }\n\n}\n","import { Observable, Subscription, of } from 'rxjs';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\nimport { Icons } from '../icons';\n\n@Component({ template: '' })\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\n public items: T[] | null | undefined = null;\n public view: string = ListViewType.Tiles;\n public title: string | null = null;\n public actions: ViewAction[] = [];\n public loaderItems: any[] = [1, 2, 3, 4, 5];\n public page = 1;\n public pageSize = 20;\n public count = 0;\n public sort: string | null = '';\n public sortdir: string | null = '-';\n public search: string | null = '';\n public sortOptions: MenuOption[] = [];\n public metaItems: HeaderMetaItem[] = [];\n public abstract newItemLink: string | null;\n private routeSub$: Subscription | undefined;\n\n constructor(private route$: ActivatedRoute, private router$: Router) {\n }\n\n ngOnDestroy(): void {\n if (this.routeSub$) {\n this.routeSub$.unsubscribe();\n }\n }\n\n public getViewActions(): Observable<ViewAction[]> {\n const actions = [\n new ViewAction('search', null, null, Icons.Search, 'αναζήτηση'),\n new ViewAction('refresh', null, null, Icons.Refresh, 'ανανέωση στοιχείων')\n ];\n if (this.newItemLink) {\n actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\n }\n return of(actions);\n }\n\n ngOnInit(): void {\n this.getViewActions().subscribe(actions => {\n this.actions = actions || [];\n });\n\n this.metaItems = [\n { key: 'count', icon: Icons.ItemsCount, text: 'παρακαλώ περιμένετε...' }\n ];\n\n // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\n // until i come up with a solution...\n\n this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\n if (params.keys.length === 0) {\n return;\n }\n\n // changing the view mode does not require reloading...\n this.view = params.get('view') || ListViewType.Tiles;\n // console.log('route changes ', this.view);\n\n if (params.get('search') !== this.search) {\n this.searchChanged(params.get('search'));\n }\n\n const page = +(params.get('page') || 1);\n if (page !== this.page) {\n this.page = page;\n }\n\n const size = +(params.get('pagesize') || 20);\n if (this.pageSize !== size) {\n this.pageSize = size;\n }\n\n if (params.get('search') !== this.search) {\n this.search = params.get('search');\n }\n\n if (params.get('sort') !== this.sort) {\n this.sort = params.get('sort');\n }\n\n if (params.get('sortdir') !== this.sortdir) {\n this.sortdir = params.get('sortdir');\n }\n\n });\n\n // just to sync params in query\n this.setRouteParams(true);\n this.load();\n }\n\n private setRouteParams(locationChange: boolean = false): void {\n this.router$.navigate([], {\n relativeTo: this.route$, queryParams: {\n view: this.view,\n page: this.page,\n pagesize: this.pageSize,\n search: this.search,\n sort: this.sort,\n dir: this.sortdir\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\n });\n }\n\n public actionHandler($event: ViewAction): void {\n // console.log('BaseListComponent actionHandler', $event);\n if ($event.key === 'refresh') {\n this.refresh();\n }\n }\n\n private load(): void {\n // console.log('BaseListComponent LOAD');\n this.count = 0;\n this.items = null;\n this.loadItems().subscribe(result => {\n this.count = result ? result.count : 0;\n this.items = result?.items;\n this.updateHeaderMeta();\n }, err => {\n this.count = 0;\n this.items = null;\n this.updateHeaderMeta();\n });\n }\n\n private updateHeaderMeta(): void {\n const count = this.metaItems?.filter(m => m.key === 'count')[0];\n if (count) {\n this.count === 1 ? count.text = `${this.count} αποτέλεσμα` : count.text = `${this.count} αποτελέσματα`;\n }\n }\n\n public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\n\n public clear(): void {\n this.count = 0;\n this.page = 1;\n this.items = null;\n this.search = null;\n this.setRouteParams();\n this.load();\n }\n\n public refresh(): void {\n this.count = 0;\n this.page = 1;\n this.items = null;\n this.setRouteParams();\n this.load();\n }\n\n public pageChanged(page: number): void {\n if (this.page !== page) {\n this.page = page;\n this.setRouteParams();\n this.load();\n }\n }\n\n public pageSizeChanged(pageSize: number): void {\n if (this.pageSize !== pageSize) {\n this.pageSize = pageSize;\n this.page = 1;\n this.setRouteParams();\n this.refresh();\n }\n }\n\n public sortChanged(sort: string): void {\n // console.log('base-list sortChanged', sort);\n if (this.sort !== sort) {\n this.page = 1;\n this.sort = sort;\n this.setRouteParams();\n this.refresh();\n }\n }\n\n public sortdirChanged(sortdir: string): void {\n if (this.sortdir !== sortdir) {\n this.page = 1;\n this.sortdir = sortdir;\n this.setRouteParams();\n this.refresh();\n }\n }\n\n public searchChanged(searchText: string | null): void {\n this.count = 0;\n this.page = 1;\n this.items = null;\n this.search = searchText;\n this.setRouteParams();\n this.load();\n }\n}\n","export const cssClassNames = {\n backdrop: 'modal-backdrop',\n show: 'show',\n fade: 'fade',\n\tmodalOpen: 'modal-open'\n};\n\nexport const animationTime = {\n backdrop: 150,\n modal: 300,\n};\n","import { Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { animationTime, cssClassNames } from './modal-styles.class';\n\n/**\n * Background layer for modals.\n * Override class name to theme it.\n * @see {@link cssClassNames}\n * @internal\n */\n@Component({\n selector: 'lib-modal-backdrop',\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n class: cssClassNames.backdrop,\n },\n})\nexport class ModalBackdropComponent implements OnInit {\n private animationsEnabled = false;\n private backdropLoader: ComponentLoader<ModalBackdropComponent> | undefined;\n constructor(private element: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n if (this.animationsEnabled) {\n this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);\n this.reflow(this.element.nativeElement);\n }\n this.renderer.addClass(this.element.nativeElement, cssClassNames.show);\n }\n\n public hide() {\n this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);\n setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);\n }\n\n reflow(element: any): void {\n ((bs: any): void => bs)(element.offsetHeight);\n }\n}\n","import { Injectable, InjectionToken, StaticProvider } from '@angular/core';\n\n/**\n * Modals option can be passed to a specific modal from {@link ModalService.show} or\n * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.\n * @remarks\n * Modal specific options are merged with global options.\n * @see {@link modalConfigDefaults} for defaults.\n * @public\n */\n@Injectable()\nexport class ModalOptions<T = Record<string, unknown>> {\n /**\n * Id for opened modal. If not set a random one is generated.\n */\n id?: number | string;\n /**\n * If static is set the modal will not close when clicking outside of modal.\n * @remarks\n * Keyboard event (escape key) stills applies. If you must get a result then also set keyboard to false.\n */\n backdrop?: boolean | 'static';\n /**\n * Closes the modal when escape key is pressed.\n */\n keyboard?: boolean;\n /**\n * Shows the modal when initialized.\n */\n show?: boolean;\n /**\n * Ignore the backdrop click. Pretty much the same as backdrop static.\n */\n ignoreBackdropClick?: boolean;\n /**\n * Css class for opened modal.\n */\n class?: string;\n /**\n * Toggle animation.\n */\n animated?: boolean;\n /**\n * Modal initial data.\n * @remarks\n * This data must be known properties of content component.\n */\n initialState?: Partial<T>;\n /**\n * Function to intercept the closure.\n * @remarks\n * You can use to catch the close event and even prevent it from closing.\n */\n closeInterceptor?: CloseInterceptorFn;\n /**\n * Modal static providers.\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\n */\n providers?: StaticProvider[];\n /**\n * aria-labelledby attribute value to set on the modal window.\n */\n ariaLabelledBy?: string;\n /**\n * aria-describedby attribute value to set on the modal window.\n */\n ariaDescribedby?: string;\n}\n\n/**\n * Default option values.\n */\nexport const modalConfigDefaults: ModalOptions = {\n backdrop: true,\n keyboard: true,\n show: false,\n ignoreBackdropClick: false,\n class: '',\n animated: true,\n initialState: {},\n closeInterceptor: void 0,\n};\n\n/**\n * Use this injection token to set global options.\n */\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> = new InjectionToken<ModalOptions>('override-default-config');\n\n/**\n * Close interceptor promise.\n */\nexport type CloseInterceptorFn = () => Promise<void>;\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { animationTime, cssClassNames } from './modal-styles.class';\nimport { ModalOptions } from './modal-options.class';\nimport { ModalService } from './modal-service';\n\n/**\n * Modal container component.\n * @remarks\n * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.\n * You can override css classes to theme it {@link cssClassNames}\n * @internal\n */\n@Component({\n selector: 'lib-modal-container',\n template: `\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\" focusTrap>\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'modal',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\n '[attr.aria-describedby]': 'config.ariaDescribedby',\n },\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n public level?: number;\n public config: ModalOptions;\n public modalService?: ModalService;\n private isShown = false;\n private animationsEnabled = false;\n private isModalHiding = false;\n private clickStartedInContent = false;\n constructor(options: ModalOptions, protected _element: ElementRef, private renderer: Renderer2) {\n this.config = Object.assign({}, options);\n }\n\n ngOnInit(): void {\n if (this.animationsEnabled) {\n this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);\n }\n this.renderer.setStyle(this._element.nativeElement, 'display', 'block');\n setTimeout(\n () => {\n this.isShown = true;\n this.renderer.addClass(this._element.nativeElement, cssClassNames.show);\n },\n this.animationsEnabled ? animationTime.backdrop : 0\n );\n if (this._element.nativeElement) {\n this._element.nativeElement.focus();\n }\n }\n\n @HostListener('mousedown', ['$event'])\n onClickStarted(event: MouseEvent): void {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n\n @HostListener('click', ['$event'])\n onClickStop(event: MouseEvent): void {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\n this.clickStartedInContent = false;\n return;\n }\n this.hide();\n }\n\n @HostListener('window:popstate')\n onPopState(): void {\n this.hide();\n }\n\n @HostListener('window:keydown.esc', ['$event'])\n onEsc(event: KeyboardEvent): void {\n if (!this.isShown) {\n return;\n }\n if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {\n event.preventDefault();\n }\n if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {\n this.hide();\n }\n }\n\n ngOnDestroy(): void {\n if (this.isShown) {\n this._hide();\n }\n }\n\n hide(result?: any): void {\n if (this.isModalHiding || !this.isShown) {\n return;\n }\n if (this.config.closeInterceptor) {\n this.config.closeInterceptor().then(\n () => this._hide(),\n () => undefined\n );\n return;\n }\n this._hide(result);\n }\n\n private _hide(result?: any): void {\n this.isModalHiding = true;\n this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);\n setTimeout(\n () => {\n this.isShown = false;\n this.modalService?.hide(this.config.id, result);\n this.isModalHiding = false;\n },\n this.animationsEnabled ? animationTime.modal : 0\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * Modal class.\n * @remarks\n * This is returned from {@link ModalService.show}.\n * @public\n */\n@Injectable()\nexport class Modal<T = any> {\n /**\n * Event that is fired when the modal behind the ref starts hiding.\n * @returns\n * Modal component instance.\n */\n onBeforeHide?: Subject<unknown>;\n /**\n * Event that is fired when the modal behind the ref finishes hiding.\n * @returns\n * An object containing the id of the closed modal and result.\n */\n onHidden?: Subject<unknown>;\n /**\n * Id of this modal.\n */\n id?: number | string;\n\n /**\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef.\n * @remarks\n * You can use this to do nasty stuff with opened modal instance.\n */\n content?: T;\n\n /**\n * Hides the modal\n * @param result - A result to the observers.\n */\n hide: (result?: any) => void = () => void 0;\n /**\n * Sets new class to modal window.\n */\n setClass: (newClass: string) => void = () => void 0;\n}\n","import { DOCUMENT } from '@angular/common';\nimport { ComponentRef, Inject, Injectable, OnDestroy, Optional, Renderer2, RendererFactory2, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { animationTime, cssClassNames } from './modal-styles.class';\nimport { ModalBackdropComponent } from './modal-backdrop-component';\nimport { ModalContainerComponent } from './modal-container-component';\nimport { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';\nimport { Modal } from './modal.class';\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\n\n/**\n * A service for using modals.\n *\n * @public\n */\n@Injectable()\nexport class ModalService implements OnDestroy {\n private onBeforeShow = new Subject();\n private onShown = new Subject();\n private onBeforeHide = new Subject();\n private onHidden = new Subject();\n\n private backdropRef?: ComponentRef<ModalBackdropComponent>;\n private defaultConfig: ModalOptions;\n private backdropLoader: ComponentLoader<ModalBackdropComponent>;\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\n private renderer: Renderer2;\n private modalsCount = 0;\n private initialPadding = '0px';\n constructor(\n private clf: ComponentLoaderFactory,\n rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private document: any,\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions\n ) {\n this.backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\n this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };\n this.renderer = rendererFactory.createRenderer(null, null);\n }\n\n ngOnDestroy(): void {\n this.loaders.forEach((loader) => loader.instance?.hide());\n }\n\n /**\n * Opens a new modal.\n *\n * @param content - `Component` or `TemplateRef` type.\n * @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.\n * @returns An instance of {@link Modal}\n */\n public show<T>(content: string | TemplateRef<any> | { new (...args: any[]): T }, config?: ModalOptions<T>) {\n this.modalsCount++;\n const combinedConfig = { ...this.defaultConfig, ...config };\n combinedConfig.id = config?.id || new Date().getUTCMilliseconds();\n this.createLoaders();\n\n this.addBodyPadding();\n if (this.modalsCount === 1) {\n this.renderer.addClass(this.document.body, cssClassNames.modalOpen);\n }\n this.showBackdrop(combinedConfig);\n return this.showModal<T>(content, combinedConfig);\n }\n\n /**\n * Hide an active modal.\n * @param id - Id of modal to hide. If not provided all active modals are hidden.\n * @param result - A result to be sent to observers.\n */\n public hide(id?: number | string, result?: any) {\n if (this.modalsCount === 1 || id == null) {\n this.hideBackdrop();\n this.revertScrollbar();\n this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);\n }\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n setTimeout(\n () => {\n this.hideModal(id, result);\n this.removeLoaders(id);\n },\n //Bug\n //Should use combined config but for the moment is not possible to pass it this parameter.\n //If config is an instance variable then every newly opened modal will override the config\n //resulting in opened modals to get a new configuration\n this.defaultConfig.animated ? animationTime.backdrop : 0\n );\n }\n\n public getActiveModal(): ModalContainerComponent {\n return this.loaders[this.modalsCount - 1].instance as ModalContainerComponent;\n }\n\n private showModal<T>(content: any, combinedConfig: ModalOptions): Modal<T> {\n const modalLoader = this.loaders[this.loaders.length - 1];\n if (combinedConfig && combinedConfig.providers) {\n combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));\n }\n\n const modal = new Modal<any>();\n const modalContainerRef = modalLoader\n .provide({ provide: ModalOptions, useValue: combinedConfig })\n .provide({ provide: Modal, useValue: modal })\n .attach(ModalContainerComponent)\n .to('body');\n\n modal.setClass = (newClass: string) => {\n if (modalContainerRef.instance) {\n modalContainerRef.instance.config.class = newClass;\n }\n };\n\n modal.onBeforeHide = new Subject();\n modal.onHidden = new Subject();\n this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);\n this.copyEvent(modalLoader.onHidden, modal.onHidden);\n modalContainerRef.show({\n content,\n animationsEnabled: combinedConfig.animated,\n initialState: combinedConfig.initialState,\n modalService: this,\n id: combinedConfig.id,\n });\n\n if (modalContainerRef.instance) {\n modalContainerRef.instance.level = this.modalsCount;\n modal.content = modalLoader.getInnerComponent();\n modal.id = modalContainerRef.instance.config?.id;\n modal.hide = (res) => modalContainerRef.instance?.hide(res);\n }\n\n return modal;\n }\n\n private hideModal(id?: number | string, result?: any): void {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\n const modalLoader = this.loaders[indexToRemove];\n if (modalLoader) {\n modalLoader.hide(id, result);\n }\n } else {\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>) => {\n if (loader.instance) {\n loader.hide(loader.instance.config.id);\n }\n });\n }\n }\n\n private showBackdrop(combinedConfig: ModalOptions): void {\n const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';\n const isBackdropInDOM = this.backdropRef != null;\n if (isBackdropEnabled && !isBackdropInDOM) {\n this.backdropLoader\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });\n this.backdropRef = this.backdropLoader.componentRef;\n }\n }\n\n private hideBackdrop(): void {\n if (!this.backdropRef) {\n return;\n }\n this.backdropRef.instance.hide();\n this.backdropRef = void 0;\n }\n\n private removeLoaders(id?: number | string): void {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\n if (indexToRemove >= 0) {\n this.loaders.splice(indexToRemove, 1);\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>, i: number) => {\n if (loader.instance) {\n loader.instance.level = i + 1;\n }\n });\n }\n } else {\n this.loaders.splice(0, this.loaders.length);\n }\n }\n\n private addBodyPadding() {\n if (this.modalsCount === 1) {\n const width = this.getScrollbarWidth();\n if (this.isScrollBarPresent(width)) {\n this.initialPadding = this.document.body.style.paddingRight;\n const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);\n this.document.body.style.paddingRight = `${actualPadding + width}px`;\n }\n }\n }\n\n private revertScrollbar() {\n this.document.body.style.paddingRight = this.initialPadding;\n }\n\n private getScrollbarWidth(): number {\n const measurer = this.document.createElement('div');\n measurer.className = 'modal-scrollbar-measure';\n\n const body = this.document.body;\n body.appendChild(measurer);\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\n body.removeChild(measurer);\n\n return width;\n }\n\n private isScrollBarPresent(scrollbarWidth: number) {\n const rect = this.document.body.getBoundingClientRect();\n const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\n const uncertainty = 0.1 * scrollbarWidth;\n return bodyToViewportGap >= scrollbarWidth - uncertainty;\n }\n\n private createLoaders(): void {\n const loader = this.clf.createLoader<ModalContainerComponent>();\n this.copyEvent(loader.onBeforeShow, this.onBeforeShow);\n this.copyEvent(loader.onShown, this.onShown);\n this.copyEvent(loader.onBeforeHide, this.onBeforeHide);\n this.copyEvent(loader.onHidden, this.onHidden);\n this.loaders.push(loader);\n }\n\n private copyEvent(from: Subject<unknown>, to: Subject<unknown>) {\n from.subscribe((data) => {\n to.next(data);\n });\n }\n}\n","\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { AddressPipe } from './pipes/address.pipe';\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\nimport { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\nimport { ComboboxComponent } from './controls/combobox/combobox.component';\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\nimport { ErrorComponent } from './pages/http-status/error/error.component';\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\nimport { IndiceAuthModule } from '@indice/ng-auth';\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\nimport { LanguageSelectionComponent } from './controls/language-selection/language-selection.component';\nimport { LibTabComponent } from './controls/tabs/lib-tab.component';\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\nimport { ListViewComponent } from './controls/list-view/list-view.component';\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\nimport { NavLinksListComponent } from './controls/nav-links-list/nav-links-list.component';\nimport { NotificationsIndicatorComponent } from './controls/notifications-indicator/notifications-indicator.component';\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\nimport { PagerComponent } from './controls/pager/pager.component';\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\nimport { ShellSidebarComponent } from './layouts/shell/shell-sidebar/shell-sidebar.component';\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\nimport { ToasterComponent } from './controls/toaster/toaster.component';\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\nimport { ToasterService } from './services/toaster.service';\nimport { ToggleComponent } from './controls/toggle/toggle.component';\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\nimport { UserProfileMenuComponent } from './controls/user-profile-menu/user-profile-menu.component';\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\n\n@NgModule({\n declarations: [\n // Directives\n ClickOutsideDirective,\n DynamicComponentHostDirective,\n // Controls\n DropDownMenuComponent,\n PagerComponent,\n ListViewComponent,\n ListColumnComponent,\n ListTileComponent,\n ListDetailsSectionComponent,\n ListViewEmptyStateComponent,\n SkeletonLoaderComponent,\n CollapsiblePanelComponent,\n KpiTileComponent,\n SidePaneComponent,\n DatepickerComponent,\n AvatarInitialsComponent,\n ToggleComponent,\n ComboboxComponent,\n // Toaster\n ToasterContainerComponent,\n ToasterComponent,\n // Shell Layout\n ShellLayoutComponent,\n ShellHeaderComponent,\n ShellFooterComponent,\n // View Layouts\n ViewLayoutComponent,\n SideViewLayoutComponent,\n ModelViewLayoutComponent,\n FormLayoutComponent,\n // Pages (common)\n AuthCallbackComponent,\n AuthRenewComponent,\n LoggedOutComponent,\n ErrorComponent,\n PageNotFoundComponent,\n UnauthorizedComponent,\n // Pipes\n AddressPipe,\n DurationFormatPipe,\n NavLinksListComponent,\n NotificationsIndicatorComponent,\n LanguageSelectionComponent,\n UserProfileMenuComponent,\n ShellSidebarComponent,\n // Tab Group Component\n LibTabComponent,\n LibTabGroupComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n IndiceAuthModule\n ],\n exports: [\n AddressPipe,\n AuthCallbackComponent,\n AuthRenewComponent,\n AvatarInitialsComponent,\n ClickOutsideDirective,\n CollapsiblePanelComponent,\n ComboboxComponent,\n DatepickerComponent,\n DropDownMenuComponent,\n DurationFormatPipe,\n ErrorComponent,\n FormLayoutComponent,\n KpiTileComponent,\n LibTabComponent,\n LibTabGroupComponent,\n ListColumnComponent,\n ListDetailsSectionComponent,\n ListTileComponent,\n ListViewComponent,\n ListViewEmptyStateComponent,\n LoggedOutComponent,\n ModelViewLayoutComponent,\n PageNotFoundComponent,\n PagerComponent,\n ShellFooterComponent,\n ShellHeaderComponent,\n ShellLayoutComponent,\n SidePaneComponent,\n SideViewLayoutComponent,\n SkeletonLoaderComponent,\n ToasterComponent,\n ToasterContainerComponent,\n ToggleComponent,\n UnauthorizedComponent,\n ViewLayoutComponent\n ]\n})\nexport class IndiceComponentsModule {\n // tslint:disable-next-line:typedef\n static forRoot(): ModuleWithProviders<IndiceComponentsModule> {\n return {\n ngModule: IndiceComponentsModule,\n providers: [ToasterService]\n };\n }\n}\n","// Public API Surface of @indice/ng-components\n// directives\nexport * from './lib/directives/click-outside.directive';\n\n// controls\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\nexport * from './lib/controls/pager/pager.component';\nexport * from './lib/controls/list-view/list-view.component';\nexport * from './lib/controls/list-view/list-column.component';\nexport * from './lib/controls/list-view/list-tile.component';\nexport * from './lib/controls/list-view/list-details-section.component';\nexport * from './lib/controls/list-view/list-view-empty-state.component';\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\nexport * from './lib/controls/date-picker/date-picker.component';\nexport * from './lib/controls/toaster/toaster-container.component';\nexport * from './lib/controls/toaster/toaster.component';\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\nexport * from './lib/controls/toggle/toggle.component';\nexport * from './lib/controls/side-pane/side-pane.component';\nexport * from './lib/controls/nav-links-list/nav-links-list.component';\nexport * from './lib/controls/combobox/combobox.component';\nexport * from './lib/controls/tabs/lib-tab.component';\nexport * from './lib/controls/tabs/lib-tab-group.component';\n\n// shell layout\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\n\n// view layouts\nexport * from './lib/layouts/views/view-layout/view-layout.component';\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\nexport * from './lib/layouts/views/form-layout/form-layout.component';\n\n// pages\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\nexport * from './lib/pages/auth/logged-out/logged-out.component';\nexport * from './lib/pages/http-status/error/error.component';\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\n\n\n// pipes\nexport * from './lib/pipes/address.pipe';\nexport * from './lib/pipes/duration-format.pipe';\n\n// common stuff (tokens, types, helper classes)\nexport * from './lib/tokens';\nexport * from './lib/types';\nexport * from './lib/icons';\nexport * from './lib/helpers/base-list.component';\n\n// services\nexport * from './lib/services/component-loader/component-loader.factory';\nexport * from './lib/services/modal-service/modal-service';\nexport { ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE, CloseInterceptorFn } from './lib/services/modal-service/modal-options.class';\nexport * from './lib/services/modal-service/modal.class';\nexport * from './lib/services/toaster.service';\n\nexport * from './lib/ng-components.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ClickOutsideDirective","i1","i2","i3.DropDownMenuComponent","i2.PagerComponent","i3.ListViewEmptyStateComponent","i4.SkeletonLoaderComponent","i1.ToasterService","i3.ToasterComponent","i3.ClickOutsideDirective","i3.NavLinksListComponent","i4.NavLinksListComponent","i5.NotificationsIndicatorComponent","i6.LanguageSelectionComponent","i7.UserProfileMenuComponent","i2.NavLinksListComponent","i3.ComponentLoaderFactory","i4.DynamicComponentHostDirective","i5.SidePaneComponent","i6.ToasterContainerComponent","i7.ShellHeaderComponent","i8.ShellFooterComponent","i9.ShellSidebarComponent","i3.ViewLayoutComponent","i3.SidePaneComponent","i2.ViewLayoutComponent","i1.ViewLayoutComponent","i1.ModalOptions","i1.ComponentLoaderFactory"],"mappings":"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"}