@acorex/components 16.18.50 → 16.19.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 (190) hide show
  1. package/fesm2022/acorex-components.mjs +723 -687
  2. package/fesm2022/acorex-components.mjs.map +1 -1
  3. package/index.d.ts +1 -0
  4. package/lib/base/base-page.class.d.ts +2 -2
  5. package/lib/base/element.class.d.ts +5 -5
  6. package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +1 -1
  7. package/lib/data-filter/filter.class.d.ts +1 -1
  8. package/lib/data-list/core/data-list.component.d.ts +1 -1
  9. package/lib/property-editor/property-editor.class.d.ts +1 -1
  10. package/package.json +4 -6
  11. package/esm2022/acorex-components.mjs +0 -5
  12. package/esm2022/index.mjs +0 -159
  13. package/esm2022/lib/accordion/accordion.component.mjs +0 -45
  14. package/esm2022/lib/accordion/accordion.module.mjs +0 -20
  15. package/esm2022/lib/base/base-page.class.mjs +0 -97
  16. package/esm2022/lib/base/components.class.mjs +0 -17
  17. package/esm2022/lib/base/element.class.mjs +0 -307
  18. package/esm2022/lib/base/events.class.mjs +0 -17
  19. package/esm2022/lib/button/button.component.mjs +0 -74
  20. package/esm2022/lib/button/button.module.mjs +0 -21
  21. package/esm2022/lib/calendar/calendar-box/calendar-box.component.mjs +0 -469
  22. package/esm2022/lib/calendar/calendar-box/calendar-box.module.mjs +0 -22
  23. package/esm2022/lib/calendar/scheduler/scheduler-views.property.mjs +0 -59
  24. package/esm2022/lib/calendar/scheduler/scheduler.class.mjs +0 -16
  25. package/esm2022/lib/calendar/scheduler/scheduler.component.mjs +0 -226
  26. package/esm2022/lib/calendar/scheduler/scheduler.module.mjs +0 -68
  27. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +0 -136
  28. package/esm2022/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +0 -37
  29. package/esm2022/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +0 -49
  30. package/esm2022/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +0 -102
  31. package/esm2022/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +0 -214
  32. package/esm2022/lib/calendar/scheduler/views/scheduler-view.component.mjs +0 -99
  33. package/esm2022/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +0 -85
  34. package/esm2022/lib/checkbox/checkbox.component.mjs +0 -112
  35. package/esm2022/lib/checkbox/checkbox.module.mjs +0 -20
  36. package/esm2022/lib/color-picker/color-box/color-box.component.mjs +0 -423
  37. package/esm2022/lib/color-picker/color-picker.component.mjs +0 -89
  38. package/esm2022/lib/color-picker/color-picker.module.mjs +0 -24
  39. package/esm2022/lib/context-menu/context-menu.component.mjs +0 -68
  40. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -146
  41. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -20
  42. package/esm2022/lib/data-filter/columns/filter-column-date.component.mjs +0 -140
  43. package/esm2022/lib/data-filter/columns/filter-column-number.component.mjs +0 -119
  44. package/esm2022/lib/data-filter/columns/filter-column-selection.component.mjs +0 -75
  45. package/esm2022/lib/data-filter/columns/filter-column-string.component.mjs +0 -119
  46. package/esm2022/lib/data-filter/filter-panel/filter-panel.component.mjs +0 -267
  47. package/esm2022/lib/data-filter/filter.class.mjs +0 -46
  48. package/esm2022/lib/data-filter/filter.module.mjs +0 -88
  49. package/esm2022/lib/data-filter/toolbar/filter-toolbar.component.mjs +0 -168
  50. package/esm2022/lib/data-list/core/data-list.component.mjs +0 -37
  51. package/esm2022/lib/data-list/list/list.component.mjs +0 -134
  52. package/esm2022/lib/data-list/list/list.module.mjs +0 -22
  53. package/esm2022/lib/data-list/list/toolbar-list-view.component.mjs +0 -84
  54. package/esm2022/lib/data-source/datasource.component.mjs +0 -47
  55. package/esm2022/lib/data-source/datasource.module.mjs +0 -18
  56. package/esm2022/lib/data-source/read-param.mjs +0 -7
  57. package/esm2022/lib/date-picker/date-picker.component.mjs +0 -1102
  58. package/esm2022/lib/date-picker/date-picker.module.mjs +0 -50
  59. package/esm2022/lib/dialog/dialog.component.mjs +0 -26
  60. package/esm2022/lib/dialog/dialog.module.mjs +0 -21
  61. package/esm2022/lib/dialog/dialog.service.mjs +0 -160
  62. package/esm2022/lib/drawer/content.component.mjs +0 -18
  63. package/esm2022/lib/drawer/drawer-container.component.mjs +0 -38
  64. package/esm2022/lib/drawer/drawer.component.mjs +0 -146
  65. package/esm2022/lib/drawer/drawer.module.mjs +0 -23
  66. package/esm2022/lib/dropdown/dropdown.component.mjs +0 -186
  67. package/esm2022/lib/dropdown/dropdown.module.mjs +0 -26
  68. package/esm2022/lib/fieldset/fieldset.component.mjs +0 -57
  69. package/esm2022/lib/fieldset/fieldset.module.mjs +0 -19
  70. package/esm2022/lib/form-group/form-group.component.mjs +0 -108
  71. package/esm2022/lib/form-group/form-group.module.mjs +0 -22
  72. package/esm2022/lib/form-group/form-lable.directive.mjs +0 -23
  73. package/esm2022/lib/label/label.component.mjs +0 -22
  74. package/esm2022/lib/label/label.module.mjs +0 -21
  75. package/esm2022/lib/loading/loading-indicator.component.mjs +0 -18
  76. package/esm2022/lib/loading/loading-panel.component.mjs +0 -45
  77. package/esm2022/lib/loading/loading.module.mjs +0 -21
  78. package/esm2022/lib/loading/loading.service.mjs +0 -47
  79. package/esm2022/lib/menu/menu-item.component.mjs +0 -50
  80. package/esm2022/lib/menu/menu.component.mjs +0 -114
  81. package/esm2022/lib/menu/menu.module.mjs +0 -22
  82. package/esm2022/lib/menu/menu2.component.mjs +0 -100
  83. package/esm2022/lib/number-box/number-box.component.mjs +0 -715
  84. package/esm2022/lib/number-box/number-box.module.mjs +0 -21
  85. package/esm2022/lib/page/content.component.mjs +0 -27
  86. package/esm2022/lib/page/footer.component.mjs +0 -19
  87. package/esm2022/lib/page/page.component.mjs +0 -57
  88. package/esm2022/lib/page/page.module.mjs +0 -22
  89. package/esm2022/lib/panel-box/panel-box.component.mjs +0 -87
  90. package/esm2022/lib/panel-box/panel-box.module.mjs +0 -19
  91. package/esm2022/lib/password-box/password-box.component.mjs +0 -36
  92. package/esm2022/lib/password-box/password-box.module.mjs +0 -23
  93. package/esm2022/lib/popover/custom-cdk-overlay.service.mjs +0 -50
  94. package/esm2022/lib/popover/overlay.service.mjs +0 -94
  95. package/esm2022/lib/popover/popover.component.mjs +0 -145
  96. package/esm2022/lib/popover/popover.module.mjs +0 -19
  97. package/esm2022/lib/popup/popup.component.mjs +0 -160
  98. package/esm2022/lib/popup/popup.module.mjs +0 -25
  99. package/esm2022/lib/popup/popup.service.mjs +0 -94
  100. package/esm2022/lib/progress-bar/progress-bar.component.mjs +0 -16
  101. package/esm2022/lib/progress-bar/progress-bar.module.mjs +0 -19
  102. package/esm2022/lib/property-editor/editors/check-editor/check-editor.mjs +0 -65
  103. package/esm2022/lib/property-editor/editors/check-editor/check.module.mjs +0 -22
  104. package/esm2022/lib/property-editor/editors/color-editor/color.editor.mjs +0 -41
  105. package/esm2022/lib/property-editor/editors/color-editor/color.module.mjs +0 -24
  106. package/esm2022/lib/property-editor/editors/column-editor/column.editor.mjs +0 -118
  107. package/esm2022/lib/property-editor/editors/column-editor/column.module.mjs +0 -32
  108. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +0 -216
  109. package/esm2022/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +0 -76
  110. package/esm2022/lib/property-editor/editors/date-editor/date.editor.mjs +0 -87
  111. package/esm2022/lib/property-editor/editors/date-editor/date.module.mjs +0 -24
  112. package/esm2022/lib/property-editor/editors/number-editor/number.editor.mjs +0 -72
  113. package/esm2022/lib/property-editor/editors/number-editor/number.module.mjs +0 -24
  114. package/esm2022/lib/property-editor/editors/range-editor/range.editor.mjs +0 -145
  115. package/esm2022/lib/property-editor/editors/range-editor/range.module.mjs +0 -59
  116. package/esm2022/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +0 -76
  117. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +0 -75
  118. package/esm2022/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +0 -25
  119. package/esm2022/lib/property-editor/editors/selection-editor/selection-editor.mjs +0 -73
  120. package/esm2022/lib/property-editor/editors/selection-editor/selection.module.mjs +0 -22
  121. package/esm2022/lib/property-editor/editors/switch-editor/number.editor.mjs +0 -30
  122. package/esm2022/lib/property-editor/editors/switch-editor/number.module.mjs +0 -25
  123. package/esm2022/lib/property-editor/editors/text-editor/text.editor.mjs +0 -36
  124. package/esm2022/lib/property-editor/editors/text-editor/text.module.mjs +0 -24
  125. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +0 -35
  126. package/esm2022/lib/property-editor/editors/textarea-editor/textarea.module.mjs +0 -24
  127. package/esm2022/lib/property-editor/editors/time-editor/time.editor.mjs +0 -55
  128. package/esm2022/lib/property-editor/editors/time-editor/time.module.mjs +0 -24
  129. package/esm2022/lib/property-editor/property-editor-renderer.directive.mjs +0 -167
  130. package/esm2022/lib/property-editor/property-editor.class.mjs +0 -108
  131. package/esm2022/lib/property-editor/property-editor.module.mjs +0 -194
  132. package/esm2022/lib/query-builder/query-builder-group.component.mjs +0 -129
  133. package/esm2022/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +0 -177
  134. package/esm2022/lib/query-builder/query-builder-rule.component.mjs +0 -428
  135. package/esm2022/lib/query-builder/query-builder.class.mjs +0 -42
  136. package/esm2022/lib/query-builder/query-builder.component.mjs +0 -92
  137. package/esm2022/lib/query-builder/query-builder.module.mjs +0 -62
  138. package/esm2022/lib/query-builder/query-builder.service.mjs +0 -199
  139. package/esm2022/lib/search-bar/search-bar.component.mjs +0 -293
  140. package/esm2022/lib/search-bar/search-bar.module.mjs +0 -61
  141. package/esm2022/lib/searchbox/searchbox.component.mjs +0 -138
  142. package/esm2022/lib/searchbox/searchbox.module.mjs +0 -24
  143. package/esm2022/lib/selectbox/selectbox.component.mjs +0 -1137
  144. package/esm2022/lib/selectbox/selectbox.module.mjs +0 -45
  145. package/esm2022/lib/selectbox/selectbox2.component.mjs +0 -617
  146. package/esm2022/lib/selection-list/selection-list.component.mjs +0 -120
  147. package/esm2022/lib/selection-list/selection-list.module.mjs +0 -21
  148. package/esm2022/lib/switch/switch.component.mjs +0 -55
  149. package/esm2022/lib/switch/switch.module.mjs +0 -20
  150. package/esm2022/lib/tab-page/tab-page-Renderer.component.mjs +0 -75
  151. package/esm2022/lib/tab-page/tab-page-host.component.mjs +0 -124
  152. package/esm2022/lib/tab-page/tab-page.module.mjs +0 -21
  153. package/esm2022/lib/tab-page/tab-page.service.mjs +0 -159
  154. package/esm2022/lib/tab-strip/tab-strip.component.mjs +0 -48
  155. package/esm2022/lib/tab-strip/tab-strip.module.mjs +0 -19
  156. package/esm2022/lib/tab-view/dynamic-tabs.directive.mjs +0 -25
  157. package/esm2022/lib/tab-view/tab-view.component.mjs +0 -110
  158. package/esm2022/lib/tab-view/tab-view.module.mjs +0 -21
  159. package/esm2022/lib/tab-view/tab.component.mjs +0 -33
  160. package/esm2022/lib/textarea/textarea.component.mjs +0 -44
  161. package/esm2022/lib/textarea/textarea.module.mjs +0 -21
  162. package/esm2022/lib/textbox/textbox.component.mjs +0 -46
  163. package/esm2022/lib/textbox/textbox.module.mjs +0 -36
  164. package/esm2022/lib/time-picker/time-picker.component.mjs +0 -1107
  165. package/esm2022/lib/time-picker/time-picker.module.mjs +0 -34
  166. package/esm2022/lib/toast/toast-message/toast-message.component.mjs +0 -76
  167. package/esm2022/lib/toast/toast-wrapper/toast-wrapper.component.mjs +0 -13
  168. package/esm2022/lib/toast/toast.module.mjs +0 -21
  169. package/esm2022/lib/toast/toast.service.mjs +0 -45
  170. package/esm2022/lib/toolbar/group-button/toolbar-group-button.component.mjs +0 -77
  171. package/esm2022/lib/toolbar/menu/toolbar-menu.component.mjs +0 -65
  172. package/esm2022/lib/toolbar/search/toolbar-search.component.mjs +0 -56
  173. package/esm2022/lib/toolbar/title/toolbar-title.component.mjs +0 -37
  174. package/esm2022/lib/toolbar/toolbar-item.mjs +0 -4
  175. package/esm2022/lib/toolbar/toolbar.component.mjs +0 -13
  176. package/esm2022/lib/toolbar/toolbar.module.mjs +0 -40
  177. package/esm2022/lib/tooltip/tooltip.directive.mjs +0 -115
  178. package/esm2022/lib/tooltip/tooltip.module.mjs +0 -19
  179. package/esm2022/lib/tree-side-menu/tree-side-menu.component.mjs +0 -697
  180. package/esm2022/lib/tree-side-menu/tree-side-menu.module.mjs +0 -33
  181. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -854
  182. package/esm2022/lib/tree-view/tree-view.module.mjs +0 -22
  183. package/esm2022/lib/upload-file/upload-file.component.mjs +0 -299
  184. package/esm2022/lib/upload-file/upload-file.events.mjs +0 -2
  185. package/esm2022/lib/upload-file/upload-file.module.mjs +0 -24
  186. package/esm2022/lib/validation/validation-form.component.mjs +0 -68
  187. package/esm2022/lib/validation/validation-rule.widget.mjs +0 -133
  188. package/esm2022/lib/validation/validation.class.mjs +0 -2
  189. package/esm2022/lib/validation/validation.component.mjs +0 -89
  190. package/esm2022/lib/validation/validation.module.mjs +0 -34
@@ -1,37 +0,0 @@
1
- import { Component, Output, EventEmitter, ViewChild } from '@angular/core';
2
- import { AXToolbarItem } from '../../../toolbar/toolbar-item';
3
- import { AXToolbarMenuComponent } from '../../../toolbar/menu/toolbar-menu.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../../toolbar/menu/toolbar-menu.component";
6
- export class AXToolbarSchedulerViewsComponent {
7
- constructor() { }
8
- menu;
9
- items = [];
10
- update() {
11
- this.menu.update();
12
- }
13
- onViewChanged = new EventEmitter();
14
- onItemClick(e) {
15
- this.onViewChanged.emit(e.name);
16
- }
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXToolbarSchedulerViewsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXToolbarSchedulerViewsComponent, selector: "ax-toolbar-scheduler-view", outputs: { onViewChanged: "onViewChanged" }, providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerViewsComponent }], viewQueries: [{ propertyName: "menu", first: true, predicate: AXToolbarMenuComponent, descendants: true, static: true }], ngImport: i0, template: `
19
- <ax-toolbar-menu [items]="items" selection="single" (onItemClick)="onItemClick($event)"></ax-toolbar-menu>
20
- `, isInline: true, dependencies: [{ kind: "component", type: i1.AXToolbarMenuComponent, selector: "ax-toolbar-menu", inputs: ["menuTemplate", "floatPlacemnet", "selection", "items"], outputs: ["onItemClick"] }] });
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXToolbarSchedulerViewsComponent, decorators: [{
23
- type: Component,
24
- args: [{
25
- selector: 'ax-toolbar-scheduler-view',
26
- template: `
27
- <ax-toolbar-menu [items]="items" selection="single" (onItemClick)="onItemClick($event)"></ax-toolbar-menu>
28
- `,
29
- providers: [{ provide: AXToolbarItem, useExisting: AXToolbarSchedulerViewsComponent }]
30
- }]
31
- }], ctorParameters: () => [], propDecorators: { menu: [{
32
- type: ViewChild,
33
- args: [AXToolbarMenuComponent, { static: true }]
34
- }], onViewChanged: [{
35
- type: Output
36
- }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLXRvb2xiYXItdmlld3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9zY2hlZHVsZXIvdG9vbGJhcnMvc2NoZWR1bGVyLXRvb2xiYXItdmlld3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOENBQThDLENBQUM7OztBQVl0RixNQUFNLE9BQU8sZ0NBQWdDO0lBQ3pDLGdCQUFnQixDQUFDO0lBRW9DLElBQUksQ0FBeUI7SUFDbEYsS0FBSyxHQUFpQixFQUFFLENBQUM7SUFFekIsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUdELGFBQWEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVqRSxXQUFXLENBQUMsQ0FBYTtRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzt1R0FmUSxnQ0FBZ0M7MkZBQWhDLGdDQUFnQyxpR0FGOUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGdDQUFnQyxFQUFFLENBQUMsZ0VBSzNFLHNCQUFzQiw4REFSdkI7O0tBRVQ7OzJGQUdRLGdDQUFnQztrQkFQNUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUU7O0tBRVQ7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsa0NBQWtDLEVBQUUsQ0FBQztpQkFDekY7d0RBSXdELElBQUk7c0JBQXhELFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVFuRCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuaW1wb3J0IHsgQVhUb29sYmFySXRlbSB9IGZyb20gJy4uLy4uLy4uL3Rvb2xiYXIvdG9vbGJhci1pdGVtJztcbmltcG9ydCB7IEFYVG9vbGJhck1lbnVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi90b29sYmFyL21lbnUvdG9vbGJhci1tZW51LmNvbXBvbmVudCc7XG5cblxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtdG9vbGJhci1zY2hlZHVsZXItdmlldycsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGF4LXRvb2xiYXItbWVudSBbaXRlbXNdPVwiaXRlbXNcIiBzZWxlY3Rpb249XCJzaW5nbGVcIiAob25JdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiPjwvYXgtdG9vbGJhci1tZW51PlxuICAgIGAsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFRvb2xiYXJJdGVtLCB1c2VFeGlzdGluZzogQVhUb29sYmFyU2NoZWR1bGVyVmlld3NDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhUb29sYmFyU2NoZWR1bGVyVmlld3NDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBAVmlld0NoaWxkKEFYVG9vbGJhck1lbnVDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIG1lbnU6IEFYVG9vbGJhck1lbnVDb21wb25lbnQ7XG4gICAgaXRlbXM6IEFYTWVudUl0ZW1bXSA9IFtdO1xuXG4gICAgdXBkYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnUudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgb25WaWV3Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIG9uSXRlbUNsaWNrKGU6IEFYTWVudUl0ZW0pIHtcbiAgICAgICAgdGhpcy5vblZpZXdDaGFuZ2VkLmVtaXQoZS5uYW1lKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -1,49 +0,0 @@
1
- import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
2
- import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
3
- import { AXDateTime, AXDateTimeRange } from '@acorex/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/cdk/drag-drop";
7
- import * as i3 from "@acorex/core";
8
- export class AXSchedulerAgendaViewComponent extends AXSchedulerBaseViewComponent {
9
- elm;
10
- cdr;
11
- constructor(elm, cdr) {
12
- super();
13
- this.elm = elm;
14
- this.cdr = cdr;
15
- }
16
- hideEmptyDays = true;
17
- updateSize() {
18
- }
19
- navigate(date = new AXDateTime()) {
20
- this.slots = [];
21
- for (let i = 0; i < this.interval; i++) {
22
- let d = date.addDay(i);
23
- const range = new AXDateTimeRange(d, d);
24
- const slot = {
25
- range,
26
- events: this.getEvents(range, 'day')
27
- };
28
- if (this.hideEmptyDays && slot.events.length === 0) {
29
- continue;
30
- }
31
- this.slots.push(slot);
32
- }
33
- this.navigatorDate = date;
34
- this.cdr.detectChanges();
35
- }
36
- next() {
37
- this.navigate(this.navigatorDate.addDay(this.interval));
38
- }
39
- prev() {
40
- this.navigate(this.navigatorDate.addDay(-this.interval));
41
- }
42
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSchedulerAgendaViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
43
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXSchedulerAgendaViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-agenda-view\">\n <table class=\"body\" cdkDropListGroup>\n <tbody *ngIf=\"slots.length; else elseTemplate\">\n <tr *ngFor=\"let slot of slots\" cdkDropList [cdkDropListData]=\"slot\" [attr.data-uid]=\"slot.uid\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\">\n <td class=\"day-column\">\n <div class=\"day-num\">{{slot.range.startTime | dt:\"DD\"}}</div>\n <div class=\"day-name\">{{slot.range.startTime | dt:\"ddd\"}}</div>\n </td>\n <td class=\"day-border\">\n <ul *ngIf=\"slot.events.length\">\n <li *ngFor=\"let e of slot.events\" [style.border-color]=\"e.color\" cdkDrag [cdkDragData]=\"e\"\n [attr.data-uid]=\"e.uid\">\n <div class=\"event-title\">{{e.title}}</div>\n <div class=\"event-time\">{{e.range.startTime | dt:\"HH:mm\"}} - <span\n *ngIf=\"e.range.duration('days')!=0 then a else b\"></span></div>\n <ng-template #a>\n {{e.range.endTime | dt:\"HH:mm\"}}\n </ng-template>\n <ng-template #b>\n {{e.range.endTime | dt:\"YYYY-MM-DD HH:mm\"}}\n </ng-template>\n\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n </li>\n </ul>\n <div *ngIf=\"!slot.events.length\" class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n <ng-template #elseTemplate>\n <tbody>\n <tr>\n <td colspan=\"2\">\n <div class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n </ng-template>\n </table>\n</div>", styles: [".ax-scheduler-agenda-view{height:100%;overflow-y:auto}.ax-scheduler-agenda-view table{border-top:1px solid var(--border-color)}.ax-scheduler-agenda-view .event-title{color:var(--gray-fore-color)}.ax-scheduler-agenda-view td{padding-top:5px;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;border:none}.ax-scheduler-agenda-view td.day-border{border-bottom:1px solid var(--border-color);padding:5px;vertical-align:middle}.ax-scheduler-agenda-view .day-column{width:80px;text-align:center}.ax-scheduler-agenda-view .day-column .day-num{font-weight:600}.ax-scheduler-agenda-view .day-column .day-name{font-size:smaller}.ax-scheduler-agenda-view ul{list-style:none;padding:0;margin:0}.ax-scheduler-agenda-view ul li{border-left:4px solid var(--primary-color);margin-bottom:var(--sp-sm-size);padding:0 8px}.ax-scheduler-agenda-view ul li:hover{background-color:var(--primary-lighter-color);cursor:pointer}.ax-scheduler-agenda-view ul li .event-time,.ax-scheduler-agenda-view ul li .event-empty{color:var(--gray-fore-color);font-size:smaller}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "pipe", type: i3.AXDateTimePipe, name: "dt" }], encapsulation: i0.ViewEncapsulation.None });
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSchedulerAgendaViewComponent, decorators: [{
46
- type: Component,
47
- args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], template: "<div class=\"view ax-scheduler-agenda-view\">\n <table class=\"body\" cdkDropListGroup>\n <tbody *ngIf=\"slots.length; else elseTemplate\">\n <tr *ngFor=\"let slot of slots\" cdkDropList [cdkDropListData]=\"slot\" [attr.data-uid]=\"slot.uid\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\">\n <td class=\"day-column\">\n <div class=\"day-num\">{{slot.range.startTime | dt:\"DD\"}}</div>\n <div class=\"day-name\">{{slot.range.startTime | dt:\"ddd\"}}</div>\n </td>\n <td class=\"day-border\">\n <ul *ngIf=\"slot.events.length\">\n <li *ngFor=\"let e of slot.events\" [style.border-color]=\"e.color\" cdkDrag [cdkDragData]=\"e\"\n [attr.data-uid]=\"e.uid\">\n <div class=\"event-title\">{{e.title}}</div>\n <div class=\"event-time\">{{e.range.startTime | dt:\"HH:mm\"}} - <span\n *ngIf=\"e.range.duration('days')!=0 then a else b\"></span></div>\n <ng-template #a>\n {{e.range.endTime | dt:\"HH:mm\"}}\n </ng-template>\n <ng-template #b>\n {{e.range.endTime | dt:\"YYYY-MM-DD HH:mm\"}}\n </ng-template>\n\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n </li>\n </ul>\n <div *ngIf=\"!slot.events.length\" class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n <ng-template #elseTemplate>\n <tbody>\n <tr>\n <td colspan=\"2\">\n <div class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n </ng-template>\n </table>\n</div>", styles: [".ax-scheduler-agenda-view{height:100%;overflow-y:auto}.ax-scheduler-agenda-view table{border-top:1px solid var(--border-color)}.ax-scheduler-agenda-view .event-title{color:var(--gray-fore-color)}.ax-scheduler-agenda-view td{padding-top:5px;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;border:none}.ax-scheduler-agenda-view td.day-border{border-bottom:1px solid var(--border-color);padding:5px;vertical-align:middle}.ax-scheduler-agenda-view .day-column{width:80px;text-align:center}.ax-scheduler-agenda-view .day-column .day-num{font-weight:600}.ax-scheduler-agenda-view .day-column .day-name{font-size:smaller}.ax-scheduler-agenda-view ul{list-style:none;padding:0;margin:0}.ax-scheduler-agenda-view ul li{border-left:4px solid var(--primary-color);margin-bottom:var(--sp-sm-size);padding:0 8px}.ax-scheduler-agenda-view ul li:hover{background-color:var(--primary-lighter-color);cursor:pointer}.ax-scheduler-agenda-view ul li .event-time,.ax-scheduler-agenda-view ul li .event-empty{color:var(--gray-fore-color);font-size:smaller}\n"] }]
48
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9hZ2VuZGEvc2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9hZ2VuZGEvc2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQVEzRCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsNEJBQTRCO0lBRWhFO0lBQ0E7SUFGWixZQUNZLEdBQStCLEVBQy9CLEdBQXNCO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBSEEsUUFBRyxHQUFILEdBQUcsQ0FBNEI7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFHbEMsQ0FBQztJQUVELGFBQWEsR0FBWSxJQUFJLENBQUM7SUFFOUIsVUFBVTtJQUNWLENBQUM7SUFHRCxRQUFRLENBQUMsT0FBbUIsSUFBSSxVQUFVLEVBQUU7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBb0I7Z0JBQzFCLEtBQUs7Z0JBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQzthQUN2QyxDQUFBO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxTQUFTO1lBQ2IsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsSUFBSTtRQUNBLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO3VHQXJDUSw4QkFBOEI7MkZBQTlCLDhCQUE4Qix1Q0FGNUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyxpRENUdkcsNG5FQTBDTTs7MkZEL0JPLDhCQUE4QjtrQkFOMUMsU0FBUztvQ0FHUyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxnQ0FBZ0MsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlZHVsZXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhTY2hlZHVsZXJTbG90IH0gZnJvbSAnLi4vLi4vc2NoZWR1bGVyLmNsYXNzJztcbmltcG9ydCB7IEFYRGF0ZVRpbWUsIEFYRGF0ZVRpbWVSYW5nZSB9IGZyb20gJ0BhY29yZXgvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9zY2hlZHVsZXItYWdlbmRhLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NjaGVkdWxlci1hZ2VuZGEtdmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTY2hlZHVsZXJBZ2VuZGFWaWV3Q29tcG9uZW50IH1dXG59KVxuZXhwb3J0IGNsYXNzIEFYU2NoZWR1bGVyQWdlbmRhVmlld0NvbXBvbmVudCBleHRlbmRzIEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsbTogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGhpZGVFbXB0eURheXM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgdXBkYXRlU2l6ZSgpIHtcbiAgICB9XG5cblxuICAgIG5hdmlnYXRlKGRhdGU6IEFYRGF0ZVRpbWUgPSBuZXcgQVhEYXRlVGltZSgpKSB7XG4gICAgICAgIHRoaXMuc2xvdHMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmludGVydmFsOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBkID0gZGF0ZS5hZGREYXkoaSk7XG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2UoZCwgZCk7XG4gICAgICAgICAgICBjb25zdCBzbG90OiBBWFNjaGVkdWxlclNsb3QgPSB7XG4gICAgICAgICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgICAgICAgZXZlbnRzOiB0aGlzLmdldEV2ZW50cyhyYW5nZSwgJ2RheScpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oaWRlRW1wdHlEYXlzICYmIHNsb3QuZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zbG90cy5wdXNoKHNsb3QpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubmF2aWdhdG9yRGF0ZSA9IGRhdGU7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZXh0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGREYXkodGhpcy5pbnRlcnZhbCkpO1xuICAgIH1cbiAgICBwcmV2KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGREYXkoLXRoaXMuaW50ZXJ2YWwpKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlldyBheC1zY2hlZHVsZXItYWdlbmRhLXZpZXdcIj5cbiAgICA8dGFibGUgY2xhc3M9XCJib2R5XCIgY2RrRHJvcExpc3RHcm91cD5cbiAgICAgICAgPHRib2R5ICpuZ0lmPVwic2xvdHMubGVuZ3RoOyBlbHNlIGVsc2VUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBzbG90IG9mIHNsb3RzXCIgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJzbG90XCIgW2F0dHIuZGF0YS11aWRdPVwic2xvdC51aWRcIlxuICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25EcmFnRHJvcE9uRGF5KCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJkYXktY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbnVtXCI+e3tzbG90LnJhbmdlLnN0YXJ0VGltZSB8IGR0OlwiRERcIn19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXktbmFtZVwiPnt7c2xvdC5yYW5nZS5zdGFydFRpbWUgfCBkdDpcImRkZFwifX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImRheS1ib3JkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwic2xvdC5ldmVudHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGUgb2Ygc2xvdC5ldmVudHNcIiBbc3R5bGUuYm9yZGVyLWNvbG9yXT1cImUuY29sb3JcIiBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXVpZF09XCJlLnVpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC10aXRsZVwiPnt7ZS50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXRpbWVcIj57e2UucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6XCJISDptbVwifX0gLSA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJlLnJhbmdlLmR1cmF0aW9uKCdkYXlzJykhPTAgdGhlbiBhIGVsc2UgYlwiPjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZS5yYW5nZS5lbmRUaW1lIHwgZHQ6XCJISDptbVwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlLnJhbmdlLmVuZFRpbWUgfCBkdDpcIllZWVktTU0tREQgSEg6bW1cIn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKmNka0RyYWdQcmV2aWV3IFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImUuY29sb3JcIiBjbGFzcz1cImV2ZW50LWRyYWctcHJldmlld1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2UudGl0bGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFzbG90LmV2ZW50cy5sZW5ndGhcIiBjbGFzcz1cImV2ZW50LWVtcHR5XCI+Tm8gZXZlbnRzPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZVRlbXBsYXRlPlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtZW1wdHlcIj5ObyBldmVudHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3RhYmxlPlxuPC9kaXY+Il19
@@ -1,102 +0,0 @@
1
- import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
2
- import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
3
- import { AXDateTime, AXDateTimeRange } from '@acorex/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/cdk/drag-drop";
7
- import * as i3 from "@acorex/core";
8
- export class AXSchedulerDayTimeViewComponent extends AXSchedulerBaseViewComponent {
9
- elm;
10
- cdr;
11
- constructor(elm, cdr) {
12
- super();
13
- this.elm = elm;
14
- this.cdr = cdr;
15
- }
16
- times = [];
17
- vScroll;
18
- container;
19
- view;
20
- header;
21
- body;
22
- ngOnInit() {
23
- }
24
- ngAfterViewInit() {
25
- this.vScroll = this.elm.nativeElement.querySelector('.v-scroll');
26
- this.header = this.elm.nativeElement.querySelector('.header');
27
- this.body = this.elm.nativeElement.querySelector('.body');
28
- this.view = this.elm.nativeElement.querySelector('.view');
29
- this.container = this.elm.nativeElement.closest('.view-container');
30
- }
31
- updateSize() {
32
- const firstTr = this.body.querySelector('tr');
33
- if (firstTr) {
34
- let index = 0;
35
- this.header.querySelectorAll('th').forEach(c => {
36
- const td = firstTr.children.item(index++);
37
- td.style.width = `${c.offsetWidth}px`;
38
- });
39
- this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;
40
- if (this.container) {
41
- this.view.style.height = `${this.container.clientHeight}px`;
42
- }
43
- }
44
- this.arrangeEvents();
45
- }
46
- navigate(date = new AXDateTime()) {
47
- this.times = [];
48
- this.slots = [];
49
- for (let i = 0; i < this.interval; i++) {
50
- const d = date.addDay(i);
51
- const range = new AXDateTimeRange(d, d);
52
- const slot = {
53
- range,
54
- events: this.getEvents(range, 'day')
55
- };
56
- this.slots.push(slot);
57
- }
58
- for (let i = 0; i < 24; i++) {
59
- this.times.push({
60
- display: ('0' + i).slice(-2) + ':00',
61
- value: i
62
- });
63
- }
64
- this.navigatorDate = date;
65
- this.cdr.detectChanges();
66
- }
67
- next() {
68
- this.navigate(this.navigatorDate.addDay(this.interval));
69
- }
70
- prev() {
71
- this.navigate(this.navigatorDate.addDay(-this.interval));
72
- }
73
- arrangeEvents() {
74
- const events = this.elm.nativeElement.querySelectorAll('.event');
75
- if (events.length) {
76
- const height = events[0].closest('td').offsetHeight;
77
- events.forEach(e => {
78
- const uid = e.attributes.getNamedItem('data-uid').value;
79
- const event = this.events.find(c => c.uid === uid);
80
- const dur = Math.ceil(Math.abs(event.range.duration('hours')));
81
- let total = dur + 1;
82
- if (event.range.startTime.hour + total > 23) {
83
- total = 24 - event.range.startTime.hour;
84
- }
85
- e.style.height = (total * height) + 'px';
86
- });
87
- }
88
- }
89
- findEventIndex(event) {
90
- const a = this.events.filter(c => c.range.startTime.equal(event.range.startTime, 'day')).sort((d1, d2) => {
91
- return d1.range.startTime.compaireNew(d2.range.startTime);
92
- });
93
- return a.indexOf(event);
94
- }
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSchedulerDayTimeViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
96
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXSchedulerDayTimeViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-day-time-view\">\n <table class=\"header\">\n <thead>\n <th class=\"time-column\"></th>\n <th *ngFor=\"let d of slots\" class=\"header-cell\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'ddd'}}<br>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n </th>\n </thead>\n </table>\n <div class=\"v-scroll\">\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event,t.value)\" [attr.data-uid]=\"d.uid\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.hour==t.value\" class=\"event\"\n role=\"button\" aria-readonly=\"false\" aria-selected=\"true\" aria-grabbed=\"false\"\n cdkDrag [cdkDragData]=\"e\" \n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\" [title]=\"e.title\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n <div class=\"event-drag-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>", styles: [".ax-scheduler-day-time-view .event-wrapper{position:absolute;top:0;left:0;display:inline-flex;flex:auto;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;width:100%}.ax-scheduler-day-time-view .event-wrapper .event{display:block;position:relative;flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "pipe", type: i3.AXDateTimePipe, name: "dt" }], encapsulation: i0.ViewEncapsulation.None });
97
- }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSchedulerDayTimeViewComponent, decorators: [{
99
- type: Component,
100
- args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], template: "<div class=\"view ax-scheduler-day-time-view\">\n <table class=\"header\">\n <thead>\n <th class=\"time-column\"></th>\n <th *ngFor=\"let d of slots\" class=\"header-cell\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'ddd'}}<br>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n </th>\n </thead>\n </table>\n <div class=\"v-scroll\">\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event,t.value)\" [attr.data-uid]=\"d.uid\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.hour==t.value\" class=\"event\"\n role=\"button\" aria-readonly=\"false\" aria-selected=\"true\" aria-grabbed=\"false\"\n cdkDrag [cdkDragData]=\"e\" \n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\" [title]=\"e.title\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n <div class=\"event-drag-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>", styles: [".ax-scheduler-day-time-view .event-wrapper{position:absolute;top:0;left:0;display:inline-flex;flex:auto;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;width:100%}.ax-scheduler-day-time-view .event-wrapper .event{display:block;position:relative;flex:1}\n"] }]
101
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLWRheXRpbWUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9zY2hlZHVsZXIvdmlld3MvZGF5dGltZS9zY2hlZHVsZXItZGF5dGltZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9kYXl0aW1lL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7O0FBUTNELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSw0QkFBNEI7SUFDekQ7SUFBeUM7SUFBN0QsWUFBb0IsR0FBK0IsRUFBVSxHQUFzQjtRQUFJLEtBQUssRUFBRSxDQUFDO1FBQTNFLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFBYSxDQUFDO0lBQ2pHLEtBQUssR0FBVSxFQUFFLENBQUM7SUFDVixPQUFPLENBQWM7SUFDckIsU0FBUyxDQUFjO0lBQ3ZCLElBQUksQ0FBYztJQUNsQixNQUFNLENBQWM7SUFDcEIsSUFBSSxDQUFjO0lBRTFCLFFBQVE7SUFDUixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFjLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFjLFNBQVMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFjLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFjLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFnQixDQUFDO0lBQ3RGLENBQUM7SUFFRCxVQUFVO1FBQ04sTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMzQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztnQkFDekQsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsZUFBZSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxDQUFDO1lBQ3pFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksSUFBSSxDQUFDO1lBQ2hFLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBbUIsSUFBSSxVQUFVLEVBQUU7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBb0I7Z0JBQzFCLEtBQUs7Z0JBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQzthQUN2QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDWixPQUFPLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSztnQkFDcEMsS0FBSyxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGFBQWE7UUFDVCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBYyxRQUFRLENBQUMsQ0FBQztRQUM5RSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNmLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDeEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNuRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLEtBQUssR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUM7b0JBQzFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUM1QyxDQUFDO2dCQUNELENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXVCO1FBQ2xDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FDeEQsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7dUdBMUZRLCtCQUErQjsyRkFBL0IsK0JBQStCLHVDQUY3QixDQUFDLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRSxDQUFDLGlEQ1R4Ryx5ekVBNENNOzsyRkRqQ08sK0JBQStCO2tCQU4zQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLGlDQUFpQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVkdWxlci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFNjaGVkdWxlclNsb3QsIEFYU2NoZWR1bGVyRXZlbnQgfSBmcm9tICcuLi8uLi9zY2hlZHVsZXIuY2xhc3MnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2NoZWR1bGVyRGF5VGltZVZpZXdDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhTY2hlZHVsZXJEYXlUaW1lVmlld0NvbXBvbmVudCBleHRlbmRzIEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxtOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IHN1cGVyKCk7IH1cbiAgICB0aW1lczogYW55W10gPSBbXTtcbiAgICBwcml2YXRlIHZTY3JvbGw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIHZpZXc6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaGVhZGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGJvZHk6IEhUTUxFbGVtZW50O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZTY3JvbGwgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcudi1zY3JvbGwnKTtcbiAgICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuaGVhZGVyJyk7XG4gICAgICAgIHRoaXMuYm9keSA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5ib2R5Jyk7XG4gICAgICAgIHRoaXMudmlldyA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy52aWV3Jyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcudmlldy1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICB1cGRhdGVTaXplKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaXJzdFRyID0gdGhpcy5ib2R5LnF1ZXJ5U2VsZWN0b3IoJ3RyJyk7XG4gICAgICAgIGlmIChmaXJzdFRyKSB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICAgICAgdGhpcy5oZWFkZXIucXVlcnlTZWxlY3RvckFsbCgndGgnKS5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRkID0gZmlyc3RUci5jaGlsZHJlbi5pdGVtKGluZGV4KyspIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIHRkLnN0eWxlLndpZHRoID0gYCR7Yy5vZmZzZXRXaWR0aH1weGA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudlNjcm9sbC5zdHlsZS5oZWlnaHQgPSBgY2FsYygxMDAlIC0gJHt0aGlzLmhlYWRlci5jbGllbnRIZWlnaHR9cHgpYDtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMudmlldy5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLmNvbnRhaW5lci5jbGllbnRIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJyYW5nZUV2ZW50cygpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlKGRhdGU6IEFYRGF0ZVRpbWUgPSBuZXcgQVhEYXRlVGltZSgpKSB7XG4gICAgICAgIHRoaXMudGltZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zbG90cyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaW50ZXJ2YWw7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZCA9IGRhdGUuYWRkRGF5KGkpO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgQVhEYXRlVGltZVJhbmdlKGQsIGQpO1xuICAgICAgICAgICAgY29uc3Qgc2xvdDogQVhTY2hlZHVsZXJTbG90ID0ge1xuICAgICAgICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgICAgICAgIGV2ZW50czogdGhpcy5nZXRFdmVudHMocmFuZ2UsICdkYXknKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuc2xvdHMucHVzaChzbG90KTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI0OyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMudGltZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogKCcwJyArIGkpLnNsaWNlKC0yKSArICc6MDAnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5hdmlnYXRvckRhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkRGF5KHRoaXMuaW50ZXJ2YWwpKTtcbiAgICB9XG4gICAgcHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkRGF5KC10aGlzLmludGVydmFsKSk7XG4gICAgfVxuXG4gICAgYXJyYW5nZUV2ZW50cygpIHtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignLmV2ZW50Jyk7XG4gICAgICAgIGlmIChldmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBldmVudHNbMF0uY2xvc2VzdCgndGQnKS5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICBldmVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB1aWQgPSBlLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCdkYXRhLXVpZCcpLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gdGhpcy5ldmVudHMuZmluZChjID0+IGMudWlkID09PSB1aWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGR1ciA9IE1hdGguY2VpbChNYXRoLmFicyhldmVudC5yYW5nZS5kdXJhdGlvbignaG91cnMnKSkpO1xuICAgICAgICAgICAgICAgIGxldCB0b3RhbCA9IGR1ciArIDE7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnJhbmdlLnN0YXJ0VGltZS5ob3VyICsgdG90YWwgPiAyMykge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbCA9IDI0IC0gZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLmhvdXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGUuc3R5bGUuaGVpZ2h0ID0gKHRvdGFsICogaGVpZ2h0KSArICdweCc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpbmRFdmVudEluZGV4KGV2ZW50OiBBWFNjaGVkdWxlckV2ZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYSA9IHRoaXMuZXZlbnRzLmZpbHRlcihjID0+XG4gICAgICAgICAgICBjLnJhbmdlLnN0YXJ0VGltZS5lcXVhbChldmVudC5yYW5nZS5zdGFydFRpbWUsICdkYXknKVxuICAgICAgICApLnNvcnQoKGQxLCBkMikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGQxLnJhbmdlLnN0YXJ0VGltZS5jb21wYWlyZU5ldyhkMi5yYW5nZS5zdGFydFRpbWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYS5pbmRleE9mKGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlldyBheC1zY2hlZHVsZXItZGF5LXRpbWUtdmlld1wiPlxuICAgIDx0YWJsZSBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ0aW1lLWNvbHVtblwiPjwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGQgb2Ygc2xvdHNcIiBjbGFzcz1cImhlYWRlci1jZWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBbY2xhc3Muc2FtZS13ZWVrLWRheV09XCJkLnJhbmdlLnN0YXJ0VGltZS5lcXVhbCh0b2RheSlcIj5cbiAgICAgICAgICAgICAgICAgICAge3tkLnJhbmdlLnN0YXJ0VGltZSB8IGR0OiAnZGRkJ319PGJyPlxuICAgICAgICAgICAgICAgICAgICB7e2QucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdERCd9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgPC90aGVhZD5cbiAgICA8L3RhYmxlPlxuICAgIDxkaXYgY2xhc3M9XCJ2LXNjcm9sbFwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJib2R5XCIgY2RrRHJvcExpc3RHcm91cD5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHQgb2YgdGltZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAge3t0LmRpc3BsYXl9fVxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGQgb2Ygc2xvdHNcIiBjbGFzcz1cInNsb3QtY2VsbFwiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwiZFwiXG4gICAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25EcmFnRHJvcE9uRGF5KCRldmVudCx0LnZhbHVlKVwiIFthdHRyLmRhdGEtdWlkXT1cImQudWlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGUgb2YgZC5ldmVudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImUucmFuZ2Uuc3RhcnRUaW1lLmhvdXI9PXQudmFsdWVcIiBjbGFzcz1cImV2ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIiBhcmlhLXJlYWRvbmx5PVwiZmFsc2VcIiBhcmlhLXNlbGVjdGVkPVwidHJ1ZVwiIGFyaWEtZ3JhYmJlZD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdWlkXT1cImUudWlkXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZS5jb2xvclwiIFt0aXRsZV09XCJlLnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtdGl0bGVcIj57e2UudGl0bGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2UucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdISDptbSd9fTwvc3Bhbj4gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZS5yYW5nZS5lbmRUaW1lIHwgZHQ6ICdISDptbSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqY2RrRHJhZ1ByZXZpZXcgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZS5jb2xvclwiIGNsYXNzPVwiZXZlbnQtZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlLnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWRyYWctcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -1,214 +0,0 @@
1
- import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation, HostListener, NgZone } from '@angular/core';
2
- import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
3
- import { AXSchedulerEventChangeArgs } from '../../scheduler.class';
4
- import { AXDateTime, AXDateTimeRange } from '@acorex/core';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/cdk/drag-drop";
8
- import * as i3 from "@acorex/core";
9
- export class AXSchedulerMonthViewComponent extends AXSchedulerBaseViewComponent {
10
- elm;
11
- zone;
12
- cdr;
13
- constructor(elm, zone, cdr) {
14
- super();
15
- this.elm = elm;
16
- this.zone = zone;
17
- this.cdr = cdr;
18
- }
19
- onKeydownHandler(e) {
20
- if (e.deltaY > 0) {
21
- this.navigate(this.navigatorDate.addMonth(1));
22
- }
23
- else if (e.deltaY < 0) {
24
- this.navigate(this.navigatorDate.addMonth(-1));
25
- }
26
- }
27
- weekDays = [
28
- {
29
- index: 0, title: 'Sunday'
30
- },
31
- {
32
- index: 1, title: 'Moday'
33
- },
34
- {
35
- index: 2, title: 'Tuesday'
36
- },
37
- {
38
- index: 3, title: 'Wednesday'
39
- },
40
- {
41
- index: 4, title: 'Thursday'
42
- },
43
- {
44
- index: 5, title: 'Friday'
45
- },
46
- {
47
- index: 6, title: 'Saturday'
48
- }
49
- ];
50
- startDayOfWeek = 'Moday';
51
- container;
52
- view;
53
- header;
54
- body;
55
- ngAfterViewInit() {
56
- this.header = this.elm.nativeElement.querySelector('.header');
57
- this.body = this.elm.nativeElement.querySelector('.body');
58
- this.view = this.elm.nativeElement.querySelector('.view');
59
- this.container = this.elm.nativeElement.closest('.view-container');
60
- }
61
- updateSize() {
62
- const firstTr = this.body.querySelector('tr');
63
- if (firstTr) {
64
- let index = 0;
65
- this.header.querySelectorAll('th').forEach(c => {
66
- const td = firstTr.children.item(index++);
67
- td.style.width = `${c.offsetWidth}px`;
68
- });
69
- this.body.style.height = `calc(100% - ${this.header.clientHeight}px)`;
70
- if (this.container) {
71
- this.view.style.height = `${this.container.clientHeight}px`;
72
- }
73
- }
74
- this.arrangeEvents();
75
- }
76
- matrixify(arr, rows, cols) {
77
- const matrix = [];
78
- if (rows * cols === arr.length) {
79
- for (let i = 0; i < arr.length; i += cols) {
80
- matrix.push(arr.slice(i, cols + i));
81
- }
82
- }
83
- return matrix;
84
- }
85
- matrixSlots;
86
- navigate(date = new AXDateTime()) {
87
- const start = date.month.range.startTime.firstDayOfWeek;
88
- const end = date.month.range.startTime.endDayOfWeek;
89
- const dur = end.duration(start);
90
- this.slots = [];
91
- for (let i = 0; i < dur; i++) {
92
- const d = start.addDay(i);
93
- const range = new AXDateTimeRange(d, d);
94
- this.slots.push({
95
- range,
96
- events: this.getEvents(range, 'day'),
97
- uid: range.startTime.date.getTime().toString()
98
- });
99
- }
100
- const dayInWeek = 7;
101
- const rows = Math.floor(dur / dayInWeek);
102
- this.matrixSlots = this.matrixify(this.slots, rows, dayInWeek);
103
- this.navigatorDate = date;
104
- this.cdr.detectChanges();
105
- }
106
- next() {
107
- this.navigate(this.navigatorDate.addMonth(this.interval));
108
- }
109
- prev() {
110
- this.navigate(this.navigatorDate.addMonth(-this.interval));
111
- }
112
- arrangeEvents() {
113
- this.slots.forEach(slot => {
114
- const slotTd = this.elm.nativeElement.querySelector(`[data-uid='` + slot.uid + `']`);
115
- const viewMoreDiv = slotTd.querySelector('.view-more');
116
- let viewMore = 0;
117
- viewMoreDiv.style.display = 'none';
118
- const width = slotTd.offsetWidth;
119
- slot.events.forEach(event => {
120
- const e = slotTd.querySelector(`[data-uid='` + event.uid + `']`);
121
- if (e) {
122
- const dur = Math.ceil(Math.abs(event.range.duration()));
123
- e.style.visibility = 'unset';
124
- e.style.width = (dur * width) + 'px';
125
- e.style.top = ((this.findEventIndex(event)) * 25) + 'px';
126
- if (e.getBoundingClientRect().bottom >= slotTd.getBoundingClientRect().bottom) {
127
- viewMore++;
128
- e.style.visibility = 'hidden';
129
- viewMoreDiv.style.display = 'unset';
130
- viewMoreDiv.innerHTML = `+${viewMore} more`;
131
- }
132
- }
133
- });
134
- });
135
- }
136
- findEventIndex(event) {
137
- const a = this.events.filter(c => c.range.startTime.equal(event.range.startTime, 'days')).sort((d1, d2) => {
138
- const v = d1.range.startTime.compaireNew(d2.range.startTime, 'YMDhm');
139
- return v;
140
- });
141
- return a.indexOf(event);
142
- }
143
- dragEnterSlot;
144
- dragPreview;
145
- dragHour = null;
146
- onDragStarted(event) {
147
- this.zone.runOutsideAngular(() => {
148
- this.dragEnterSlot = event.source.dropContainer.element.nativeElement;
149
- this.elm.nativeElement.addEventListener('mousemove', this.drageMouseMove.bind(this));
150
- });
151
- }
152
- onDragEntered(event) {
153
- this.dragPreview = document.querySelector('.cdk-drag-preview');
154
- this.dragEnterSlot = event.container.element.nativeElement;
155
- }
156
- onDragEnded(event) {
157
- this.dragEnterSlot = null;
158
- this.dragPreview = null;
159
- this.zone.runOutsideAngular(() => {
160
- this.elm.nativeElement.removeEventListener('mousemove', this.drageMouseMove.bind(this));
161
- });
162
- }
163
- drageMouseMove(e) {
164
- this.zone.runOutsideAngular(() => {
165
- if (!this.dragPreview) {
166
- this.dragPreview = document.querySelector('.cdk-drag-preview');
167
- }
168
- if (this.dragEnterSlot && this.dragPreview) {
169
- const diff = this.dragPreview.getBoundingClientRect().top - this.dragEnterSlot.getBoundingClientRect().top;
170
- const hour = Math.round((diff / this.dragEnterSlot.getBoundingClientRect().height) * 24);
171
- this.dragPreview.querySelector('.ax-sch-str').innerHTML = `${hour > 0 ? hour : 0}:00`;
172
- this.dragHour = hour;
173
- }
174
- });
175
- }
176
- onDragDropOnDay(e) {
177
- const el = e.item.element.nativeElement;
178
- if (e.previousContainer !== e.container) {
179
- el.style.opacity = '0';
180
- const r = new AXSchedulerEventChangeArgs();
181
- r.event = e.item.data;
182
- r.oldSlot = e.previousContainer.data;
183
- r.newSlot = e.container.data;
184
- //
185
- r.onComplete.subscribe((er) => {
186
- el.style.opacity = '1';
187
- if (!er.canceled) {
188
- const slotTime = er.newSlot.range.startTime.startOf();
189
- const z = er.event.range.startTime.clone();
190
- const durDay = slotTime.duration(z.startOf(), 'days');
191
- er.event.range.startTime = er.event.range.startTime.add('day', durDay);
192
- if (this.dragHour != null) {
193
- er.event.range.startTime = er.event.range.startTime.set('hour', this.dragHour);
194
- er.event.range.startTime = er.event.range.startTime.set('minute', 0);
195
- }
196
- er.event.range.endTime = er.event.range.endTime.add('day', durDay);
197
- er.oldSlot.events = er.oldSlot.events.filter(c => c.uid !== er.event.uid);
198
- er.newSlot.events.push(er.event);
199
- }
200
- });
201
- this.onEventChanged.emit(r);
202
- }
203
- }
204
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSchedulerMonthViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
205
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.7", type: AXSchedulerMonthViewComponent, selector: "ng-component", host: { listeners: { "wheel": "onKeydownHandler($event)" } }, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerMonthViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-sheduler-month-view\">\n <table class=\"header\">\n <thead>\n <th *ngFor=\"let d of weekDays\" class=\"header-cell\">\n <span [class.same-week-day]=\"d.index==today.dayInWeek\"> {{d.title}}</span>\n </th>\n </thead>\n </table>\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let r of matrixSlots\">\n <td *ngFor=\"let d of r\" class=\"cell-slot\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\" \n [attr.data-uid]=\"d.uid\">\n <div class=\"day-num\" [class.first-day-month]=\"d.range.startTime.dayInMonth==1\"\n [class.today]=\"d.range.startTime.equal(today)\">\n <ng-container *ngIf=\"d.range.startTime.dayInMonth==1\">\n {{d.range.startTime | dt: 'MMM'}}\n </ng-container>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div class=\"event ax-scheduler-event\" cdkDrag [cdkDragData]=\"e\" [attr.data-uid]=\"e.uid\"\n [style.background-color]=\"e.color\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragEntered)=\"onDragEntered($event)\">\n <span class=\"ax-sch-str\">{{e.range.startTime | dt: 'HH:mm'}}</span><span\n class=\"event-title\">{{e.title}}</span><span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n </ng-container>\n </div>\n <div class=\"view-more\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".ax-sheduler-month-view .day-num{position:absolute;left:5px;top:5px;font-size:smaller;padding:1px 5px;display:flex;border-radius:10%;align-items:center;justify-content:center}.ax-sheduler-month-view .day-num.first-day-month{color:var(--primary-color);font-weight:700}.ax-sheduler-month-view .day-num:hover{text-decoration:underline;cursor:pointer}.ax-sheduler-month-view .day-num.today{background-color:var(--primary-light-color);color:var(--danger-fore-color)}.ax-sheduler-month-view .view-more{position:absolute;bottom:0;font-size:x-small;right:0;padding:0 5px;width:100%;cursor:pointer;text-align:center;background-color:var(--gray-dark-color)}.ax-sheduler-month-view .view-more:hover{box-shadow:0 6px 10px #00000024,0 1px 18px #0000001f,0 3px 5px -1px #0003}.ax-sheduler-month-view .event-wrapper{position:absolute;top:30px;left:0}.ax-sheduler-month-view .event-wrapper .event{position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: i3.AXDateTimePipe, name: "dt" }], encapsulation: i0.ViewEncapsulation.None });
206
- }
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXSchedulerMonthViewComponent, decorators: [{
208
- type: Component,
209
- args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerMonthViewComponent }], template: "<div class=\"view ax-sheduler-month-view\">\n <table class=\"header\">\n <thead>\n <th *ngFor=\"let d of weekDays\" class=\"header-cell\">\n <span [class.same-week-day]=\"d.index==today.dayInWeek\"> {{d.title}}</span>\n </th>\n </thead>\n </table>\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let r of matrixSlots\">\n <td *ngFor=\"let d of r\" class=\"cell-slot\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\" \n [attr.data-uid]=\"d.uid\">\n <div class=\"day-num\" [class.first-day-month]=\"d.range.startTime.dayInMonth==1\"\n [class.today]=\"d.range.startTime.equal(today)\">\n <ng-container *ngIf=\"d.range.startTime.dayInMonth==1\">\n {{d.range.startTime | dt: 'MMM'}}\n </ng-container>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div class=\"event ax-scheduler-event\" cdkDrag [cdkDragData]=\"e\" [attr.data-uid]=\"e.uid\"\n [style.background-color]=\"e.color\"\n (cdkDragStarted)=\"onDragStarted($event)\"\n (cdkDragEnded)=\"onDragEnded($event)\"\n (cdkDragEntered)=\"onDragEntered($event)\">\n <span class=\"ax-sch-str\">{{e.range.startTime | dt: 'HH:mm'}}</span><span\n class=\"event-title\">{{e.title}}</span><span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n </ng-container>\n </div>\n <div class=\"view-more\"></div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>", styles: [".ax-sheduler-month-view .day-num{position:absolute;left:5px;top:5px;font-size:smaller;padding:1px 5px;display:flex;border-radius:10%;align-items:center;justify-content:center}.ax-sheduler-month-view .day-num.first-day-month{color:var(--primary-color);font-weight:700}.ax-sheduler-month-view .day-num:hover{text-decoration:underline;cursor:pointer}.ax-sheduler-month-view .day-num.today{background-color:var(--primary-light-color);color:var(--danger-fore-color)}.ax-sheduler-month-view .view-more{position:absolute;bottom:0;font-size:x-small;right:0;padding:0 5px;width:100%;cursor:pointer;text-align:center;background-color:var(--gray-dark-color)}.ax-sheduler-month-view .view-more:hover{box-shadow:0 6px 10px #00000024,0 1px 18px #0000001f,0 3px 5px -1px #0003}.ax-sheduler-month-view .event-wrapper{position:absolute;top:30px;left:0}.ax-sheduler-month-view .event-wrapper .event{position:absolute}\n"] }]
210
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { onKeydownHandler: [{
211
- type: HostListener,
212
- args: ['wheel', ['$event']]
213
- }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLW1vbnRoLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2FsZW5kYXIvc2NoZWR1bGVyL3ZpZXdzL21vbnRoL3NjaGVkdWxlci1tb250aC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9tb250aC9zY2hlZHVsZXItbW9udGgtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNFLE9BQU8sRUFBb0IsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFRM0QsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDRCQUE0QjtJQUkvRDtJQUNBO0lBQ0E7SUFIWixZQUNZLEdBQStCLEVBQy9CLElBQVksRUFDWixHQUFzQjtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQUhBLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUVsQyxDQUFDO0lBR0QsZ0JBQWdCLENBQUMsQ0FBTTtRQUNuQixJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFB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NEIsRUFBRSxXQUFXLCtCQUErQixFQUFFLENBQUM7b0lBYWxHLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVkdWxlci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFNjaGVkdWxlckV2ZW50LCBBWFNjaGVkdWxlckV2ZW50Q2hhbmdlQXJncyB9IGZyb20gJy4uLy4uL3NjaGVkdWxlci5jbGFzcyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lLCBBWERhdGVUaW1lUmFuZ2UgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGVyLW1vbnRoLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NjaGVkdWxlci1tb250aC12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNjaGVkdWxlck1vbnRoVmlld0NvbXBvbmVudCB9XVxufSlcbmV4cG9ydCBjbGFzcyBBWFNjaGVkdWxlck1vbnRoVmlld0NvbXBvbmVudCBleHRlbmRzIEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQge1xuXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbG06IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkhhbmRsZXIoZTogYW55KSB7XG4gICAgICAgIGlmIChlLmRlbHRhWSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGUodGhpcy5uYXZpZ2F0b3JEYXRlLmFkZE1vbnRoKDEpKVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGUuZGVsdGFZIDwgMCkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkTW9udGgoLTEpKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgd2Vla0RheXM6IGFueVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBpbmRleDogMCwgdGl0bGU6ICdTdW5kYXknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGluZGV4OiAxLCB0aXRsZTogJ01vZGF5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpbmRleDogMiwgdGl0bGU6ICdUdWVzZGF5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpbmRleDogMywgdGl0bGU6ICdXZWRuZXNkYXknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGluZGV4OiA0LCB0aXRsZTogJ1RodXJzZGF5J1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpbmRleDogNSwgdGl0bGU6ICdGcmlkYXknXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGluZGV4OiA2LCB0aXRsZTogJ1NhdHVyZGF5J1xuICAgICAgICB9XTtcbiAgICBzdGFydERheU9mV2VlayA9ICdNb2RheSc7XG5cblxuXG4gICAgcHJpdmF0ZSBjb250YWluZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgdmlldzogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBoZWFkZXI6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgYm9keTogSFRNTEVsZW1lbnQ7XG5cblxuXG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGVhZGVyID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmhlYWRlcicpO1xuICAgICAgICB0aGlzLmJvZHkgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuYm9keScpO1xuICAgICAgICB0aGlzLnZpZXcgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcudmlldycpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnLnZpZXctY29udGFpbmVyJykgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICB9XG5cblxuICAgIHVwZGF0ZVNpemUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpcnN0VHIgPSB0aGlzLmJvZHkucXVlcnlTZWxlY3RvcigndHInKTtcbiAgICAgICAgaWYgKGZpcnN0VHIpIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICAgICAgICB0aGlzLmhlYWRlci5xdWVyeVNlbGVjdG9yQWxsKCd0aCcpLmZvckVhY2goYyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGQgPSBmaXJzdFRyLmNoaWxkcmVuLml0ZW0oaW5kZXgrKykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGQuc3R5bGUud2lkdGggPSBgJHtjLm9mZnNldFdpZHRofXB4YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5ib2R5LnN0eWxlLmhlaWdodCA9IGBjYWxjKDEwMCUgLSAke3RoaXMuaGVhZGVyLmNsaWVudEhlaWdodH1weClgO1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuY29udGFpbmVyLmNsaWVudEhlaWdodH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcnJhbmdlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgbWF0cml4aWZ5KGFyciwgcm93cywgY29scykge1xuICAgICAgICBjb25zdCBtYXRyaXggPSBbXTtcbiAgICAgICAgaWYgKHJvd3MgKiBjb2xzID09PSBhcnIubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkgKz0gY29scykge1xuICAgICAgICAgICAgICAgIG1hdHJpeC5wdXNoKGFyci5zbGljZShpLCBjb2xzICsgaSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXRyaXg7XG4gICAgfVxuXG4gICAgbWF0cml4U2xvdHM6IGFueTtcblxuICAgIG5hdmlnYXRlKGRhdGU6IEFYRGF0ZVRpbWUgPSBuZXcgQVhEYXRlVGltZSgpKSB7XG5cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBkYXRlLm1vbnRoLnJhbmdlLnN0YXJ0VGltZS5maXJzdERheU9mV2VlaztcbiAgICAgICAgY29uc3QgZW5kID0gZGF0ZS5tb250aC5yYW5nZS5zdGFydFRpbWUuZW5kRGF5T2ZXZWVrO1xuICAgICAgICBjb25zdCBkdXIgPSBlbmQuZHVyYXRpb24oc3RhcnQpO1xuICAgICAgICB0aGlzLnNsb3RzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZHVyOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGQgPSBzdGFydC5hZGREYXkoaSk7XG4gICAgICAgICAgICBjb25zdCByYW5nZTogQVhEYXRlVGltZVJhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShkLCBkKTtcbiAgICAgICAgICAgIHRoaXMuc2xvdHMucHVzaCh7XG4gICAgICAgICAgICAgICAgcmFuZ2UsXG4gICAgICAgICAgICAgICAgZXZlbnRzOiB0aGlzLmdldEV2ZW50cyhyYW5nZSwgJ2RheScpLFxuICAgICAgICAgICAgICAgIHVpZDogcmFuZ2Uuc3RhcnRUaW1lLmRhdGUuZ2V0VGltZSgpLnRvU3RyaW5nKClcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRheUluV2VlayA9IDc7XG4gICAgICAgIGNvbnN0IHJvd3MgPSBNYXRoLmZsb29yKGR1ciAvIGRheUluV2Vlayk7XG4gICAgICAgIHRoaXMubWF0cml4U2xvdHMgPSB0aGlzLm1hdHJpeGlmeSh0aGlzLnNsb3RzLCByb3dzLCBkYXlJbldlZWspO1xuICAgICAgICB0aGlzLm5hdmlnYXRvckRhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG5cbiAgICBuZXh0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGRNb250aCh0aGlzLmludGVydmFsKSk7XG4gICAgfVxuICAgIHByZXYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2aWdhdGUodGhpcy5uYXZpZ2F0b3JEYXRlLmFkZE1vbnRoKC10aGlzLmludGVydmFsKSk7XG4gICAgfVxuXG4gICAgYXJyYW5nZUV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5zbG90cy5mb3JFYWNoKHNsb3QgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2xvdFRkID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihgW2RhdGEtdWlkPSdgICsgc2xvdC51aWQgKyBgJ11gKTtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdNb3JlRGl2ID0gc2xvdFRkLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcudmlldy1tb3JlJyk7XG4gICAgICAgICAgICBsZXQgdmlld01vcmUgPSAwO1xuICAgICAgICAgICAgdmlld01vcmVEaXYuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gc2xvdFRkLm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgc2xvdC5ldmVudHMuZm9yRWFjaChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHNsb3RUZC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihgW2RhdGEtdWlkPSdgICsgZXZlbnQudWlkICsgYCddYCk7XG4gICAgICAgICAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZHVyID0gTWF0aC5jZWlsKE1hdGguYWJzKGV2ZW50LnJhbmdlLmR1cmF0aW9uKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgZS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Vuc2V0JztcbiAgICAgICAgICAgICAgICAgICAgZS5zdHlsZS53aWR0aCA9IChkdXIgKiB3aWR0aCkgKyAncHgnO1xuICAgICAgICAgICAgICAgICAgICBlLnN0eWxlLnRvcCA9ICgodGhpcy5maW5kRXZlbnRJbmRleChldmVudCkpICogMjUpICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tID49IHNsb3RUZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb3JlKys7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdNb3JlRGl2LnN0eWxlLmRpc3BsYXkgPSAndW5zZXQnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlld01vcmVEaXYuaW5uZXJIVE1MID0gYCske3ZpZXdNb3JlfSBtb3JlYDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBmaW5kRXZlbnRJbmRleChldmVudDogQVhTY2hlZHVsZXJFdmVudCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGEgPSB0aGlzLmV2ZW50cy5maWx0ZXIoYyA9PlxuICAgICAgICAgICAgYy5yYW5nZS5zdGFydFRpbWUuZXF1YWwoZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLCAnZGF5cycpXG4gICAgICAgICkuc29ydCgoZDEsIGQyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2ID0gZDEucmFuZ2Uuc3RhcnRUaW1lLmNvbXBhaXJlTmV3KGQyLnJhbmdlLnN0YXJ0VGltZSwgJ1lNRGhtJyk7XG4gICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhLmluZGV4T2YoZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZHJhZ0VudGVyU2xvdDogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBkcmFnUHJldmlldzogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBkcmFnSG91cjogbnVtYmVyID0gbnVsbDtcbiAgICBvbkRyYWdTdGFydGVkKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyYWdFbnRlclNsb3QgPSBldmVudC5zb3VyY2UuZHJvcENvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZ2VNb3VzZU1vdmUuYmluZCh0aGlzKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvbkRyYWdFbnRlcmVkKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJhZ1ByZXZpZXcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLmNkay1kcmFnLXByZXZpZXcnKTtcbiAgICAgICAgdGhpcy5kcmFnRW50ZXJTbG90ID0gZXZlbnQuY29udGFpbmVyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG4gICAgb25EcmFnRW5kZWQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5kcmFnRW50ZXJTbG90ID0gbnVsbDtcbiAgICAgICAgdGhpcy5kcmFnUHJldmlldyA9IG51bGw7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuZHJhZ2VNb3VzZU1vdmUuYmluZCh0aGlzKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZHJhZ2VNb3VzZU1vdmUoZTogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmRyYWdQcmV2aWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnUHJldmlldyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuY2RrLWRyYWctcHJldmlldycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ0VudGVyU2xvdCAmJiB0aGlzLmRyYWdQcmV2aWV3KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMuZHJhZ1ByZXZpZXcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gdGhpcy5kcmFnRW50ZXJTbG90LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICAgICAgICAgICAgICBjb25zdCBob3VyID0gTWF0aC5yb3VuZCgoZGlmZiAvIHRoaXMuZHJhZ0VudGVyU2xvdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpICogMjQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1ByZXZpZXcucXVlcnlTZWxlY3RvcignLmF4LXNjaC1zdHInKS5pbm5lckhUTUwgPSBgJHtob3VyID4gMCA/IGhvdXIgOiAwfTowMGA7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnSG91ciA9IGhvdXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRHJhZ0Ryb3BPbkRheShlKSB7XG4gICAgICAgIGNvbnN0IGVsID0gZS5pdGVtLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKGUucHJldmlvdXNDb250YWluZXIgIT09IGUuY29udGFpbmVyKSB7XG4gICAgICAgICAgICBlbC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xuICAgICAgICAgICAgY29uc3QgcjogQVhTY2hlZHVsZXJFdmVudENoYW5nZUFyZ3MgPSBuZXcgQVhTY2hlZHVsZXJFdmVudENoYW5nZUFyZ3MoKTtcbiAgICAgICAgICAgIHIuZXZlbnQgPSBlLml0ZW0uZGF0YTtcbiAgICAgICAgICAgIHIub2xkU2xvdCA9IGUucHJldmlvdXNDb250YWluZXIuZGF0YTtcbiAgICAgICAgICAgIHIubmV3U2xvdCA9IGUuY29udGFpbmVyLmRhdGE7XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgci5vbkNvbXBsZXRlLnN1YnNjcmliZSgoZXI6IEFYU2NoZWR1bGVyRXZlbnRDaGFuZ2VBcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgZWwuc3R5bGUub3BhY2l0eSA9ICcxJztcbiAgICAgICAgICAgICAgICBpZiAoIWVyLmNhbmNlbGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNsb3RUaW1lID0gZXIubmV3U2xvdC5yYW5nZS5zdGFydFRpbWUuc3RhcnRPZigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB6ID0gZXIuZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLmNsb25lKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGR1ckRheSA9IHNsb3RUaW1lLmR1cmF0aW9uKHouc3RhcnRPZigpLCAnZGF5cycpO1xuICAgICAgICAgICAgICAgICAgICBlci5ldmVudC5yYW5nZS5zdGFydFRpbWUgPSBlci5ldmVudC5yYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCBkdXJEYXkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kcmFnSG91ciAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlci5ldmVudC5yYW5nZS5zdGFydFRpbWUgPSBlci5ldmVudC5yYW5nZS5zdGFydFRpbWUuc2V0KCdob3VyJywgdGhpcy5kcmFnSG91cik7XG4gICAgICAgICAgICAgICAgICAgICAgICBlci5ldmVudC5yYW5nZS5zdGFydFRpbWUgPSBlci5ldmVudC5yYW5nZS5zdGFydFRpbWUuc2V0KCdtaW51dGUnLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlci5ldmVudC5yYW5nZS5lbmRUaW1lID0gZXIuZXZlbnQucmFuZ2UuZW5kVGltZS5hZGQoJ2RheScsIGR1ckRheSk7XG4gICAgICAgICAgICAgICAgICAgIGVyLm9sZFNsb3QuZXZlbnRzID0gZXIub2xkU2xvdC5ldmVudHMuZmlsdGVyKGMgPT4gYy51aWQgIT09IGVyLmV2ZW50LnVpZCk7XG4gICAgICAgICAgICAgICAgICAgIGVyLm5ld1Nsb3QuZXZlbnRzLnB1c2goZXIuZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5vbkV2ZW50Q2hhbmdlZC5lbWl0KHIpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3IGF4LXNoZWR1bGVyLW1vbnRoLXZpZXdcIj5cbiAgICA8dGFibGUgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBkIG9mIHdlZWtEYXlzXCIgY2xhc3M9XCJoZWFkZXItY2VsbFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzcy5zYW1lLXdlZWstZGF5XT1cImQuaW5kZXg9PXRvZGF5LmRheUluV2Vla1wiPiB7e2QudGl0bGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgPC90YWJsZT5cbiAgICA8dGFibGUgY2xhc3M9XCJib2R5XCIgY2RrRHJvcExpc3RHcm91cD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByIG9mIG1hdHJpeFNsb3RzXCI+XG4gICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBkIG9mIHJcIiBjbGFzcz1cImNlbGwtc2xvdFwiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwiZFwiXG4gICAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25EcmFnRHJvcE9uRGF5KCRldmVudClcIiBcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS11aWRdPVwiZC51aWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheS1udW1cIiBbY2xhc3MuZmlyc3QtZGF5LW1vbnRoXT1cImQucmFuZ2Uuc3RhcnRUaW1lLmRheUluTW9udGg9PTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnRvZGF5XT1cImQucmFuZ2Uuc3RhcnRUaW1lLmVxdWFsKHRvZGF5KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImQucmFuZ2Uuc3RhcnRUaW1lLmRheUluTW9udGg9PTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2QucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdNTU0nfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tkLnJhbmdlLnN0YXJ0VGltZSB8IGR0OiAnREQnfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlIG9mIGQuZXZlbnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50IGF4LXNjaGVkdWxlci1ldmVudFwiIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImVcIiBbYXR0ci5kYXRhLXVpZF09XCJlLnVpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImUuY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwib25EcmFnU3RhcnRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJvbkRyYWdFbmRlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNka0RyYWdFbnRlcmVkKT1cIm9uRHJhZ0VudGVyZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXNjaC1zdHJcIj57e2UucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdISDptbSd9fTwvc3Bhbj48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJldmVudC10aXRsZVwiPnt7ZS50aXRsZX19PC9zcGFuPjxzcGFuPnt7ZS5yYW5nZS5lbmRUaW1lIHwgZHQ6ICdISDptbSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZpZXctbW9yZVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG48L2Rpdj4iXX0=