@resolveio/client-lib-core 16.0.0 → 21.0.1

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 (217) hide show
  1. package/fesm2022/resolveio-client-lib-core.min.mjs +1 -0
  2. package/package.json +10 -8
  3. package/types/resolveio-client-lib-core.d.ts +1904 -0
  4. package/esm2022/lib/account-manager.service.mjs +0 -229
  5. package/esm2022/lib/auth/auth-guard.service.mjs +0 -174
  6. package/esm2022/lib/auth/auth-permissions.service.mjs +0 -23
  7. package/esm2022/lib/auth/auth.service.mjs +0 -251
  8. package/esm2022/lib/auth/auth365.component.mjs +0 -51
  9. package/esm2022/lib/auth/can-deactivate-guard.service.mjs +0 -13
  10. package/esm2022/lib/auth/enroll.component.mjs +0 -88
  11. package/esm2022/lib/auth/forgot-password.component.mjs +0 -89
  12. package/esm2022/lib/core.component.mjs +0 -404
  13. package/esm2022/lib/core.module.mjs +0 -176
  14. package/esm2022/lib/core.service.mjs +0 -88
  15. package/esm2022/lib/directive/focus.mjs +0 -24
  16. package/esm2022/lib/directive/scroll.mjs +0 -54
  17. package/esm2022/lib/home/home.component.mjs +0 -84
  18. package/esm2022/lib/logger/logger.component.mjs +0 -229
  19. package/esm2022/lib/models/app-status.model.mjs +0 -2
  20. package/esm2022/lib/models/collection-document.model.mjs +0 -2
  21. package/esm2022/lib/models/cron-job.model.mjs +0 -2
  22. package/esm2022/lib/models/dialog.model.mjs +0 -2
  23. package/esm2022/lib/models/file.model.mjs +0 -2
  24. package/esm2022/lib/models/log-method-latency.model.mjs +0 -2
  25. package/esm2022/lib/models/navbar-main-tab.model.mjs +0 -2
  26. package/esm2022/lib/models/pagination.model.mjs +0 -2
  27. package/esm2022/lib/models/permission.model.mjs +0 -2
  28. package/esm2022/lib/models/select-data-label.model.mjs +0 -2
  29. package/esm2022/lib/models/subscription.model.mjs +0 -2
  30. package/esm2022/lib/models/support-ticket.model.mjs +0 -2
  31. package/esm2022/lib/models/user-group.model.mjs +0 -2
  32. package/esm2022/lib/models/user.model.mjs +0 -2
  33. package/esm2022/lib/offline-db.mjs +0 -519
  34. package/esm2022/lib/offline-manager.service.mjs +0 -109
  35. package/esm2022/lib/pipes/domsanitizor.pipe.mjs +0 -29
  36. package/esm2022/lib/pipes/filter.pipe.mjs +0 -36
  37. package/esm2022/lib/pipes/json-parse.pipe.mjs +0 -29
  38. package/esm2022/lib/pipes/minus-currency.pipe.mjs +0 -16
  39. package/esm2022/lib/pipes/phone.pipe.mjs +0 -47
  40. package/esm2022/lib/pipes/pipe.module.mjs +0 -54
  41. package/esm2022/lib/pipes/reverse-list.pipe.mjs +0 -17
  42. package/esm2022/lib/pipes/titlecase.pipe.mjs +0 -22
  43. package/esm2022/lib/report-builder.permission.mjs +0 -13
  44. package/esm2022/lib/resolveio-class.mjs +0 -50
  45. package/esm2022/lib/shared/shared.module.mjs +0 -96
  46. package/esm2022/lib/socket-manager.service.mjs +0 -340
  47. package/esm2022/lib/socket.service.mjs +0 -200
  48. package/esm2022/lib/super-admin.permission.mjs +0 -9
  49. package/esm2022/lib/support-ticket/detail/support-ticket-detail.component.mjs +0 -211
  50. package/esm2022/lib/support-ticket/edit/support-ticket-edit.component.mjs +0 -131
  51. package/esm2022/lib/support-ticket/list/support-ticket-list.component.mjs +0 -142
  52. package/esm2022/lib/support-ticket/new/support-ticket-new.component.mjs +0 -121
  53. package/esm2022/lib/support-ticket/support-ticket.component.mjs +0 -67
  54. package/esm2022/lib/support-ticket/support-ticket.module.mjs +0 -50
  55. package/esm2022/lib/support-ticket/support-ticket.routing.mjs +0 -20
  56. package/esm2022/lib/support-ticket/support-ticket.service.mjs +0 -16
  57. package/esm2022/lib/token-manager.service.mjs +0 -25
  58. package/esm2022/lib/user-settings/settings/users-settings.component.mjs +0 -302
  59. package/esm2022/lib/user-settings/user-settings.component.mjs +0 -61
  60. package/esm2022/lib/user-settings/user-settings.module.mjs +0 -41
  61. package/esm2022/lib/user-settings/user-settings.permission.mjs +0 -10
  62. package/esm2022/lib/user-settings/user-settings.routing.mjs +0 -14
  63. package/esm2022/lib/user-settings/user-settings.service.mjs +0 -16
  64. package/esm2022/lib/util/action-name.helper.mjs +0 -9
  65. package/esm2022/lib/util/aws.service.mjs +0 -80
  66. package/esm2022/lib/util/common.helper.mjs +0 -133
  67. package/esm2022/lib/util/validation.service.mjs +0 -185
  68. package/esm2022/lib/util/window-resize.service.mjs +0 -38
  69. package/esm2022/lib/util/window.service.mjs +0 -16
  70. package/esm2022/lib/widgets/alert/alert.model.mjs +0 -2
  71. package/esm2022/lib/widgets/alert/alert.service.mjs +0 -79
  72. package/esm2022/lib/widgets/collapse-table/collapse-table.component.mjs +0 -83
  73. package/esm2022/lib/widgets/collapse-table/collapse-table.module.mjs +0 -34
  74. package/esm2022/lib/widgets/data-table/data-table.component.mjs +0 -84
  75. package/esm2022/lib/widgets/data-table/data-table.model.mjs +0 -2
  76. package/esm2022/lib/widgets/data-table/data-table.module.mjs +0 -41
  77. package/esm2022/lib/widgets/date-shortcut/date-shortcut.component.mjs +0 -198
  78. package/esm2022/lib/widgets/date-shortcut/date-shortcut.module.mjs +0 -32
  79. package/esm2022/lib/widgets/dialog/dialog.confirm.content.mjs +0 -67
  80. package/esm2022/lib/widgets/dialog/dialog.error.content.mjs +0 -60
  81. package/esm2022/lib/widgets/dialog/dialog.input.content.mjs +0 -200
  82. package/esm2022/lib/widgets/dialog/dialog.login.content.mjs +0 -354
  83. package/esm2022/lib/widgets/dialog/dialog.notify.content.mjs +0 -60
  84. package/esm2022/lib/widgets/dialog/dialog.register.content.mjs +0 -333
  85. package/esm2022/lib/widgets/dialog/dialog.select-array-objs.content.mjs +0 -203
  86. package/esm2022/lib/widgets/dialog/dialog.select-array.content.mjs +0 -310
  87. package/esm2022/lib/widgets/dialog/dialog.select-data-labels.content.mjs +0 -196
  88. package/esm2022/lib/widgets/dialog/dialog.select-datetime.content.mjs +0 -191
  89. package/esm2022/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +0 -166
  90. package/esm2022/lib/widgets/dialog/dialog.service.mjs +0 -98
  91. package/esm2022/lib/widgets/file/file-upload.component.mjs +0 -433
  92. package/esm2022/lib/widgets/file/file-upload.module.mjs +0 -48
  93. package/esm2022/lib/widgets/form-button/form-button.component.mjs +0 -97
  94. package/esm2022/lib/widgets/form-button/form-button.module.mjs +0 -28
  95. package/esm2022/lib/widgets/navbar-main/navbar-main.component.mjs +0 -222
  96. package/esm2022/lib/widgets/navbar-module/navbar-module.component.mjs +0 -108
  97. package/esm2022/lib/widgets/navbar-module/navbar-module.model.mjs +0 -2
  98. package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +0 -41
  99. package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +0 -24
  100. package/esm2022/lib/widgets/scheduler/scheduler.component.mjs +0 -186
  101. package/esm2022/lib/widgets/scheduler/scheduler.module.mjs +0 -37
  102. package/esm2022/lib/widgets/sort-table/sort-table-header.component.mjs +0 -72
  103. package/esm2022/lib/widgets/sort-table/sort-table-ngfor.component.mjs +0 -49
  104. package/esm2022/lib/widgets/sort-table/sort-table.directive.mjs +0 -177
  105. package/esm2022/lib/widgets/sort-table/sort-table.module.mjs +0 -38
  106. package/esm2022/lib/widgets/user-role/user-role.component.mjs +0 -29
  107. package/esm2022/lib/widgets/user-role/user-role.module.mjs +0 -24
  108. package/esm2022/public_api.mjs +0 -91
  109. package/esm2022/resolveio-client-lib-core.mjs +0 -5
  110. package/fesm2022/resolveio-client-lib-core.mjs +0 -9019
  111. package/fesm2022/resolveio-client-lib-core.mjs.map +0 -1
  112. package/index.d.ts +0 -5
  113. package/lib/account-manager.service.d.ts +0 -41
  114. package/lib/auth/auth-guard.service.d.ts +0 -26
  115. package/lib/auth/auth-permissions.service.d.ts +0 -10
  116. package/lib/auth/auth.service.d.ts +0 -30
  117. package/lib/auth/auth365.component.d.ts +0 -20
  118. package/lib/auth/can-deactivate-guard.service.d.ts +0 -10
  119. package/lib/auth/enroll.component.d.ts +0 -28
  120. package/lib/auth/forgot-password.component.d.ts +0 -28
  121. package/lib/core.component.d.ts +0 -63
  122. package/lib/core.module.d.ts +0 -34
  123. package/lib/core.service.d.ts +0 -49
  124. package/lib/directive/focus.d.ts +0 -10
  125. package/lib/directive/scroll.d.ts +0 -20
  126. package/lib/home/home.component.d.ts +0 -28
  127. package/lib/logger/logger.component.d.ts +0 -37
  128. package/lib/models/app-status.model.d.ts +0 -4
  129. package/lib/models/collection-document.model.d.ts +0 -6
  130. package/lib/models/cron-job.model.d.ts +0 -13
  131. package/lib/models/dialog.model.d.ts +0 -23
  132. package/lib/models/file.model.d.ts +0 -9
  133. package/lib/models/log-method-latency.model.d.ts +0 -7
  134. package/lib/models/navbar-main-tab.model.d.ts +0 -14
  135. package/lib/models/pagination.model.d.ts +0 -17
  136. package/lib/models/permission.model.d.ts +0 -14
  137. package/lib/models/select-data-label.model.d.ts +0 -9
  138. package/lib/models/subscription.model.d.ts +0 -19
  139. package/lib/models/support-ticket.model.d.ts +0 -71
  140. package/lib/models/user-group.model.d.ts +0 -19
  141. package/lib/models/user.model.d.ts +0 -70
  142. package/lib/offline-db.d.ts +0 -28
  143. package/lib/offline-manager.service.d.ts +0 -23
  144. package/lib/pipes/domsanitizor.pipe.d.ts +0 -10
  145. package/lib/pipes/filter.pipe.d.ts +0 -12
  146. package/lib/pipes/json-parse.pipe.d.ts +0 -7
  147. package/lib/pipes/minus-currency.pipe.d.ts +0 -7
  148. package/lib/pipes/phone.pipe.d.ts +0 -7
  149. package/lib/pipes/pipe.module.d.ts +0 -13
  150. package/lib/pipes/reverse-list.pipe.d.ts +0 -6
  151. package/lib/pipes/titlecase.pipe.d.ts +0 -7
  152. package/lib/report-builder.permission.d.ts +0 -2
  153. package/lib/resolveio-class.d.ts +0 -26
  154. package/lib/shared/shared.module.d.ts +0 -17
  155. package/lib/socket-manager.service.d.ts +0 -36
  156. package/lib/socket.service.d.ts +0 -38
  157. package/lib/super-admin.permission.d.ts +0 -2
  158. package/lib/support-ticket/detail/support-ticket-detail.component.d.ts +0 -32
  159. package/lib/support-ticket/edit/support-ticket-edit.component.d.ts +0 -30
  160. package/lib/support-ticket/list/support-ticket-list.component.d.ts +0 -26
  161. package/lib/support-ticket/new/support-ticket-new.component.d.ts +0 -26
  162. package/lib/support-ticket/support-ticket.component.d.ts +0 -20
  163. package/lib/support-ticket/support-ticket.module.d.ts +0 -15
  164. package/lib/support-ticket/support-ticket.routing.d.ts +0 -3
  165. package/lib/support-ticket/support-ticket.service.d.ts +0 -9
  166. package/lib/token-manager.service.d.ts +0 -11
  167. package/lib/user-settings/settings/users-settings.component.d.ts +0 -54
  168. package/lib/user-settings/user-settings.component.d.ts +0 -20
  169. package/lib/user-settings/user-settings.module.d.ts +0 -12
  170. package/lib/user-settings/user-settings.permission.d.ts +0 -2
  171. package/lib/user-settings/user-settings.routing.d.ts +0 -3
  172. package/lib/user-settings/user-settings.service.d.ts +0 -9
  173. package/lib/util/action-name.helper.d.ts +0 -1
  174. package/lib/util/aws.service.d.ts +0 -16
  175. package/lib/util/common.helper.d.ts +0 -12
  176. package/lib/util/validation.service.d.ts +0 -88
  177. package/lib/util/window-resize.service.d.ts +0 -13
  178. package/lib/util/window.service.d.ts +0 -6
  179. package/lib/widgets/alert/alert.model.d.ts +0 -1
  180. package/lib/widgets/alert/alert.service.d.ts +0 -11
  181. package/lib/widgets/collapse-table/collapse-table.component.d.ts +0 -23
  182. package/lib/widgets/collapse-table/collapse-table.module.d.ts +0 -9
  183. package/lib/widgets/data-table/data-table.component.d.ts +0 -23
  184. package/lib/widgets/data-table/data-table.model.d.ts +0 -13
  185. package/lib/widgets/data-table/data-table.module.d.ts +0 -12
  186. package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +0 -20
  187. package/lib/widgets/date-shortcut/date-shortcut.module.d.ts +0 -10
  188. package/lib/widgets/dialog/dialog.confirm.content.d.ts +0 -12
  189. package/lib/widgets/dialog/dialog.error.content.d.ts +0 -11
  190. package/lib/widgets/dialog/dialog.input.content.d.ts +0 -18
  191. package/lib/widgets/dialog/dialog.login.content.d.ts +0 -17
  192. package/lib/widgets/dialog/dialog.notify.content.d.ts +0 -11
  193. package/lib/widgets/dialog/dialog.register.content.d.ts +0 -13
  194. package/lib/widgets/dialog/dialog.select-array-objs.content.d.ts +0 -23
  195. package/lib/widgets/dialog/dialog.select-array.content.d.ts +0 -31
  196. package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +0 -22
  197. package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +0 -21
  198. package/lib/widgets/dialog/dialog.select-with-buttons-url.content.d.ts +0 -25
  199. package/lib/widgets/dialog/dialog.service.d.ts +0 -21
  200. package/lib/widgets/file/file-upload.component.d.ts +0 -49
  201. package/lib/widgets/file/file-upload.module.d.ts +0 -14
  202. package/lib/widgets/form-button/form-button.component.d.ts +0 -15
  203. package/lib/widgets/form-button/form-button.module.d.ts +0 -9
  204. package/lib/widgets/navbar-main/navbar-main.component.d.ts +0 -52
  205. package/lib/widgets/navbar-module/navbar-module.component.d.ts +0 -24
  206. package/lib/widgets/navbar-module/navbar-module.model.d.ts +0 -13
  207. package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +0 -17
  208. package/lib/widgets/responsive-button-group/responsive-button-group.module.d.ts +0 -8
  209. package/lib/widgets/scheduler/scheduler.component.d.ts +0 -50
  210. package/lib/widgets/scheduler/scheduler.module.d.ts +0 -11
  211. package/lib/widgets/sort-table/sort-table-header.component.d.ts +0 -23
  212. package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +0 -17
  213. package/lib/widgets/sort-table/sort-table.directive.d.ts +0 -48
  214. package/lib/widgets/sort-table/sort-table.module.d.ts +0 -11
  215. package/lib/widgets/user-role/user-role.component.d.ts +0 -10
  216. package/lib/widgets/user-role/user-role.module.d.ts +0 -8
  217. package/public_api.d.ts +0 -87
@@ -1,41 +0,0 @@
1
- import { Component, Input, ChangeDetectorRef } from '@angular/core';
2
- import { ResizeService } from '../../util/window-resize.service';
3
- import { ProviderService, BaseComponent } from '../../resolveio-class';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../util/window-resize.service";
6
- import * as i2 from "../../resolveio-class";
7
- import * as i3 from "@angular/common";
8
- export class ResponsiveButtonGroupComponent extends BaseComponent {
9
- _cdRef;
10
- _resizeService;
11
- _services;
12
- collapseSize = 900;
13
- windowSize = window.innerWidth;
14
- windowSizeSubscription = null;
15
- constructor(_cdRef, _resizeService, _services) {
16
- super(_services);
17
- this._cdRef = _cdRef;
18
- this._resizeService = _resizeService;
19
- this._services = _services;
20
- }
21
- ngOnInit() {
22
- this.windowSizeSubscription = this._resizeService.onResize$.subscribe((val) => {
23
- if (val) {
24
- this.windowSize = val.innerWidth;
25
- this._cdRef.detectChanges();
26
- }
27
- });
28
- }
29
- ngOnDestroy() {
30
- this.windowSizeSubscription.unsubscribe();
31
- }
32
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveButtonGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ResizeService }, { token: i2.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
33
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: { collapseSize: "collapseSize" }, providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<style>\n\t@media screen and (min-width: 900px) {\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: inline-flex !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup button {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup a {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\t}\n\n\t@media screen and (max-width: 900px) {\n\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: inherit !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup button {\n\t\t\tmargin-top: 5px !important;\n\t\t\twidth: 100% !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup a {\n\t\t\tmargin-top: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n</style>\n\n<div [ngClass]=\"windowSize <= collapseSize ? ['btn-group-vertical', 'xsBtnGroup'] : ['btn-group', 'lgBtnGroup']\">\n\t<ng-content></ng-content>\n</div>\n", styles: ["\n\t@media screen and (min-width: 900px) {\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: inline-flex !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup button {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup a {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\t}\n\n\t@media screen and (max-width: 900px) {\n\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: inherit !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup button {\n\t\t\tmargin-top: 5px !important;\n\t\t\twidth: 100% !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup a {\n\t\t\tmargin-top: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveButtonGroupComponent, decorators: [{
36
- type: Component,
37
- args: [{ providers: [ProviderService], selector: 'responsive-button-group', template: "<style>\n\t@media screen and (min-width: 900px) {\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: inline-flex !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup button {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup a {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\t}\n\n\t@media screen and (max-width: 900px) {\n\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: inherit !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup button {\n\t\t\tmargin-top: 5px !important;\n\t\t\twidth: 100% !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup a {\n\t\t\tmargin-top: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n</style>\n\n<div [ngClass]=\"windowSize <= collapseSize ? ['btn-group-vertical', 'xsBtnGroup'] : ['btn-group', 'lgBtnGroup']\">\n\t<ng-content></ng-content>\n</div>\n" }]
38
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.ResizeService }, { type: i2.ProviderService }]; }, propDecorators: { collapseSize: [{
39
- type: Input
40
- }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQU92RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQU81QztJQUFtQztJQUF1QztJQUxyRixZQUFZLEdBQUcsR0FBRyxDQUFDO0lBRTVCLFVBQVUsR0FBVyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3ZDLHNCQUFzQixHQUFRLElBQUksQ0FBQztJQUVuQyxZQUFvQixNQUF5QixFQUFVLGNBQTZCLEVBQVUsU0FBMEI7UUFDdkgsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO0lBRXhILENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzdFLElBQUksR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUM1QjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQzt3R0F0QlcsOEJBQThCOzRGQUE5Qiw4QkFBOEIsNEZBSi9CLENBQUMsZUFBZSxDQUFDLGlEQ043QixvNkJBMkNBOzs0RkRqQ2EsOEJBQThCO2tCQUwxQyxTQUFTO2dDQUNFLENBQUMsZUFBZSxDQUFDLFlBQ2xCLHlCQUF5QjtrS0FLMUIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVzaXplU2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWwvd2luZG93LXJlc2l6ZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHNlbGVjdG9yOiAncmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAnLFxuXHR0ZW1wbGF0ZVVybDogJy4vcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVCdXR0b25Hcm91cENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdEBJbnB1dCgpIGNvbGxhcHNlU2l6ZSA9IDkwMDtcblxuXHR3aW5kb3dTaXplOiBudW1iZXIgPSB3aW5kb3cuaW5uZXJXaWR0aDtcblx0d2luZG93U2l6ZVN1YnNjcmlwdGlvbjogYW55ID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX3Jlc2l6ZVNlcnZpY2U6IFJlc2l6ZVNlcnZpY2UsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy53aW5kb3dTaXplU3Vic2NyaXB0aW9uID0gdGhpcy5fcmVzaXplU2VydmljZS5vblJlc2l6ZSQuc3Vic2NyaWJlKCh2YWwpID0+IHtcblx0XHRcdGlmICh2YWwpIHtcblx0XHRcdFx0dGhpcy53aW5kb3dTaXplID0gdmFsLmlubmVyV2lkdGg7XG5cdFx0XHRcdHRoaXMuX2NkUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMud2luZG93U2l6ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHR9XG59XG4iLCI8c3R5bGU+XG5cdEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwMHB4KSB7XG5cdFx0Omhvc3QgL2RlZXAvIC54c0J0bkdyb3VwIHtcblx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQ6aG9zdCAvZGVlcC8gLmxnQnRuR3JvdXAge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQ6aG9zdCAvZGVlcC8gLmxnQnRuR3JvdXAgYnV0dG9uIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiA1cHggIWltcG9ydGFudDtcblx0XHR9XG5cblx0XHQ6aG9zdCAvZGVlcC8gLmxnQnRuR3JvdXAgYSB7XG5cdFx0XHRtYXJnaW4tbGVmdDogNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTAwcHgpIHtcblxuXHRcdDpob3N0IC9kZWVwLyAueHNCdG5Hcm91cCB7XG5cdFx0XHRkaXNwbGF5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0Omhvc3QgL2RlZXAvIC54c0J0bkdyb3VwIGJ1dHRvbiB7XG5cdFx0XHRtYXJnaW4tdG9wOiA1cHggIWltcG9ydGFudDtcblx0XHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0Omhvc3QgL2RlZXAvIC54c0J0bkdyb3VwIGEge1xuXHRcdFx0bWFyZ2luLXRvcDogNXB4ICFpbXBvcnRhbnQ7XG5cdFx0fVxuXG5cdFx0Omhvc3QgL2RlZXAvIC5sZ0J0bkdyb3VwIHtcblx0XHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0XHR9XG5cdH1cbjwvc3R5bGU+XG5cbjxkaXYgW25nQ2xhc3NdPVwid2luZG93U2l6ZSA8PSBjb2xsYXBzZVNpemUgPyBbJ2J0bi1ncm91cC12ZXJ0aWNhbCcsICd4c0J0bkdyb3VwJ10gOiBbJ2J0bi1ncm91cCcsICdsZ0J0bkdyb3VwJ11cIj5cblx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -1,24 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ResponsiveButtonGroupComponent } from './responsive-button-group.component';
4
- import * as i0 from "@angular/core";
5
- export class ResponsiveButtonGroupModule {
6
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveButtonGroupModule, declarations: [ResponsiveButtonGroupComponent], imports: [CommonModule], exports: [ResponsiveButtonGroupComponent] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveButtonGroupModule, imports: [CommonModule] });
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ResponsiveButtonGroupModule, decorators: [{
11
- type: NgModule,
12
- args: [{
13
- imports: [
14
- CommonModule
15
- ],
16
- declarations: [
17
- ResponsiveButtonGroupComponent
18
- ],
19
- exports: [
20
- ResponsiveButtonGroupComponent
21
- ]
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQWFyRixNQUFNLE9BQU8sMkJBQTJCO3dHQUEzQiwyQkFBMkI7eUdBQTNCLDJCQUEyQixpQkFOdEMsOEJBQThCLGFBSDlCLFlBQVksYUFNWiw4QkFBOEI7eUdBR25CLDJCQUEyQixZQVR0QyxZQUFZOzs0RkFTRCwyQkFBMkI7a0JBWHZDLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFO3dCQUNSLFlBQVk7cUJBQ1o7b0JBQ0QsWUFBWSxFQUFFO3dCQUNiLDhCQUE4QjtxQkFDOUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNSLDhCQUE4QjtxQkFDOUI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlc3BvbnNpdmVCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW1xuXHRcdENvbW1vbk1vZHVsZVxuXHRdLFxuXHRkZWNsYXJhdGlvbnM6IFtcblx0XHRSZXNwb25zaXZlQnV0dG9uR3JvdXBDb21wb25lbnRcblx0XSxcblx0ZXhwb3J0czogW1xuXHRcdFJlc3BvbnNpdmVCdXR0b25Hcm91cENvbXBvbmVudFxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpdmVCdXR0b25Hcm91cE1vZHVsZSB7IH1cbiJdfQ==
@@ -1,186 +0,0 @@
1
- import { Component, ViewChild, ElementRef, HostListener } from '@angular/core';
2
- import moment from 'moment';
3
- import { ProviderService, BaseComponent } from '../../resolveio-class';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../resolveio-class";
6
- import * as i2 from "@angular/common";
7
- export class SchedulerComponent extends BaseComponent {
8
- _services;
9
- today = new Date();
10
- over_forward = false;
11
- over_backwards = false;
12
- mouseDown = false;
13
- mouseLastEvent = null;
14
- timer_sub = null;
15
- months = [
16
- 'Jan',
17
- 'Feb',
18
- 'Mar',
19
- 'Apr',
20
- 'May',
21
- 'Jun',
22
- 'Jul',
23
- 'Aug',
24
- 'Sep',
25
- 'Oct',
26
- 'Nov',
27
- 'Dec'
28
- ];
29
- size_svg = {
30
- width: 0,
31
- height: 0
32
- };
33
- size_cell = {
34
- width: 30,
35
- height: 30
36
- };
37
- svgChart;
38
- constructor(_services) {
39
- super(_services);
40
- this._services = _services;
41
- }
42
- ngAfterViewInit() {
43
- this.size_svg.width = this.svgChart.nativeElement.clientWidth;
44
- this.size_svg.height = this.svgChart.nativeElement.clientHeight;
45
- }
46
- ngOnDestroy() {
47
- if (this.timer_sub) {
48
- clearInterval(this.timer_sub);
49
- }
50
- }
51
- onMouseup() {
52
- this.mouseDown = false;
53
- }
54
- onMousedown(event) {
55
- this.mouseDown = true;
56
- this.mouseLastEvent = event;
57
- }
58
- onMousemove(event) {
59
- if (this.mouseDown) {
60
- let daysAdd = 0;
61
- if (this.mouseLastEvent.clientX - event.clientX > 1) {
62
- if (Math.floor((this.mouseLastEvent.clientX - event.clientX) / 15) > 0) {
63
- daysAdd = Math.floor((this.mouseLastEvent.clientX - event.clientX + ((30 - this.size_cell.width) * 5)) / 20);
64
- }
65
- else {
66
- daysAdd = 1;
67
- }
68
- }
69
- else if (this.mouseLastEvent.clientX - event.clientX < -1) {
70
- if (Math.floor((this.mouseLastEvent.clientX - event.clientX) / 15) < 0) {
71
- daysAdd = Math.floor((this.mouseLastEvent.clientX - event.clientX - ((30 - this.size_cell.width) * 5)) / 20);
72
- }
73
- else {
74
- daysAdd = -1;
75
- }
76
- }
77
- this.today = moment(this.today).add(daysAdd, 'days').toDate();
78
- this.mouseLastEvent = event;
79
- }
80
- }
81
- onMouseLeave(event) {
82
- if (this.mouseDown) {
83
- this.mouseDown = false;
84
- }
85
- }
86
- buildDays() {
87
- let days = [];
88
- for (let i = 0; i < Math.floor(this.size_svg.width / this.size_cell.width); i++) {
89
- days.push({
90
- index: i,
91
- day: moment(this.today).add(i, 'days').toDate().getDate()
92
- });
93
- }
94
- return days;
95
- }
96
- buildMonths() {
97
- let months = [{
98
- index_start: 0,
99
- index_end: null,
100
- month: this.months[this.today.getMonth()]
101
- }];
102
- for (let i = 1; i < Math.floor(this.size_svg.width / this.size_cell.width); i++) {
103
- if (moment(this.today).add(i, 'days').toDate().getMonth() !== moment(this.today).add(i - 1, 'days').toDate().getMonth()) {
104
- months[months.length - 1].index_end = i;
105
- months.push({
106
- index_start: i,
107
- index_end: null,
108
- month: this.months[moment(this.today).add(i, 'days').toDate().getMonth()]
109
- });
110
- }
111
- }
112
- months[months.length - 1].index_end = Math.floor(this.size_svg.width / this.size_cell.width);
113
- return months;
114
- }
115
- buildYears() {
116
- let years = [{
117
- index_start: 0,
118
- index_end: null,
119
- year: this.today.getFullYear()
120
- }];
121
- for (let i = 1; i < Math.floor(this.size_svg.width / this.size_cell.width); i++) {
122
- if (moment(this.today).add(i, 'days').toDate().getFullYear() !== moment(this.today).add(i - 1, 'days').toDate().getFullYear()) {
123
- years[years.length - 1].index_end = i;
124
- years.push({
125
- index_start: i,
126
- index_end: null,
127
- year: moment(this.today).add(i, 'days').toDate().getFullYear()
128
- });
129
- }
130
- }
131
- years[years.length - 1].index_end = Math.floor(this.size_svg.width / this.size_cell.width);
132
- return years;
133
- }
134
- decrementToday() {
135
- this.today = moment(this.today).subtract(1, 'days').toDate();
136
- }
137
- incrementToday() {
138
- this.today = moment(this.today).add(1, 'days').toDate();
139
- }
140
- overForward() {
141
- this.timer_sub = setInterval(() => {
142
- this.incrementToday();
143
- }, 50);
144
- }
145
- leftForward() {
146
- clearInterval(this.timer_sub);
147
- }
148
- overBackwards() {
149
- this.timer_sub = setInterval(() => {
150
- this.decrementToday();
151
- }, 50);
152
- }
153
- leftBackwards() {
154
- clearInterval(this.timer_sub);
155
- }
156
- zoomOut() {
157
- if (this.size_cell.width > 10) {
158
- this.size_cell.width -= 10;
159
- }
160
- }
161
- zoomIn() {
162
- this.size_cell.width += 10;
163
- }
164
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SchedulerComponent, deps: [{ token: i1.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
165
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SchedulerComponent, selector: "scheduler", host: { listeners: { "mouseup": "onMouseup()", "mousedown": "onMousedown($event)", "mousemove": "onMousemove($event)", "mouseleave": "onMouseLeave($event)" } }, providers: [ProviderService], viewQueries: [{ propertyName: "svgChart", first: true, predicate: ["svgChart"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n\t.bar {\n\t\tfill: red; /* changes the background */\n\t\theight: 21px;\n\t\ttransition: fill .3s ease;\n\t\tcursor: pointer;\n\t\tfont-family: Helvetica, sans-serif;\n\t}\n\n\t.bar text {\n\t\tcolor: black;\n\t}\n\n\t.bar:hover,\n\t.bar:focus {\n\t\tfill: black;\n\t}\n\n\t.bar:hover text,\n\t.bar:focus text {\n\t\tfill: red;\n\t}\n\n\t.year {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.month {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.day {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.smallText {\n\t\tfont-size: 4px;\n\t}\n</style>\n\n<div class=\"scheduler\">\n\n\t<button class=\"btn btn-warning\" type=\"button\" (mouseenter)=\"overBackwards()\" (mouseleave)=\"leftBackwards()\">Go Backwards</button>\n\t<button class=\"btn btn-success\" type=\"button\" (mouseenter)=\"overForward()\" (mouseleave)=\"leftForward()\">Go Forward</button>\n\n\t<button style=\"margin-left: 20px;\" class=\"btn btn-warning\" type=\"button\" (click)=\"zoomOut()\">Zoom Out</button>\n\t<button class=\"btn btn-success\" type=\"button\" (click)=\"zoomIn()\">Zoom In</button>\n\n\t<svg class=\"chart\" width=\"100%\" height=\"100%\" aria-labelledby=\"title desc\" role=\"img\" #svgChart>\n\t\t<title id=\"title\">Scheduler</title>\n\t\t<desc id=\"desc\">Scheduler</desc>\n\n\t\t<g class=\"year\">\n\t\t\t<ng-container *ngFor=\"let year of buildYears()\">\n\t\t\t\t<rect [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\"></rect>\n\t\t\t\t<svg [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{year.year}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"month\">\n\t\t\t<ng-container *ngFor=\"let month of buildMonths()\">\n\t\t\t\t<rect [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\"></rect>\n\t\t\t\t<svg [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{month.month}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"day\">\n\t\t\t<ng-container *ngFor=\"let day of buildDays()\">\n\t\t\t\t<rect [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\"></rect>\n\t\t\t\t<svg [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\" [style.font-size.px]=\"[size_cell.width > 10 ? 12 : 6]\">{{day.day}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\n\n\t\t<!-- <g class=\"bar\">\n\t\t\t<rect width=\"40\" height=\"19\"></rect>\n\t\t\t<text x=\"45\" y=\"9.5\" dy=\".35em\">4 apples</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"80\" height=\"19\" y=\"20\"></rect>\n\t\t\t<text x=\"85\" y=\"28\" dy=\".35em\">8 bananas</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"150\" height=\"19\" y=\"40\"></rect>\n\t\t\t<text x=\"150\" y=\"48\" dy=\".35em\">15 kiwis</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"160\" height=\"19\" y=\"60\"></rect>\n\t\t\t<text x=\"161\" y=\"68\" dy=\".35em\">16 oranges</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"230\" height=\"19\" y=\"80\"></rect>\n\t\t\t<text x=\"235\" y=\"88\" dy=\".35em\">23 lemons</text>\n\t\t</g> -->\n\t</svg>\n</div>\n", styles: ["\n\t.bar {\n\t\tfill: red; /* changes the background */\n\t\theight: 21px;\n\t\ttransition: fill .3s ease;\n\t\tcursor: pointer;\n\t\tfont-family: Helvetica, sans-serif;\n\t}\n\n\t.bar text {\n\t\tcolor: black;\n\t}\n\n\t.bar:hover,\n\t.bar:focus {\n\t\tfill: black;\n\t}\n\n\t.bar:hover text,\n\t.bar:focus text {\n\t\tfill: red;\n\t}\n\n\t.year {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.month {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.day {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.smallText {\n\t\tfont-size: 4px;\n\t}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
166
- }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SchedulerComponent, decorators: [{
168
- type: Component,
169
- args: [{ providers: [ProviderService], selector: 'scheduler', template: "<style>\n\t.bar {\n\t\tfill: red; /* changes the background */\n\t\theight: 21px;\n\t\ttransition: fill .3s ease;\n\t\tcursor: pointer;\n\t\tfont-family: Helvetica, sans-serif;\n\t}\n\n\t.bar text {\n\t\tcolor: black;\n\t}\n\n\t.bar:hover,\n\t.bar:focus {\n\t\tfill: black;\n\t}\n\n\t.bar:hover text,\n\t.bar:focus text {\n\t\tfill: red;\n\t}\n\n\t.year {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.month {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.day {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.smallText {\n\t\tfont-size: 4px;\n\t}\n</style>\n\n<div class=\"scheduler\">\n\n\t<button class=\"btn btn-warning\" type=\"button\" (mouseenter)=\"overBackwards()\" (mouseleave)=\"leftBackwards()\">Go Backwards</button>\n\t<button class=\"btn btn-success\" type=\"button\" (mouseenter)=\"overForward()\" (mouseleave)=\"leftForward()\">Go Forward</button>\n\n\t<button style=\"margin-left: 20px;\" class=\"btn btn-warning\" type=\"button\" (click)=\"zoomOut()\">Zoom Out</button>\n\t<button class=\"btn btn-success\" type=\"button\" (click)=\"zoomIn()\">Zoom In</button>\n\n\t<svg class=\"chart\" width=\"100%\" height=\"100%\" aria-labelledby=\"title desc\" role=\"img\" #svgChart>\n\t\t<title id=\"title\">Scheduler</title>\n\t\t<desc id=\"desc\">Scheduler</desc>\n\n\t\t<g class=\"year\">\n\t\t\t<ng-container *ngFor=\"let year of buildYears()\">\n\t\t\t\t<rect [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\"></rect>\n\t\t\t\t<svg [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{year.year}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"month\">\n\t\t\t<ng-container *ngFor=\"let month of buildMonths()\">\n\t\t\t\t<rect [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\"></rect>\n\t\t\t\t<svg [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{month.month}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"day\">\n\t\t\t<ng-container *ngFor=\"let day of buildDays()\">\n\t\t\t\t<rect [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\"></rect>\n\t\t\t\t<svg [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\" [style.font-size.px]=\"[size_cell.width > 10 ? 12 : 6]\">{{day.day}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\n\n\t\t<!-- <g class=\"bar\">\n\t\t\t<rect width=\"40\" height=\"19\"></rect>\n\t\t\t<text x=\"45\" y=\"9.5\" dy=\".35em\">4 apples</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"80\" height=\"19\" y=\"20\"></rect>\n\t\t\t<text x=\"85\" y=\"28\" dy=\".35em\">8 bananas</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"150\" height=\"19\" y=\"40\"></rect>\n\t\t\t<text x=\"150\" y=\"48\" dy=\".35em\">15 kiwis</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"160\" height=\"19\" y=\"60\"></rect>\n\t\t\t<text x=\"161\" y=\"68\" dy=\".35em\">16 oranges</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"230\" height=\"19\" y=\"80\"></rect>\n\t\t\t<text x=\"235\" y=\"88\" dy=\".35em\">23 lemons</text>\n\t\t</g> -->\n\t</svg>\n</div>\n" }]
170
- }], ctorParameters: function () { return [{ type: i1.ProviderService }]; }, propDecorators: { svgChart: [{
171
- type: ViewChild,
172
- args: ['svgChart', { static: true }]
173
- }], onMouseup: [{
174
- type: HostListener,
175
- args: ['mouseup']
176
- }], onMousedown: [{
177
- type: HostListener,
178
- args: ['mousedown', ['$event']]
179
- }], onMousemove: [{
180
- type: HostListener,
181
- args: ['mousemove', ['$event']]
182
- }], onMouseLeave: [{
183
- type: HostListener,
184
- args: ['mouseleave', ['$event']]
185
- }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi93aWRnZXRzL3NjaGVkdWxlci9zY2hlZHVsZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvc2NoZWR1bGVyL3NjaGVkdWxlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBaUIsVUFBVSxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVF2RSxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQXVDaEM7SUFyQ3BCLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBRW5CLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUV2QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFFdEIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUVqQixNQUFNLEdBQUc7UUFDUixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7S0FDTCxDQUFDO0lBRUYsUUFBUSxHQUFHO1FBQ1YsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQztLQUNULENBQUM7SUFFRixTQUFTLEdBQUc7UUFDWCxLQUFLLEVBQUUsRUFBRTtRQUNULE1BQU0sRUFBRSxFQUFFO0tBQ1YsQ0FBQztJQUVxQyxRQUFRLENBQWE7SUFFNUQsWUFBb0IsU0FBMEI7UUFDN0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7SUFFOUMsQ0FBQztJQUVELGVBQWU7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUI7SUFDRixDQUFDO0lBRXdCLFNBQVM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVzQyxXQUFXLENBQUMsS0FBSztRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRXNDLFdBQVcsQ0FBQyxLQUFpQjtRQUNuRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFFbkIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBRWhCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUU7Z0JBQ3BELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3ZFLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDN0c7cUJBQ0k7b0JBQ0osT0FBTyxHQUFHLENBQUMsQ0FBQztpQkFDWjthQUNEO2lCQUNJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDMUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdkUsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2lCQUM3RztxQkFDSTtvQkFDSixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ2I7YUFDRDtZQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzVCO0lBQ0YsQ0FBQztJQUV1QyxZQUFZLENBQUMsS0FBaUI7UUFDckUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0YsQ0FBQztJQUVELFNBQVM7UUFDUixJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFFZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hGLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUU7YUFDekQsQ0FBQyxDQUFDO1NBQ0g7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxNQUFNLEdBQUcsQ0FBQztnQkFDYixXQUFXLEVBQUUsQ0FBQztnQkFDZCxTQUFTLEVBQUUsSUFBSTtnQkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3pDLENBQUMsQ0FBQztRQUVILEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEYsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDeEgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDWCxXQUFXLEVBQUUsQ0FBQztvQkFDZCxTQUFTLEVBQUUsSUFBSTtvQkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3pFLENBQUMsQ0FBQzthQUNIO1NBQ0Q7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdGLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELFVBQVU7UUFDVCxJQUFJLEtBQUssR0FBRyxDQUFDO2dCQUNaLFdBQVcsRUFBRSxDQUFDO2dCQUNkLFNBQVMsRUFBRSxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTthQUM5QixDQUFDLENBQUM7UUFFSCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hGLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQzlILEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ1YsV0FBVyxFQUFFLENBQUM7b0JBQ2QsU0FBUyxFQUFFLElBQUk7b0JBQ2YsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUU7aUJBQzlELENBQUMsQ0FBQzthQUNIO1NBQ0Q7UUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNGLE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELGNBQWM7UUFDYixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsY0FBYztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUN0QixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNWLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELGFBQWE7UUFDWixJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3RCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxhQUFhO1FBQ1osYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztTQUMzQjtJQUNGLENBQUM7SUFFRCxNQUFNO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7d0dBL0xXLGtCQUFrQjs0RkFBbEIsa0JBQWtCLHFNQUxuQixDQUFDLGVBQWUsQ0FBQyxxS0NMN0IsNDFIQXVHQTs7NEZEN0ZhLGtCQUFrQjtrQkFOOUIsU0FBUztnQ0FDRSxDQUFDLGVBQWUsQ0FBQyxZQUNsQixXQUFXO3NHQXlDa0IsUUFBUTtzQkFBOUMsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQWlCWixTQUFTO3NCQUFqQyxZQUFZO3VCQUFDLFNBQVM7Z0JBSWdCLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUtFLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTJCRyxZQUFZO3NCQUFuRCxZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHNlbGVjdG9yOiAnc2NoZWR1bGVyJyxcblx0dGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlci5jb21wb25lbnQuaHRtbCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBTY2hlZHVsZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHsgXG5cblx0dG9kYXkgPSBuZXcgRGF0ZSgpO1xuXG5cdG92ZXJfZm9yd2FyZCA9IGZhbHNlO1xuXHRvdmVyX2JhY2t3YXJkcyA9IGZhbHNlO1xuXHRcblx0bW91c2VEb3duID0gZmFsc2U7XG5cdG1vdXNlTGFzdEV2ZW50ID0gbnVsbDtcblxuXHR0aW1lcl9zdWIgPSBudWxsO1xuXG5cdG1vbnRocyA9IFtcblx0XHQnSmFuJyxcblx0XHQnRmViJyxcblx0XHQnTWFyJyxcblx0XHQnQXByJyxcblx0XHQnTWF5Jyxcblx0XHQnSnVuJyxcblx0XHQnSnVsJyxcblx0XHQnQXVnJyxcblx0XHQnU2VwJyxcblx0XHQnT2N0Jyxcblx0XHQnTm92Jyxcblx0XHQnRGVjJ1xuXHRdO1xuXG5cdHNpemVfc3ZnID0ge1xuXHRcdHdpZHRoOiAwLFxuXHRcdGhlaWdodDogMFxuXHR9O1xuXG5cdHNpemVfY2VsbCA9IHtcblx0XHR3aWR0aDogMzAsXG5cdFx0aGVpZ2h0OiAzMFxuXHR9O1xuXHRcblx0QFZpZXdDaGlsZCgnc3ZnQ2hhcnQnLCB7c3RhdGljOiB0cnVlfSkgc3ZnQ2hhcnQ6IEVsZW1lbnRSZWY7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfc2VydmljZXM6IFByb3ZpZGVyU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5zaXplX3N2Zy53aWR0aCA9IHRoaXMuc3ZnQ2hhcnQubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcblx0XHR0aGlzLnNpemVfc3ZnLmhlaWdodCA9IHRoaXMuc3ZnQ2hhcnQubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRpZiAodGhpcy50aW1lcl9zdWIpIHtcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcl9zdWIpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNldXAnKSBvbk1vdXNldXAoKSB7XG5cdFx0dGhpcy5tb3VzZURvd24gPSBmYWxzZTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pIG9uTW91c2Vkb3duKGV2ZW50KSB7XG5cdFx0dGhpcy5tb3VzZURvd24gPSB0cnVlO1xuXHRcdHRoaXMubW91c2VMYXN0RXZlbnQgPSBldmVudDtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScsIFsnJGV2ZW50J10pIG9uTW91c2Vtb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG5cdFx0aWYgKHRoaXMubW91c2VEb3duKSB7XG5cblx0XHRcdGxldCBkYXlzQWRkID0gMDtcblxuXHRcdFx0aWYgKHRoaXMubW91c2VMYXN0RXZlbnQuY2xpZW50WCAtIGV2ZW50LmNsaWVudFggPiAxKSB7XG5cdFx0XHRcdGlmIChNYXRoLmZsb29yKCh0aGlzLm1vdXNlTGFzdEV2ZW50LmNsaWVudFggLSBldmVudC5jbGllbnRYKSAvIDE1KSA+IDApIHtcblx0XHRcdFx0XHRkYXlzQWRkID0gTWF0aC5mbG9vcigodGhpcy5tb3VzZUxhc3RFdmVudC5jbGllbnRYIC0gZXZlbnQuY2xpZW50WCArICgoMzAgLSB0aGlzLnNpemVfY2VsbC53aWR0aCkgKiA1KSkgLyAyMCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0ZGF5c0FkZCA9IDE7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGVsc2UgaWYgKHRoaXMubW91c2VMYXN0RXZlbnQuY2xpZW50WCAtIGV2ZW50LmNsaWVudFggPCAtMSkge1xuXHRcdFx0XHRpZiAoTWF0aC5mbG9vcigodGhpcy5tb3VzZUxhc3RFdmVudC5jbGllbnRYIC0gZXZlbnQuY2xpZW50WCkgLyAxNSkgPCAwKSB7XG5cdFx0XHRcdFx0ZGF5c0FkZCA9IE1hdGguZmxvb3IoKHRoaXMubW91c2VMYXN0RXZlbnQuY2xpZW50WCAtIGV2ZW50LmNsaWVudFggLSAoKDMwIC0gdGhpcy5zaXplX2NlbGwud2lkdGgpICogNSkpIC8gMjApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdGRheXNBZGQgPSAtMTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnRvZGF5ID0gbW9tZW50KHRoaXMudG9kYXkpLmFkZChkYXlzQWRkLCAnZGF5cycpLnRvRGF0ZSgpO1x0XHRcblx0XHRcdHRoaXMubW91c2VMYXN0RXZlbnQgPSBldmVudDtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSkgb25Nb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG5cdFx0aWYgKHRoaXMubW91c2VEb3duKSB7XG5cdFx0XHR0aGlzLm1vdXNlRG93biA9IGZhbHNlO1xuXHRcdH1cblx0fVxuXG5cdGJ1aWxkRGF5cygpIHtcblx0XHRsZXQgZGF5cyA9IFtdO1xuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLmZsb29yKHRoaXMuc2l6ZV9zdmcud2lkdGggLyB0aGlzLnNpemVfY2VsbC53aWR0aCk7IGkrKykge1xuXHRcdFx0ZGF5cy5wdXNoKHtcblx0XHRcdFx0aW5kZXg6IGksXG5cdFx0XHRcdGRheTogbW9tZW50KHRoaXMudG9kYXkpLmFkZChpLCAnZGF5cycpLnRvRGF0ZSgpLmdldERhdGUoKVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRheXM7XG5cdH1cblxuXHRidWlsZE1vbnRocygpIHtcblx0XHRsZXQgbW9udGhzID0gW3tcblx0XHRcdGluZGV4X3N0YXJ0OiAwLFxuXHRcdFx0aW5kZXhfZW5kOiBudWxsLFxuXHRcdFx0bW9udGg6IHRoaXMubW9udGhzW3RoaXMudG9kYXkuZ2V0TW9udGgoKV1cblx0XHR9XTtcblxuXHRcdGZvciAobGV0IGkgPSAxOyBpIDwgTWF0aC5mbG9vcih0aGlzLnNpemVfc3ZnLndpZHRoIC8gdGhpcy5zaXplX2NlbGwud2lkdGgpOyBpKyspIHtcblx0XHRcdGlmIChtb21lbnQodGhpcy50b2RheSkuYWRkKGksICdkYXlzJykudG9EYXRlKCkuZ2V0TW9udGgoKSAhPT0gbW9tZW50KHRoaXMudG9kYXkpLmFkZChpIC0gMSwgJ2RheXMnKS50b0RhdGUoKS5nZXRNb250aCgpKSB7XG5cdFx0XHRcdG1vbnRoc1ttb250aHMubGVuZ3RoIC0gMV0uaW5kZXhfZW5kID0gaTtcblx0XHRcdFx0bW9udGhzLnB1c2goe1xuXHRcdFx0XHRcdGluZGV4X3N0YXJ0OiBpLFxuXHRcdFx0XHRcdGluZGV4X2VuZDogbnVsbCxcblx0XHRcdFx0XHRtb250aDogdGhpcy5tb250aHNbbW9tZW50KHRoaXMudG9kYXkpLmFkZChpLCAnZGF5cycpLnRvRGF0ZSgpLmdldE1vbnRoKCldXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdG1vbnRoc1ttb250aHMubGVuZ3RoIC0gMV0uaW5kZXhfZW5kID0gTWF0aC5mbG9vcih0aGlzLnNpemVfc3ZnLndpZHRoIC8gdGhpcy5zaXplX2NlbGwud2lkdGgpO1xuXG5cdFx0cmV0dXJuIG1vbnRocztcblx0fVxuXG5cdGJ1aWxkWWVhcnMoKSB7XG5cdFx0bGV0IHllYXJzID0gW3tcblx0XHRcdGluZGV4X3N0YXJ0OiAwLFxuXHRcdFx0aW5kZXhfZW5kOiBudWxsLFxuXHRcdFx0eWVhcjogdGhpcy50b2RheS5nZXRGdWxsWWVhcigpXG5cdFx0fV07XG5cblx0XHRmb3IgKGxldCBpID0gMTsgaSA8IE1hdGguZmxvb3IodGhpcy5zaXplX3N2Zy53aWR0aCAvIHRoaXMuc2l6ZV9jZWxsLndpZHRoKTsgaSsrKSB7XG5cdFx0XHRpZiAobW9tZW50KHRoaXMudG9kYXkpLmFkZChpLCAnZGF5cycpLnRvRGF0ZSgpLmdldEZ1bGxZZWFyKCkgIT09IG1vbWVudCh0aGlzLnRvZGF5KS5hZGQoaSAtIDEsICdkYXlzJykudG9EYXRlKCkuZ2V0RnVsbFllYXIoKSkge1xuXHRcdFx0XHR5ZWFyc1t5ZWFycy5sZW5ndGggLSAxXS5pbmRleF9lbmQgPSBpO1xuXHRcdFx0XHR5ZWFycy5wdXNoKHtcblx0XHRcdFx0XHRpbmRleF9zdGFydDogaSxcblx0XHRcdFx0XHRpbmRleF9lbmQ6IG51bGwsXG5cdFx0XHRcdFx0eWVhcjogbW9tZW50KHRoaXMudG9kYXkpLmFkZChpLCAnZGF5cycpLnRvRGF0ZSgpLmdldEZ1bGxZZWFyKClcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0eWVhcnNbeWVhcnMubGVuZ3RoIC0gMV0uaW5kZXhfZW5kID0gTWF0aC5mbG9vcih0aGlzLnNpemVfc3ZnLndpZHRoIC8gdGhpcy5zaXplX2NlbGwud2lkdGgpO1xuXG5cdFx0cmV0dXJuIHllYXJzO1xuXHR9XG5cblx0ZGVjcmVtZW50VG9kYXkoKSB7XG5cdFx0dGhpcy50b2RheSA9IG1vbWVudCh0aGlzLnRvZGF5KS5zdWJ0cmFjdCgxLCAnZGF5cycpLnRvRGF0ZSgpO1xuXHR9XG5cblx0aW5jcmVtZW50VG9kYXkoKSB7XG5cdFx0dGhpcy50b2RheSA9IG1vbWVudCh0aGlzLnRvZGF5KS5hZGQoMSwgJ2RheXMnKS50b0RhdGUoKTtcblx0fVxuXG5cdG92ZXJGb3J3YXJkKCkge1xuXHRcdHRoaXMudGltZXJfc3ViID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5pbmNyZW1lbnRUb2RheSgpXG5cdFx0fSwgNTApO1xuXHR9XG5cblx0bGVmdEZvcndhcmQoKSB7XG5cdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyX3N1Yik7XG5cdH1cblxuXHRvdmVyQmFja3dhcmRzKCkge1xuXHRcdHRoaXMudGltZXJfc3ViID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5kZWNyZW1lbnRUb2RheSgpXG5cdFx0fSwgNTApO1xuXHR9XG5cblx0bGVmdEJhY2t3YXJkcygpIHtcblx0XHRjbGVhckludGVydmFsKHRoaXMudGltZXJfc3ViKTtcblx0fVxuXG5cdHpvb21PdXQoKSB7XG5cdFx0aWYgKHRoaXMuc2l6ZV9jZWxsLndpZHRoID4gMTApIHtcblx0XHRcdHRoaXMuc2l6ZV9jZWxsLndpZHRoIC09IDEwO1xuXHRcdH1cblx0fVxuXG5cdHpvb21JbigpIHtcblx0XHR0aGlzLnNpemVfY2VsbC53aWR0aCArPSAxMDtcblx0fVxufVxuIiwiPHN0eWxlPlxuXHQuYmFyIHtcblx0XHRmaWxsOiByZWQ7IC8qIGNoYW5nZXMgdGhlIGJhY2tncm91bmQgKi9cblx0XHRoZWlnaHQ6IDIxcHg7XG5cdFx0dHJhbnNpdGlvbjogZmlsbCAuM3MgZWFzZTtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Zm9udC1mYW1pbHk6IEhlbHZldGljYSwgc2Fucy1zZXJpZjtcblx0fVxuXG5cdC5iYXIgdGV4dCB7XG5cdFx0Y29sb3I6IGJsYWNrO1xuXHR9XG5cblx0LmJhcjpob3Zlcixcblx0LmJhcjpmb2N1cyB7XG5cdFx0ZmlsbDogYmxhY2s7XG5cdH1cblxuXHQuYmFyOmhvdmVyIHRleHQsXG5cdC5iYXI6Zm9jdXMgdGV4dCB7XG5cdFx0ZmlsbDogcmVkO1xuXHR9XG5cblx0LnllYXIge1xuXHRcdHN0cm9rZTpibGFjaztcblx0XHRmaWxsOiB3aGl0ZTtcblx0fVxuXG5cdC5tb250aCB7XG5cdFx0c3Ryb2tlOmJsYWNrO1xuXHRcdGZpbGw6IHdoaXRlO1xuXHR9XG5cblx0LmRheSB7XG5cdFx0c3Ryb2tlOmJsYWNrO1xuXHRcdGZpbGw6IHdoaXRlO1xuXHR9XG5cblx0LnNtYWxsVGV4dCB7XG5cdFx0Zm9udC1zaXplOiA0cHg7XG5cdH1cbjwvc3R5bGU+XG5cbjxkaXYgY2xhc3M9XCJzY2hlZHVsZXJcIj5cblxuXHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nXCIgdHlwZT1cImJ1dHRvblwiIChtb3VzZWVudGVyKT1cIm92ZXJCYWNrd2FyZHMoKVwiIChtb3VzZWxlYXZlKT1cImxlZnRCYWNrd2FyZHMoKVwiPkdvIEJhY2t3YXJkczwvYnV0dG9uPlxuXHQ8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgdHlwZT1cImJ1dHRvblwiIChtb3VzZWVudGVyKT1cIm92ZXJGb3J3YXJkKClcIiAobW91c2VsZWF2ZSk9XCJsZWZ0Rm9yd2FyZCgpXCI+R28gRm9yd2FyZDwvYnV0dG9uPlxuXG5cdDxidXR0b24gc3R5bGU9XCJtYXJnaW4tbGVmdDogMjBweDtcIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiem9vbU91dCgpXCI+Wm9vbSBPdXQ8L2J1dHRvbj5cblx0PGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2Vzc1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiem9vbUluKClcIj5ab29tIEluPC9idXR0b24+XG5cblx0PHN2ZyBjbGFzcz1cImNoYXJ0XCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGFyaWEtbGFiZWxsZWRieT1cInRpdGxlIGRlc2NcIiByb2xlPVwiaW1nXCIgI3N2Z0NoYXJ0PlxuXHRcdDx0aXRsZSBpZD1cInRpdGxlXCI+U2NoZWR1bGVyPC90aXRsZT5cblx0XHQ8ZGVzYyBpZD1cImRlc2NcIj5TY2hlZHVsZXI8L2Rlc2M+XG5cblx0XHQ8ZyBjbGFzcz1cInllYXJcIj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHllYXIgb2YgYnVpbGRZZWFycygpXCI+XG5cdFx0XHRcdDxyZWN0IFthdHRyLndpZHRoXT1cIih5ZWFyLmluZGV4X2VuZCAtIHllYXIuaW5kZXhfc3RhcnQpICogc2l6ZV9jZWxsLndpZHRoXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVfY2VsbC5oZWlnaHRcIiBbYXR0ci54XT1cInllYXIuaW5kZXhfc3RhcnQgKiBzaXplX2NlbGwud2lkdGhcIj48L3JlY3Q+XG5cdFx0XHRcdDxzdmcgW2F0dHIud2lkdGhdPVwiKHllYXIuaW5kZXhfZW5kIC0geWVhci5pbmRleF9zdGFydCkgKiBzaXplX2NlbGwud2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwic2l6ZV9jZWxsLmhlaWdodFwiIFthdHRyLnhdPVwieWVhci5pbmRleF9zdGFydCAqIHNpemVfY2VsbC53aWR0aFwiPlxuXHRcdFx0XHRcdDx0ZXh0IHg9XCI1MCVcIiB5PVwiNTAlXCIgYWxpZ25tZW50LWJhc2VsaW5lPVwibWlkZGxlXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIj57e3llYXIueWVhcn19PC90ZXh0PlxuXHRcdFx0XHQ8L3N2Zz5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdDwvZz5cblx0XHQ8ZyBjbGFzcz1cIm1vbnRoXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtb250aCBvZiBidWlsZE1vbnRocygpXCI+XG5cdFx0XHRcdDxyZWN0IFthdHRyLndpZHRoXT1cIihtb250aC5pbmRleF9lbmQgLSBtb250aC5pbmRleF9zdGFydCkgKiBzaXplX2NlbGwud2lkdGhcIiBbYXR0ci5oZWlnaHRdPVwic2l6ZV9jZWxsLmhlaWdodFwiIFthdHRyLnhdPVwibW9udGguaW5kZXhfc3RhcnQgKiBzaXplX2NlbGwud2lkdGhcIiBbYXR0ci55XT1cInNpemVfY2VsbC5oZWlnaHRcIj48L3JlY3Q+XG5cdFx0XHRcdDxzdmcgW2F0dHIud2lkdGhdPVwiKG1vbnRoLmluZGV4X2VuZCAtIG1vbnRoLmluZGV4X3N0YXJ0KSAqIHNpemVfY2VsbC53aWR0aFwiIFthdHRyLmhlaWdodF09XCJzaXplX2NlbGwuaGVpZ2h0XCIgW2F0dHIueF09XCJtb250aC5pbmRleF9zdGFydCAqIHNpemVfY2VsbC53aWR0aFwiIFthdHRyLnldPVwic2l6ZV9jZWxsLmhlaWdodFwiPlxuXHRcdFx0XHRcdDx0ZXh0IHg9XCI1MCVcIiB5PVwiNTAlXCIgYWxpZ25tZW50LWJhc2VsaW5lPVwibWlkZGxlXCIgdGV4dC1hbmNob3I9XCJtaWRkbGVcIj57e21vbnRoLm1vbnRofX08L3RleHQ+XG5cdFx0XHRcdDwvc3ZnPlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PC9nPlxuXHRcdDxnIGNsYXNzPVwiZGF5XCI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkYXkgb2YgYnVpbGREYXlzKClcIj5cblx0XHRcdFx0PHJlY3QgW2F0dHIud2lkdGhdPVwic2l6ZV9jZWxsLndpZHRoXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVfY2VsbC5oZWlnaHRcIiBbYXR0ci54XT1cImRheS5pbmRleCAqIHNpemVfY2VsbC53aWR0aFwiIFthdHRyLnldPVwic2l6ZV9jZWxsLmhlaWdodCAqIDJcIj48L3JlY3Q+XG5cdFx0XHRcdDxzdmcgW2F0dHIud2lkdGhdPVwic2l6ZV9jZWxsLndpZHRoXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVfY2VsbC5oZWlnaHRcIiBbYXR0ci54XT1cImRheS5pbmRleCAqIHNpemVfY2VsbC53aWR0aFwiIFthdHRyLnldPVwic2l6ZV9jZWxsLmhlaWdodCAqIDJcIj5cblx0XHRcdFx0XHQ8dGV4dCB4PVwiNTAlXCIgeT1cIjUwJVwiIGFsaWdubWVudC1iYXNlbGluZT1cIm1pZGRsZVwiIHRleHQtYW5jaG9yPVwibWlkZGxlXCIgW3N0eWxlLmZvbnQtc2l6ZS5weF09XCJbc2l6ZV9jZWxsLndpZHRoID4gMTAgPyAxMiA6IDZdXCI+e3tkYXkuZGF5fX08L3RleHQ+XG5cdFx0XHRcdDwvc3ZnPlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PC9nPlxuXG5cblx0XHQ8IS0tIDxnIGNsYXNzPVwiYmFyXCI+XG5cdFx0XHQ8cmVjdCB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiMTlcIj48L3JlY3Q+XG5cdFx0XHQ8dGV4dCB4PVwiNDVcIiB5PVwiOS41XCIgZHk9XCIuMzVlbVwiPjQgYXBwbGVzPC90ZXh0PlxuXHRcdDwvZz5cblx0XHQ8ZyBjbGFzcz1cImJhclwiPlxuXHRcdFx0PHJlY3Qgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjE5XCIgeT1cIjIwXCI+PC9yZWN0PlxuXHRcdFx0PHRleHQgeD1cIjg1XCIgeT1cIjI4XCIgZHk9XCIuMzVlbVwiPjggYmFuYW5hczwvdGV4dD5cblx0XHQ8L2c+XG5cdFx0PGcgY2xhc3M9XCJiYXJcIj5cblx0XHRcdDxyZWN0IHdpZHRoPVwiMTUwXCIgaGVpZ2h0PVwiMTlcIiB5PVwiNDBcIj48L3JlY3Q+XG5cdFx0XHQ8dGV4dCB4PVwiMTUwXCIgeT1cIjQ4XCIgZHk9XCIuMzVlbVwiPjE1IGtpd2lzPC90ZXh0PlxuXHRcdDwvZz5cblx0XHQ8ZyBjbGFzcz1cImJhclwiPlxuXHRcdFx0PHJlY3Qgd2lkdGg9XCIxNjBcIiBoZWlnaHQ9XCIxOVwiIHk9XCI2MFwiPjwvcmVjdD5cblx0XHRcdDx0ZXh0IHg9XCIxNjFcIiB5PVwiNjhcIiBkeT1cIi4zNWVtXCI+MTYgb3JhbmdlczwvdGV4dD5cblx0XHQ8L2c+XG5cdFx0PGcgY2xhc3M9XCJiYXJcIj5cblx0XHRcdDxyZWN0IHdpZHRoPVwiMjMwXCIgaGVpZ2h0PVwiMTlcIiB5PVwiODBcIj48L3JlY3Q+XG5cdFx0XHQ8dGV4dCB4PVwiMjM1XCIgeT1cIjg4XCIgZHk9XCIuMzVlbVwiPjIzIGxlbW9uczwvdGV4dD5cblx0XHQ8L2c+IC0tPlxuXHQ8L3N2Zz5cbjwvZGl2PlxuIl19
@@ -1,37 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
3
- import { FormsModule } from '@angular/forms';
4
- import { CommonModule } from '@angular/common';
5
- import { RouterModule } from '@angular/router';
6
- import { SchedulerComponent } from './scheduler.component';
7
- import * as i0 from "@angular/core";
8
- export class SchedulerModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: SchedulerModule, declarations: [SchedulerComponent], imports: [NgbModule,
11
- FormsModule,
12
- CommonModule,
13
- RouterModule], exports: [SchedulerComponent] });
14
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SchedulerModule, imports: [NgbModule,
15
- FormsModule,
16
- CommonModule,
17
- RouterModule] });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SchedulerModule, decorators: [{
20
- type: NgModule,
21
- args: [{
22
- imports: [
23
- NgbModule,
24
- FormsModule,
25
- CommonModule,
26
- RouterModule
27
- ],
28
- exports: [
29
- SchedulerComponent
30
- ],
31
- declarations: [
32
- SchedulerComponent
33
- ],
34
- providers: []
35
- }]
36
- }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi93aWRnZXRzL3NjaGVkdWxlci9zY2hlZHVsZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQWlCM0QsTUFBTSxPQUFPLGVBQWU7d0dBQWYsZUFBZTt5R0FBZixlQUFlLGlCQUoxQixrQkFBa0IsYUFUbEIsU0FBUztZQUNULFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWSxhQUdaLGtCQUFrQjt5R0FPUCxlQUFlLFlBYjFCLFNBQVM7WUFDVCxXQUFXO1lBQ1gsWUFBWTtZQUNaLFlBQVk7OzRGQVVELGVBQWU7a0JBZjNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFO3dCQUNSLFNBQVM7d0JBQ1QsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFlBQVk7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFO3dCQUNSLGtCQUFrQjtxQkFDbEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNiLGtCQUFrQjtxQkFDbEI7b0JBQ0QsU0FBUyxFQUFFLEVBQUc7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHRcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHRcblxuaW1wb3J0IHsgU2NoZWR1bGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zY2hlZHVsZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW1xuXHRcdE5nYk1vZHVsZSxcblx0XHRGb3Jtc01vZHVsZSxcblx0XHRDb21tb25Nb2R1bGUsXG5cdFx0Um91dGVyTW9kdWxlXG5cdF0sXG5cdGV4cG9ydHM6IFtcblx0XHRTY2hlZHVsZXJDb21wb25lbnRcblx0XSxcblx0ZGVjbGFyYXRpb25zOiBbXG5cdFx0U2NoZWR1bGVyQ29tcG9uZW50XG5cdF0sXG5cdHByb3ZpZGVyczogWyBdXG59KVxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlck1vZHVsZSB7IH1cbiJdfQ==
@@ -1,72 +0,0 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, ChangeDetectorRef, Optional } from '@angular/core';
2
- import { SortTableDirective } from './sort-table.directive';
3
- import { merge } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./sort-table.directive";
6
- import * as i2 from "@angular/common";
7
- export class SortTableHeaderComponent {
8
- _sort;
9
- _arrowDirection = 0;
10
- id;
11
- arrowPosition = 'after';
12
- start;
13
- _rerenderSubscription;
14
- disabled;
15
- constructor(changeDetectorRef, _sort) {
16
- this._sort = _sort;
17
- if (!_sort) {
18
- throw Error(`SortTableSortHeader must be placed within a parent element with the CTSortable directive.`);
19
- }
20
- this._rerenderSubscription = merge(_sort.sortChange, _sort._stateChanges).subscribe(() => {
21
- if (this._isSorted()) {
22
- this._updateArrowDirection();
23
- }
24
- changeDetectorRef.markForCheck();
25
- });
26
- }
27
- ngOnInit() {
28
- // console.log('Init Sort Header');
29
- this._sort.register(this);
30
- }
31
- ngOnDestroy() {
32
- this._sort.deregister(this);
33
- this._rerenderSubscription.unsubscribe();
34
- }
35
- _isSorted() {
36
- return this._sort.active === this.id;
37
- }
38
- _getSortDirection() {
39
- return this._sort.direction;
40
- }
41
- _updateArrowDirection() {
42
- this._arrowDirection = this._isSorted() ? this._sort.direction : (this.start || this._sort.start);
43
- }
44
- _isDisabled() {
45
- return this._sort.disabled || this.disabled;
46
- }
47
- onClick(event) {
48
- // console.log('Clicked on', this.id, event);
49
- if (this._isDisabled()) {
50
- return;
51
- }
52
- this._sort.sort(this);
53
- }
54
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortTableHeaderComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SortTableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
55
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SortTableHeaderComponent, selector: "[sort-table-header]", inputs: { disabled: "disabled", id: ["sort-table-header", "id"], arrowPosition: "arrowPosition", start: "start" }, ngImport: i0, template: "<div (click)=\"onClick($event)\">\n <ng-content></ng-content>\n <i *ngIf=\"_isSorted() && _getSortDirection() === -1\" class=\"fa fa-arrow-down\" style=\"margin-left: 10px; font-size: 14px\"></i>\n <i *ngIf=\"_isSorted() && _getSortDirection() === 1\" class=\"fa fa-arrow-up\" style=\"margin-left: 10px; font-size: 14px\"></i>\n</div>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
56
- }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortTableHeaderComponent, decorators: [{
58
- type: Component,
59
- args: [{ selector: '[sort-table-header]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, inputs: ['disabled'], template: "<div (click)=\"onClick($event)\">\n <ng-content></ng-content>\n <i *ngIf=\"_isSorted() && _getSortDirection() === -1\" class=\"fa fa-arrow-down\" style=\"margin-left: 10px; font-size: 14px\"></i>\n <i *ngIf=\"_isSorted() && _getSortDirection() === 1\" class=\"fa fa-arrow-up\" style=\"margin-left: 10px; font-size: 14px\"></i>\n</div>" }]
60
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SortTableDirective, decorators: [{
61
- type: Optional
62
- }] }]; }, propDecorators: { id: [{
63
- type: Input,
64
- args: ['sort-table-header']
65
- }], arrowPosition: [{
66
- type: Input
67
- }], start: [{
68
- type: Input
69
- }], disabled: [{
70
- type: Input
71
- }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC10YWJsZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL3dpZGdldHMvc29ydC10YWJsZS9zb3J0LXRhYmxlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9zb3J0LXRhYmxlL3NvcnQtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQXFCLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUErQixrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7O0FBeUIzQyxNQUFNLE9BQU8sd0JBQXdCO0lBUWlDO0lBUHJFLGVBQWUsR0FBc0IsQ0FBQyxDQUFDO0lBQ1gsRUFBRSxDQUFTO0lBQzlCLGFBQWEsR0FBdUIsT0FBTyxDQUFDO0lBQzVDLEtBQUssQ0FBb0I7SUFDbEMscUJBQXFCLENBQWU7SUFDM0IsUUFBUSxDQUFVO0lBRTNCLFlBQVksaUJBQW9DLEVBQXFCLEtBQXlCO1FBQXpCLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBRTdGLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWCxNQUFNLEtBQUssQ0FBQywyRkFBMkYsQ0FBQyxDQUFDO1NBQ3pHO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQzthQUM3QjtZQUVELGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDUCxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELFNBQVM7UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQjtRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxxQkFBcUI7UUFDcEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRUQsV0FBVztRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQUs7UUFDWiw2Q0FBNkM7UUFFN0MsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQzt3R0F2RFcsd0JBQXdCOzRGQUF4Qix3QkFBd0IsOEtDM0JyQyx5VkFJTTs7NEZEdUJPLHdCQUF3QjtrQkF2QnBDLFNBQVM7K0JBQ0MscUJBQXFCLGlCQVVoQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFVBQ3ZDLENBQUMsVUFBVSxDQUFDOzswQkFrQitCLFFBQVE7NENBTi9CLEVBQUU7c0JBQTdCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNqQixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIE9uRGVzdHJveSwgT25Jbml0LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTb3J0YWJsZSwgU29ydERpcmVjdGlvblR5cGUsIFNvcnRUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vc29ydC10YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdbc29ydC10YWJsZS1oZWFkZXJdJyxcblx0dGVtcGxhdGVVcmw6ICcuL3NvcnQtdGFibGUtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcblx0Ly8gaG9zdDoge1xuXHQvLyAgICcoY2xpY2spJzogJ19oYW5kbGVDbGljaygpJyxcblx0Ly8gICAnKG1vdXNlZW50ZXIpJzogJ19zZXRJbmRpY2F0b3JIaW50VmlzaWJsZSh0cnVlKScsXG5cdC8vICAgJyhsb25ncHJlc3MpJzogJ19zZXRJbmRpY2F0b3JIaW50VmlzaWJsZSh0cnVlKScsXG5cdC8vICAgJyhtb3VzZWxlYXZlKSc6ICdfc2V0SW5kaWNhdG9ySGludFZpc2libGUoZmFsc2UpJyxcblx0Ly8gICAnW2F0dHIuYXJpYS1zb3J0XSc6ICdfZ2V0QXJpYVNvcnRBdHRyaWJ1dGUoKScsXG5cdC8vICAgJ1tjbGFzcy5tYXQtc29ydC1oZWFkZXItZGlzYWJsZWRdJzogJ19pc0Rpc2FibGVkKCknLFxuXHQvLyB9LFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG5cdC8vIGFuaW1hdGlvbnM6IFtcblx0Ly8gICBtYXRTb3J0QW5pbWF0aW9ucy5pbmRpY2F0b3IsXG5cdC8vICAgbWF0U29ydEFuaW1hdGlvbnMubGVmdFBvaW50ZXIsXG5cdC8vICAgbWF0U29ydEFuaW1hdGlvbnMucmlnaHRQb2ludGVyLFxuXHQvLyAgIG1hdFNvcnRBbmltYXRpb25zLmFycm93T3BhY2l0eSxcblx0Ly8gICBtYXRTb3J0QW5pbWF0aW9ucy5hcnJvd1Bvc2l0aW9uLFxuXHQvLyAgIG1hdFNvcnRBbmltYXRpb25zLmFsbG93Q2hpbGRyZW4sXG5cdC8vIF1cbn0pXG5leHBvcnQgY2xhc3MgU29ydFRhYmxlSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgU29ydGFibGUsIE9uRGVzdHJveSwgT25Jbml0IHtcblx0X2Fycm93RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uVHlwZSA9IDA7XG5cdEBJbnB1dCgnc29ydC10YWJsZS1oZWFkZXInKSBpZDogc3RyaW5nO1xuXHRASW5wdXQoKSBhcnJvd1Bvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInO1xuXHRASW5wdXQoKSBzdGFydDogU29ydERpcmVjdGlvblR5cGU7XG5cdF9yZXJlbmRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXHRASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcblxuXHRjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBPcHRpb25hbCgpIHB1YmxpYyBfc29ydDogU29ydFRhYmxlRGlyZWN0aXZlKSB7XG5cblx0XHRpZiAoIV9zb3J0KSB7XG5cdFx0XHR0aHJvdyBFcnJvcihgU29ydFRhYmxlU29ydEhlYWRlciBtdXN0IGJlIHBsYWNlZCB3aXRoaW4gYSBwYXJlbnQgZWxlbWVudCB3aXRoIHRoZSBDVFNvcnRhYmxlIGRpcmVjdGl2ZS5gKTtcblx0XHR9XG5cblx0XHR0aGlzLl9yZXJlbmRlclN1YnNjcmlwdGlvbiA9IG1lcmdlKF9zb3J0LnNvcnRDaGFuZ2UsIF9zb3J0Ll9zdGF0ZUNoYW5nZXMpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5faXNTb3J0ZWQoKSkge1xuXHRcdFx0XHR0aGlzLl91cGRhdGVBcnJvd0RpcmVjdGlvbigpO1xuXHRcdFx0fVxuXG5cdFx0XHRjaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblx0XHR9KTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdC8vIGNvbnNvbGUubG9nKCdJbml0IFNvcnQgSGVhZGVyJyk7XG5cdFx0dGhpcy5fc29ydC5yZWdpc3Rlcih0aGlzKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuX3NvcnQuZGVyZWdpc3Rlcih0aGlzKTtcblx0XHR0aGlzLl9yZXJlbmRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHR9XG5cblx0X2lzU29ydGVkKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb3J0LmFjdGl2ZSA9PT0gdGhpcy5pZDtcblx0fVxuXG5cdF9nZXRTb3J0RGlyZWN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLl9zb3J0LmRpcmVjdGlvbjtcblx0fVxuXG5cdF91cGRhdGVBcnJvd0RpcmVjdGlvbigpIHtcblx0XHR0aGlzLl9hcnJvd0RpcmVjdGlvbiA9IHRoaXMuX2lzU29ydGVkKCkgPyB0aGlzLl9zb3J0LmRpcmVjdGlvbiA6ICh0aGlzLnN0YXJ0IHx8IHRoaXMuX3NvcnQuc3RhcnQpO1xuXHR9XG5cblx0X2lzRGlzYWJsZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NvcnQuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZDtcblx0fVxuXG5cdG9uQ2xpY2soZXZlbnQpIHtcblx0XHQvLyBjb25zb2xlLmxvZygnQ2xpY2tlZCBvbicsIHRoaXMuaWQsIGV2ZW50KTtcblx0XHRcblx0XHRpZiAodGhpcy5faXNEaXNhYmxlZCgpKSB7IHJldHVybjsgfVxuXG5cdFx0dGhpcy5fc29ydC5zb3J0KHRoaXMpO1xuXHR9XG59IiwiPGRpdiAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxpICpuZ0lmPVwiX2lzU29ydGVkKCkgJiYgX2dldFNvcnREaXJlY3Rpb24oKSA9PT0gLTFcIiBjbGFzcz1cImZhIGZhLWFycm93LWRvd25cIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMHB4OyBmb250LXNpemU6IDE0cHhcIj48L2k+XG4gICAgPGkgKm5nSWY9XCJfaXNTb3J0ZWQoKSAmJiBfZ2V0U29ydERpcmVjdGlvbigpID09PSAxXCIgY2xhc3M9XCJmYSBmYS1hcnJvdy11cFwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IDEwcHg7IGZvbnQtc2l6ZTogMTRweFwiPjwvaT5cbjwvZGl2PiJdfQ==
@@ -1,49 +0,0 @@
1
- import { Component, Input, Optional, Output, EventEmitter } from '@angular/core';
2
- import { SortTableDirective } from './sort-table.directive';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./sort-table.directive";
5
- export class SortTableNgForComponent {
6
- _sort;
7
- data = [];
8
- dataChanged = new EventEmitter();
9
- sortSub$ = null;
10
- sortedData = [];
11
- constructor(_sort) {
12
- this._sort = _sort;
13
- // console.log('NgFor Const');
14
- if (!_sort) {
15
- throw Error(`SortTableNgFor must be placed within a parent element with the CTSortable directive.`);
16
- }
17
- }
18
- ngOnInit() {
19
- this.sortSub$ = this._sort.getData().subscribe(data => {
20
- this.sortedData = data;
21
- this.dataChanged.emit(this.sortedData);
22
- // console.log('Sorted Data', this.sortedData);
23
- });
24
- }
25
- ngOnChanges() {
26
- // console.log('NgFor Changed', this.data);
27
- this._sort.setData(this.data);
28
- }
29
- ngOnDestroy() {
30
- this.sortSub$.unsubscribe();
31
- }
32
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortTableNgForComponent, deps: [{ token: i1.SortTableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
33
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SortTableNgForComponent, selector: "[sort-table-ngfor]", inputs: { data: ["sort-table-ngfor", "data"] }, outputs: { dataChanged: "dataChanged" }, usesOnChanges: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
34
- }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SortTableNgForComponent, decorators: [{
36
- type: Component,
37
- args: [{
38
- selector: '[sort-table-ngfor]',
39
- template: '<ng-content></ng-content>'
40
- }]
41
- }], ctorParameters: function () { return [{ type: i1.SortTableDirective, decorators: [{
42
- type: Optional
43
- }] }]; }, propDecorators: { data: [{
44
- type: Input,
45
- args: ['sort-table-ngfor']
46
- }], dataChanged: [{
47
- type: Output
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC10YWJsZS1uZ2Zvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvd2lkZ2V0cy9zb3J0LXRhYmxlL3NvcnQtdGFibGUtbmdmb3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBcUIsTUFBTSxFQUFFLFlBQVksRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUUvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBTTVELE1BQU0sT0FBTyx1QkFBdUI7SUFPSjtJQU5KLElBQUksR0FBRyxFQUFFLENBQUM7SUFDM0IsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFFbEQsUUFBUSxHQUFpQixJQUFJLENBQUM7SUFDOUIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUVoQixZQUErQixLQUF5QjtRQUF6QixVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQUN2RCw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNYLE1BQU0sS0FBSyxDQUFDLHNGQUFzRixDQUFDLENBQUM7U0FDcEc7SUFDRixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXZDLCtDQUErQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1YsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0IsQ0FBQzt3R0E5QlcsdUJBQXVCOzRGQUF2Qix1QkFBdUIsd0tBRnpCLDJCQUEyQjs7NEZBRXpCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsMkJBQTJCO2lCQUNyQzs7MEJBUWEsUUFBUTs0Q0FOTSxJQUFJO3NCQUE5QixLQUFLO3VCQUFDLGtCQUFrQjtnQkFDZixXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3B0aW9uYWwsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNvcnRUYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vc29ydC10YWJsZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdbc29ydC10YWJsZS1uZ2Zvcl0nLFxuXHR0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXG59KVxuZXhwb3J0IGNsYXNzIFNvcnRUYWJsZU5nRm9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cdEBJbnB1dCgnc29ydC10YWJsZS1uZ2ZvcicpIGRhdGEgPSBbXTtcblx0QE91dHB1dCgpIGRhdGFDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuXHRzb3J0U3ViJDogU3Vic2NyaXB0aW9uID0gbnVsbDtcblx0c29ydGVkRGF0YSA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBfc29ydDogU29ydFRhYmxlRGlyZWN0aXZlKSB7XG5cdFx0Ly8gY29uc29sZS5sb2coJ05nRm9yIENvbnN0Jyk7XG5cdFx0aWYgKCFfc29ydCkge1xuXHRcdFx0dGhyb3cgRXJyb3IoYFNvcnRUYWJsZU5nRm9yIG11c3QgYmUgcGxhY2VkIHdpdGhpbiBhIHBhcmVudCBlbGVtZW50IHdpdGggdGhlIENUU29ydGFibGUgZGlyZWN0aXZlLmApO1xuXHRcdH1cblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuc29ydFN1YiQgPSB0aGlzLl9zb3J0LmdldERhdGEoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG5cdFx0XHR0aGlzLnNvcnRlZERhdGEgPSBkYXRhO1xuXHRcdFx0dGhpcy5kYXRhQ2hhbmdlZC5lbWl0KHRoaXMuc29ydGVkRGF0YSk7XG5cblx0XHRcdC8vIGNvbnNvbGUubG9nKCdTb3J0ZWQgRGF0YScsIHRoaXMuc29ydGVkRGF0YSk7XG5cdFx0fSk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcygpIHtcblx0XHQvLyBjb25zb2xlLmxvZygnTmdGb3IgQ2hhbmdlZCcsIHRoaXMuZGF0YSk7XG5cdFx0dGhpcy5fc29ydC5zZXREYXRhKHRoaXMuZGF0YSk7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLnNvcnRTdWIkLnVuc3Vic2NyaWJlKCk7XG5cdH1cbn0iXX0=