@eo-sdk/client 10.0.0-beta.2 → 10.0.0-beta.3

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 (168) hide show
  1. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +7 -3
  2. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  3. package/app/eo-framework/app-shell/app-shell.module.d.ts +2 -1
  4. package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
  5. package/app/eo-framework/form-elements/checkbox/checkbox.component.d.ts.map +1 -1
  6. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +3 -1
  7. package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
  8. package/app/eo-framework/form-elements/date/date.component.d.ts +2 -0
  9. package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
  10. package/app/eo-framework/form-elements/date/year-range/year-range.directive.d.ts.map +1 -0
  11. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +3 -1
  12. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
  13. package/app/eo-framework/form-elements/form-elements.module.d.ts +37 -39
  14. package/app/eo-framework/form-elements/form-elements.module.d.ts.map +1 -1
  15. package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts.map +1 -1
  16. package/app/eo-framework/form-elements/index.d.ts +1 -3
  17. package/app/eo-framework/form-elements/index.d.ts.map +1 -1
  18. package/app/eo-framework/form-elements/reference/reference.component.d.ts.map +1 -1
  19. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +3 -2
  20. package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts.map +1 -1
  21. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +1 -5
  22. package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts.map +1 -1
  23. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +4 -7
  24. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  25. package/app/eo-framework/grid/grid.module.d.ts +4 -3
  26. package/app/eo-framework/grid/grid.module.d.ts.map +1 -1
  27. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +2 -7
  28. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  29. package/app/eo-framework/index.d.ts +0 -1
  30. package/app/eo-framework/index.d.ts.map +1 -1
  31. package/app/eo-framework/object-details/object-details.component.d.ts +2 -7
  32. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  33. package/app/eo-framework/object-details/object-history/object-history.component.d.ts.map +1 -1
  34. package/app/eo-framework/object-form/object-form/object-form.component.d.ts +6 -59
  35. package/app/eo-framework/object-form/object-form/object-form.component.d.ts.map +1 -1
  36. package/app/eo-framework/object-form/object-form-helper.service.d.ts +86 -2
  37. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  38. package/app/eo-framework/object-state-details/object-state-details.component.d.ts +3 -11
  39. package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
  40. package/app/eo-framework/plugins/plugin.component.d.ts +0 -2
  41. package/app/eo-framework/plugins/plugin.component.d.ts.map +1 -1
  42. package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
  43. package/app/eo-framework/process/details/process-details.component.d.ts +2 -7
  44. package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
  45. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +2 -7
  46. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts.map +1 -1
  47. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +2 -1
  48. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts.map +1 -1
  49. package/assets/_default/i18n/de.json +2 -0
  50. package/assets/_default/i18n/en.json +4 -2
  51. package/esm2020/app/eo-client/about-state/about-state.component.mjs +5 -5
  52. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  53. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
  54. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +3 -3
  55. package/esm2020/app/eo-client/login/login.component.mjs +1 -1
  56. package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
  57. package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  58. package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
  59. package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +3 -3
  60. package/esm2020/app/eo-client/settings/settings.component.mjs +3 -3
  61. package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +1 -1
  62. package/esm2020/app/eo-client/version-state/version-state.component.mjs +1 -1
  63. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  64. package/esm2020/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +1 -1
  65. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +1 -1
  66. package/esm2020/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +1 -1
  67. package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +2 -2
  68. package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +1 -1
  69. package/esm2020/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +1 -1
  70. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +32 -20
  71. package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +8 -4
  72. package/esm2020/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +1 -4
  73. package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +9 -3
  74. package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +9 -24
  75. package/esm2020/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +44 -0
  76. package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +2 -2
  77. package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +9 -3
  78. package/esm2020/app/eo-framework/form-elements/form-elements.module.mjs +3 -13
  79. package/esm2020/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +7 -7
  80. package/esm2020/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +2 -2
  81. package/esm2020/app/eo-framework/form-elements/index.mjs +2 -4
  82. package/esm2020/app/eo-framework/form-elements/number-range/number-range.component.mjs +1 -1
  83. package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +2 -2
  84. package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +5 -5
  85. package/esm2020/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +7 -2
  86. package/esm2020/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +9 -17
  87. package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +2 -2
  88. package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +9 -27
  89. package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +2 -2
  90. package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +2 -2
  91. package/esm2020/app/eo-framework/grid/grid.component.mjs +2 -2
  92. package/esm2020/app/eo-framework/grid/grid.module.mjs +5 -8
  93. package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +8 -15
  94. package/esm2020/app/eo-framework/index.mjs +1 -2
  95. package/esm2020/app/eo-framework/media/media.component.mjs +2 -2
  96. package/esm2020/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +1 -1
  97. package/esm2020/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +1 -1
  98. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +10 -15
  99. package/esm2020/app/eo-framework/object-details/object-history/object-history.component.mjs +1 -2
  100. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +4 -4
  101. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +1 -1
  102. package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +18 -494
  103. package/esm2020/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +1 -1
  104. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +506 -7
  105. package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +19 -27
  106. package/esm2020/app/eo-framework/plugins/plugin.component.mjs +5 -7
  107. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -4
  108. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +10 -16
  109. package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +7 -16
  110. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +1 -1
  111. package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +6 -3
  112. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
  113. package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +6 -1
  114. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +5 -0
  115. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  116. package/fesm2015/eo-sdk-client.mjs +3736 -4528
  117. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  118. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +5 -0
  119. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  120. package/fesm2020/eo-sdk-client.mjs +3739 -4531
  121. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  122. package/package.json +4 -4
  123. package/projects/eo-sdk/core/lib/util/utils.d.ts +1 -0
  124. package/projects/eo-sdk/core/lib/util/utils.d.ts.map +1 -1
  125. package/scss/_eo-variables.scss +68 -40
  126. package/scss/_form.scss +6 -0
  127. package/scss/_main.scss +1 -1
  128. package/scss/_theme-dark.scss +22 -0
  129. package/scss/_yuuvis-components.scss +12 -2
  130. package/styles.css +51 -24
  131. package/styles.scss +5 -10
  132. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts +0 -67
  133. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts.map +0 -1
  134. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.d.ts +0 -21
  135. package/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.d.ts.map +0 -1
  136. package/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.d.ts +0 -33
  137. package/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.d.ts.map +0 -1
  138. package/app/eo-framework/form-elements/datetime/datetime.component.d.ts +0 -51
  139. package/app/eo-framework/form-elements/datetime/datetime.component.d.ts.map +0 -1
  140. package/app/eo-framework/form-elements/datetime/year-range/year-range.directive.d.ts.map +0 -1
  141. package/app/eo-framework/tab-container/index.d.ts +0 -6
  142. package/app/eo-framework/tab-container/index.d.ts.map +0 -1
  143. package/app/eo-framework/tab-container/tab-container.component.d.ts +0 -62
  144. package/app/eo-framework/tab-container/tab-container.component.d.ts.map +0 -1
  145. package/app/eo-framework/tab-container/tab-container.module.d.ts +0 -18
  146. package/app/eo-framework/tab-container/tab-container.module.d.ts.map +0 -1
  147. package/app/eo-framework/tab-container/tab-panel/tab-panel.component.d.ts +0 -13
  148. package/app/eo-framework/tab-container/tab-panel/tab-panel.component.d.ts.map +0 -1
  149. package/app/eo-framework/tab-container/tab-view/tab-view.component.d.ts +0 -19
  150. package/app/eo-framework/tab-container/tab-view/tab-view.component.d.ts.map +0 -1
  151. package/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.d.ts +0 -11
  152. package/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.d.ts.map +0 -1
  153. package/esm2020/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.mjs +0 -239
  154. package/esm2020/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.mjs +0 -2
  155. package/esm2020/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.mjs +0 -109
  156. package/esm2020/app/eo-framework/form-elements/datetime/datetime.component.mjs +0 -142
  157. package/esm2020/app/eo-framework/form-elements/datetime/year-range/year-range.directive.mjs +0 -44
  158. package/esm2020/app/eo-framework/tab-container/index.mjs +0 -6
  159. package/esm2020/app/eo-framework/tab-container/tab-container.component.mjs +0 -184
  160. package/esm2020/app/eo-framework/tab-container/tab-container.module.mjs +0 -47
  161. package/esm2020/app/eo-framework/tab-container/tab-panel/tab-panel.component.mjs +0 -26
  162. package/esm2020/app/eo-framework/tab-container/tab-view/tab-view.component.mjs +0 -61
  163. package/esm2020/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.mjs +0 -25
  164. package/scss/_eo-inverted.scss +0 -73
  165. package/scss/_eo-pink-theme.scss +0 -73
  166. package/scss/_eo-theme.scss +0 -81
  167. package/scss/_eo-vars.scss +0 -3
  168. /package/app/eo-framework/form-elements/{datetime → date}/year-range/year-range.directive.d.ts +0 -0
@@ -1,62 +0,0 @@
1
- import { LayoutService } from './../../eo-framework-core/layout/layout.service';
2
- import { AfterViewInit, EventEmitter, QueryList } from '@angular/core';
3
- import { TabPanelComponent } from './tab-panel/tab-panel.component';
4
- import { TabViewComponent } from './tab-view/tab-view.component';
5
- import { CdkDragDrop } from '@angular/cdk/drag-drop';
6
- import * as i0 from "@angular/core";
7
- export declare class TabContainerComponent implements AfterViewInit {
8
- private layout;
9
- flow: string;
10
- dynamic: boolean;
11
- masterSize: string;
12
- masterSizeMin: string;
13
- darkTheme: boolean;
14
- dndEnabled: boolean;
15
- dropZones: string[];
16
- panelOrder: {
17
- master: any[];
18
- slave: any[];
19
- };
20
- defaultPanelOrder: {
21
- master: any[];
22
- slave: any[];
23
- };
24
- private _cacheLayout;
25
- private _afterViewInit;
26
- visibility: {
27
- master: boolean;
28
- slave: boolean;
29
- };
30
- version: {
31
- master: string;
32
- slave: string;
33
- };
34
- pluginPanels: QueryList<TabPanelComponent>;
35
- tabPanels: QueryList<TabPanelComponent>;
36
- mainTabView: TabViewComponent;
37
- slaveTabView: TabViewComponent;
38
- enableSlave: any;
39
- enableSync: any;
40
- onTabSwitch: EventEmitter<any>;
41
- onChange: EventEmitter<any>;
42
- set cacheLayout(val: any);
43
- get cacheLayout(): any;
44
- constructor(layout: LayoutService);
45
- updateLayout(): void;
46
- onChangeTab(evt: any, type: any): void;
47
- onZoneDrop(event: CdkDragDrop<any>, type: 'master' | 'slave'): void;
48
- getCurrentOrder(): {
49
- master: void;
50
- slave: void;
51
- };
52
- saveCacheOrder(tab?: any): void;
53
- ngAfterViewInit(): void;
54
- toggleSplitPane(): void;
55
- init(panelOrder: any): void;
56
- clearSelection(): void;
57
- selectById(id: any): void;
58
- isReady(): boolean;
59
- static ɵfac: i0.ɵɵFactoryDeclaration<TabContainerComponent, never>;
60
- static ɵcmp: i0.ɵɵComponentDeclaration<TabContainerComponent, "eo-tab-container", never, { "flow": "flow"; "dynamic": "dynamic"; "masterSize": "masterSize"; "masterSizeMin": "masterSizeMin"; "darkTheme": "darkTheme"; "dndEnabled": "dndEnabled"; "dropZones": "dropZones"; "defaultPanelOrder": "defaultPanelOrder"; "version": "version"; "pluginPanels": "pluginPanels"; "enableSlave": "enableSlave"; "enableSync": "enableSync"; "cacheLayout": "cacheLayout"; }, { "onTabSwitch": "onTabSwitch"; "onChange": "onChange"; }, ["tabPanels"], never, false, never>;
61
- }
62
- //# sourceMappingURL=tab-container.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab-container.component.d.ts","sourceRoot":"","sources":["../../../../../../src/app/eo-framework/tab-container/tab-container.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAC,aAAa,EAA8B,YAAY,EAAiB,SAAS,EAAY,MAAM,eAAe,CAAC;AAG3H,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAC;;AAEnD,qBAKa,qBAAsB,YAAW,aAAa;IAwD7C,OAAO,CAAC,MAAM;IAvDjB,IAAI,SAAS;IACb,OAAO,UAAQ;IACf,UAAU,SAAS;IACnB,aAAa,SAAM;IACnB,SAAS,UAAS;IAClB,UAAU,UAAQ;IAClB,SAAS,WAAgC;IAElD,UAAU,EAAE;QACV,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,CAAA;KACb,CAAC;IAEO,iBAAiB,EAAE;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,CAAA;KACb,CAAC;IAEF,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,cAAc,CAAM;IAE5B,UAAU;;;MAGR;IAEO,OAAO;;;MAGd;IAEO,YAAY,+BAAsC;IAEvB,SAAS,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAClD,WAAW,EAAE,gBAAgB,CAAC;IAE7B,YAAY,EAAE,gBAAgB,CAAC;IACjD,WAAW,EAAE,GAAG,CAAQ;IACxB,UAAU,EAAE,GAAG,CAAS;IACvB,WAAW,oBAAsB;IACjC,QAAQ,oBAAsB;IAExC,IACI,WAAW,CAAC,GAAG,EAAE,GAAG,EAMvB;IAED,IAAI,WAAW,IAAI,GAAG,CAErB;gBAEmB,MAAM,EAAE,aAAa;IAGzC,YAAY;IAMZ,WAAW,CAAC,GAAG,KAAA,EAAE,IAAI,KAAA;IAarB,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO;IAS5D,eAAe;;;;IAOf,cAAc,CAAC,GAAG,CAAC,KAAA;IAOnB,eAAe;IAKf,eAAe;IAoBf,IAAI,CAAC,UAAU,KAAA;IAqBf,cAAc;IAId,UAAU,CAAC,EAAE,KAAA;IAYb,OAAO;yCAnKI,qBAAqB;2CAArB,qBAAqB;CAsKjC"}
@@ -1,18 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./tab-container.component";
3
- import * as i2 from "./tab-view/tab-view.component";
4
- import * as i3 from "./tab-panel/tab-panel.component";
5
- import * as i4 from "./tab-view-nav/tab-view-nav.component";
6
- import * as i5 from "@angular/common";
7
- import * as i6 from "primeng/tabview";
8
- import * as i7 from "../split/split.module";
9
- import * as i8 from "@eo-sdk/core";
10
- import * as i9 from "../util/util.module";
11
- import * as i10 from "@angular/cdk/drag-drop";
12
- import * as i11 from "../ui/ui.module";
13
- export declare class TabContainerModule {
14
- static ɵfac: i0.ɵɵFactoryDeclaration<TabContainerModule, never>;
15
- static ɵmod: i0.ɵɵNgModuleDeclaration<TabContainerModule, [typeof i1.TabContainerComponent, typeof i2.TabViewComponent, typeof i3.TabPanelComponent, typeof i4.TabViewNavComponent], [typeof i5.CommonModule, typeof i6.TabViewModule, typeof i7.SplitModule, typeof i8.EoSharedModule, typeof i9.UtilModule, typeof i10.DragDropModule, typeof i11.UiModule], [typeof i6.TabViewModule, typeof i1.TabContainerComponent, typeof i2.TabViewComponent, typeof i3.TabPanelComponent, typeof i4.TabViewNavComponent]>;
16
- static ɵinj: i0.ɵɵInjectorDeclaration<TabContainerModule>;
17
- }
18
- //# sourceMappingURL=tab-container.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab-container.module.d.ts","sourceRoot":"","sources":["../../../../../../src/app/eo-framework/tab-container/tab-container.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAcA,qBAaa,kBAAkB;yCAAlB,kBAAkB;0CAAlB,kBAAkB;0CAAlB,kBAAkB;CAC9B"}
@@ -1,13 +0,0 @@
1
- import { ElementRef, ViewContainerRef } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class TabPanelComponent {
4
- viewContainer: ViewContainerRef;
5
- el: ElementRef;
6
- id: string;
7
- isSlave: boolean;
8
- _classSelected: string;
9
- constructor(viewContainer: ViewContainerRef, el: ElementRef);
10
- static ɵfac: i0.ɵɵFactoryDeclaration<TabPanelComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<TabPanelComponent, "eo-tab-panel", never, { "id": "id"; "isSlave": "isSlave"; }, {}, never, never, false, never>;
12
- }
13
- //# sourceMappingURL=tab-panel.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab-panel.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/eo-framework/tab-container/tab-panel/tab-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAsB,gBAAgB,EAAC,MAAM,eAAe,CAAC;;AAG1F,qBAKa,iBAAiB;IAOT,aAAa,EAAE,gBAAgB;IAAS,EAAE,EAAE,UAAU;IALhE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,UAAS;IAEM,cAAc,SAAc;gBAExC,aAAa,EAAE,gBAAgB,EAAS,EAAE,EAAE,UAAU;yCAP9D,iBAAiB;2CAAjB,iBAAiB;CAW7B"}
@@ -1,19 +0,0 @@
1
- import { ElementRef, EventEmitter, QueryList } from '@angular/core';
2
- import { TabView } from 'primeng/tabview';
3
- import { CdkDragDrop } from '@angular/cdk/drag-drop';
4
- import * as i0 from "@angular/core";
5
- export declare class TabViewComponent extends TabView {
6
- viewTabPanels: QueryList<any>;
7
- onSort: EventEmitter<any>;
8
- onTabSwitch: EventEmitter<any>;
9
- dndEnabled: boolean;
10
- panels: ElementRef;
11
- getCurrentOrder(): void;
12
- initTabs(): void;
13
- onHeaderDrop(event: CdkDragDrop<any>): void;
14
- onDragDataIndexChange(tab: any): void;
15
- onDragDataChange(tab: any, emit?: boolean): void;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<TabViewComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<TabViewComponent, "eo-tab-view", never, { "viewTabPanels": "viewTabPanels"; "dndEnabled": "dndEnabled"; }, { "onSort": "onSort"; "onTabSwitch": "onTabSwitch"; }, never, never, false, never>;
18
- }
19
- //# sourceMappingURL=tab-view.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab-view.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/eo-framework/tab-container/tab-view/tab-view.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAE,YAAY,EAAiB,SAAS,EAAY,MAAM,eAAe,CAAC;AACvG,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,WAAW,EAAqB,MAAM,wBAAwB,CAAC;;AAExE,qBAKa,gBAAiB,SAAQ,OAAO;IAElC,aAAa,iBAAwB;IACpC,MAAM,oBAAsB;IAC5B,WAAW,oBAAsB;IAClC,UAAU,UAAQ;IAEN,MAAM,EAAE,UAAU,CAAC;IAExC,eAAe;IAIf,QAAQ;IAKR,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;IAUpC,qBAAqB,CAAC,GAAG,KAAA;IAKzB,gBAAgB,CAAC,GAAG,KAAA,EAAE,IAAI,UAAO;yCAjCtB,gBAAgB;2CAAhB,gBAAgB;CA4C5B"}
@@ -1,11 +0,0 @@
1
- import { EventEmitter } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class TabViewNavComponent {
4
- classes: string;
5
- dndEnabled: boolean;
6
- onHeaderDrop: EventEmitter<any>;
7
- tabs: any[];
8
- static ɵfac: i0.ɵɵFactoryDeclaration<TabViewNavComponent, never>;
9
- static ɵcmp: i0.ɵɵComponentDeclaration<TabViewNavComponent, "eo-tab-view-nav", never, { "dndEnabled": "dndEnabled"; }, { "onHeaderDrop": "onHeaderDrop"; }, never, never, false, never>;
10
- }
11
- //# sourceMappingURL=tab-view-nav.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab-view-nav.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAA6B,MAAM,eAAe,CAAC;;AAElF,qBAKa,mBAAmB;IAER,OAAO,SAAsF;IAE1G,UAAU,UAAQ;IAEjB,YAAY,oBAAsB;IAE5C,IAAI,QAAK;yCARE,mBAAmB;2CAAnB,mBAAmB;CAS/B"}
@@ -1,239 +0,0 @@
1
- import { Component, Input, EventEmitter, Output, HostListener } from '@angular/core';
2
- import * as moment_ from 'moment';
3
- import 'moment/min/locales';
4
- import { DatepickerService } from './service/datepicker.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@eo-sdk/core";
7
- import * as i2 from "./service/datepicker.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@angular/forms";
10
- import * as i5 from "@ngx-translate/core";
11
- import * as i6 from "../../../ui/eo-icon/eo-icon.component";
12
- import * as i7 from "../year-range/year-range.directive";
13
- const moment = moment_;
14
- export class DatepickerComponent {
15
- // current month shown in the picker
16
- set month(month) {
17
- this.datepickerService.month = month;
18
- }
19
- ;
20
- get month() {
21
- return this.datepickerService.month;
22
- }
23
- set weeks(weeks) {
24
- this.datepickerService.weeks = weeks;
25
- }
26
- ;
27
- get weeks() {
28
- return this.datepickerService.weeks;
29
- }
30
- // ngModel for the year input
31
- set year(year) {
32
- this.datepickerService.year = year;
33
- }
34
- ;
35
- get year() {
36
- return this.datepickerService.year;
37
- }
38
- set onlyFutureDates(enabled) {
39
- this.datepickerService.futureOnly = enabled ? enabled : false;
40
- }
41
- get futureOnly() {
42
- return this.datepickerService.futureOnly;
43
- }
44
- set date(date) {
45
- let mIso = moment(date).toISOString();
46
- if (this._date !== mIso) {
47
- this._date = mIso;
48
- if (this.initialized) {
49
- this.setCalenderDate(date, true);
50
- }
51
- }
52
- }
53
- set useDatabaseMinimumTime(enabled) {
54
- this.minYear = enabled ? 1753 : 0;
55
- }
56
- onKeydownHandler(event) {
57
- let newDate;
58
- if (event.keyCode === 13) {
59
- this.selectValue();
60
- }
61
- else if (event.keyCode === 27) {
62
- this.cancel();
63
- }
64
- else if (event.keyCode === 37) {
65
- newDate = moment(this.selected).add(-1, 'd');
66
- }
67
- else if (event.keyCode === 38) {
68
- newDate = moment(this.selected).add(-7, 'd');
69
- }
70
- else if (event.keyCode === 39) {
71
- newDate = moment(this.selected).add(1, 'd');
72
- }
73
- else if (event.keyCode === 40) {
74
- newDate = moment(this.selected).add(7, 'd');
75
- }
76
- if (newDate && !this.datepickerService.isDisabledDate(newDate)) {
77
- this.select(newDate);
78
- }
79
- if (event.keyCode === 13 || event.keyCode === 27) {
80
- event.preventDefault();
81
- event.stopPropagation();
82
- }
83
- }
84
- onInputKeydown(event) {
85
- if (event.keyCode !== 27 && event.keyCode !== 13) {
86
- event.stopPropagation();
87
- }
88
- }
89
- constructor(translate, datepickerService) {
90
- this.datepickerService = datepickerService;
91
- this.maxYear = 9999;
92
- this.minYear = 0;
93
- // ngModel for the year input
94
- // ngModel for the time inputs
95
- this.time = {
96
- h: 0,
97
- m: 0
98
- };
99
- // weeks of the current month
100
- this.monthInfo = {
101
- month: null,
102
- year: null
103
- };
104
- // emitted when a new value is set by the picker
105
- this.onDateChanged = new EventEmitter();
106
- this.onCanceled = new EventEmitter();
107
- const locale = (translate.currentLang || translate.defaultLang).replace('zh', 'zh-cn'); // BUG: moment does not support 'zh'
108
- moment.locale(locale);
109
- let startDay = moment().startOf('week').day();
110
- this.monthsShort = moment.monthsShort();
111
- this.weekdaysShort = moment.weekdaysShort().slice(startDay).concat(moment.weekdaysShort().slice(0, startDay));
112
- }
113
- selectValue() {
114
- this.onDateChanged.emit({
115
- date: this.selected.toDate()
116
- });
117
- }
118
- cancel() {
119
- this.onCanceled.emit({});
120
- }
121
- select(date) {
122
- this.selected = date;
123
- if (this.withTime) {
124
- this.selected.hour(this.time.h);
125
- this.selected.minute(this.time.m);
126
- }
127
- if (this.selected.month() !== this.month.month()) {
128
- this.setMonth(this.selected.month());
129
- }
130
- if (this.selected.year() !== this.year) {
131
- this.setYear(this.selected.year());
132
- }
133
- }
134
- focusSelection() {
135
- this.month.month(this.selected.month());
136
- this.month.year(this.selected.year());
137
- this.datepickerService.buildMonth();
138
- this.createInfo();
139
- }
140
- /**
141
- * Set the pickers selected date
142
- *
143
- * @param Date | string date
144
- * @param boolean select - if set to true the given day will be set selected
145
- */
146
- setCalenderDate(date, select) {
147
- let m = moment(date);
148
- if (m.isValid()) {
149
- this.month = m;
150
- // let start = moment;
151
- // start.date(1);
152
- // this.removeTime(start.day(0));
153
- if (select) {
154
- this.selected = moment(date);
155
- }
156
- if (this.withTime) {
157
- this.time = {
158
- h: m.hour(),
159
- m: m.minute()
160
- };
161
- }
162
- this.datepickerService.buildMonth();
163
- this.createInfo();
164
- }
165
- }
166
- increment(year) {
167
- this.setYear(year + 1);
168
- }
169
- decrement(year) {
170
- this.setYear(year - 1);
171
- }
172
- setYear(year) {
173
- this.year = this.datepickerService.setYear(year, this.minYear, this.maxYear);
174
- this.month.year(this.year);
175
- this.datepickerService.buildMonth();
176
- this.createInfo();
177
- this.selected.year(this.year);
178
- }
179
- ;
180
- timeToString(time) {
181
- return ('0' + Math.abs(time)).slice(-2);
182
- }
183
- setTime(time) {
184
- this.time = this.datepickerService.setTime(time);
185
- this.selected.hour(this.time.h);
186
- this.selected.minute(this.time.m);
187
- }
188
- ;
189
- setMonth(index) {
190
- this.month.month(index);
191
- this.datepickerService.buildMonth();
192
- this.createInfo();
193
- }
194
- ;
195
- isSelectedDay(day) {
196
- return day.isSame(this.selected, 'day');
197
- }
198
- inRange(x, min = 0, max = 11) {
199
- return ((x - min) * (x - max) <= 0);
200
- }
201
- createInfo() {
202
- this.monthInfo = this.datepickerService.createInfo();
203
- }
204
- ngOnInit() {
205
- if (!this._date) {
206
- this._date = this.withTime ? moment().toISOString() : moment().startOf('day').toISOString();
207
- }
208
- this.setCalenderDate(this._date, true);
209
- this.initialized = true;
210
- }
211
- trackByFn(index, item) {
212
- return index;
213
- }
214
- }
215
- DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatepickerComponent, deps: [{ token: i1.TranslateService }, { token: i2.DatepickerService }], target: i0.ɵɵFactoryTarget.Component });
216
- DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DatepickerComponent, selector: "eo-datepicker", inputs: { withTime: "withTime", withAmPm: "withAmPm", onlyFutureDates: "onlyFutureDates", date: "date", useDatabaseMinimumTime: "useDatabaseMinimumTime" }, outputs: { onDateChanged: "onDateChanged", onCanceled: "onCanceled" }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" } }, providers: [DatepickerService], ngImport: i0, template: "<div class=\"date-picker\">\n\n <div class=\"select\">\n\n <div class=\"year\">\n <div class=\"back\">\n <div class=\"current\" (click)=\"focusSelection()\">\n <div class=\"d\">{{selected.date()}}</div>\n <div>\n <div class=\"m\">{{monthsShort[selected.month()]}}</div>\n <div class=\"y\">{{selected.year()}}</div>\n </div>\n </div>\n </div>\n <input (keydown)=\"onInputKeydown($event)\" type=\"number\" eoYearRange [(ngModel)]=\"year\" [max]=\"maxYear\" (ngModelChange)=\"setYear($event)\" [ngModelOptions]=\"{standalone: true}\"/>\n <div class=\"controls\">\n <button class=\"icon white year-up\" (click)=\"increment(year)\" [disabled]=\"year >= maxYear\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n <button class=\"icon white year-down\" (click)=\"decrement(year)\" [disabled]=\"year <= minYear\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n </div>\n </div>\n\n <div class=\"month\">\n <span *ngFor=\"let _month of monthsShort; let _i = index\" (click)=\"setMonth(_i)\" [ngClass]=\"{current: monthInfo.month == _i}\" >{{_month}}</span>\n </div>\n </div>\n\n <div class=\"calendar\">\n <div class=\"week names\">\n <div *ngFor=\"let _day of weekdaysShort\"><span class=\"day\">{{_day}}</span></div>\n </div>\n\n <div class=\"week\" *ngFor=\"let week of weeks; trackBy: trackByFn\">\n <div *ngFor=\"let day of week.days; trackBy: trackByFn\">\n <span class=\"day\" *ngIf=\"!day.disabled\" [ngClass]=\"{ today: day.isToday,\n 'different-month': !day.isCurrentMonth, selected: isSelectedDay(day.date) }\"\n (click)=\"select(day.date)\" (dblclick)=\"select(day.date)\">{{day.number}}</span>\n <span class=\"day disabled\" *ngIf=\"day.disabled\" [ngClass]=\"{ today: day.isToday,\n 'different-month': !day.isCurrentMonth, selected: isSelectedDay(day.date) }\">{{day.number}}</span>\n </div>\n </div>\n </div>\n\n <div class=\"time\" *ngIf=\"withTime\">\n\n <div class=\"value val-h\">{{timeToString(withAmPm && !inRange(time.h, 1, 12) ? time.h - 12 : time.h)}}</div>\n <div class=\"controls ctrl-h\">\n <button class=\"icon btn-up\" (click)=\"setTime({h: time.h + 1, m: time.m})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n <button class=\"icon btn-down\" (click)=\"setTime({h: time.h - 1, m: time.m})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n </div>\n\n <div class=\"value val-sep\">:</div>\n <div class=\"value val-min\">{{timeToString(time.m)}}</div>\n <div class=\"controls ctrl-min\">\n <button class=\"icon btn-up\" (click)=\"setTime({h: time.h, m: time.m + 1})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n <button class=\"icon btn-down\" (click)=\"setTime({h: time.h, m: time.m - 1})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n </div>\n\n <div class=\"controls ctrl-am-pm\" *ngIf=\"withAmPm\">\n <button class=\"\" [ngClass]=\"{primary: inRange(time.h)}\" (click)=\"setTime({h: inRange(time.h) ? time.h : time.h - 12, m: time.m})\">AM</button>\n <button class=\"\" [ngClass]=\"{primary: !inRange(time.h)}\" (click)=\"setTime({h: inRange(time.h) ? time.h + 12 : time.h, m: time.m})\">PM</button>\n </div>\n\n </div>\n\n <div class=\"actions\">\n <button class=\"primary\" (click)=\"selectValue()\" translate>eo.datepicker.calendar.select</button>\n </div>\n\n</div>\n", styles: [".date-picker{background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;box-sizing:border-box}.date-picker .controls{display:flex;flex:none;flex-direction:column;min-height:0;min-width:0}.date-picker .controls button{padding:4px;margin:4px;border-radius:2px}.date-picker .controls button.icon{background:rgba(var(--color-black-rgb),0);color:var(--color-white);padding:0}.date-picker .controls button.icon:focus{border-color:rgba(var(--color-black-rgb),0)}.date-picker .controls button.icon eo-icon{border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-white-rgb),.1)}.date-picker .controls button.icon eo-icon svg{fill:var(--text-color-hint)}.date-picker .controls button.icon:first-child{transform:rotate(180deg)}.date-picker .select{flex:0 0 auto;background:var(--color-accent);color:var(--color-white)}.date-picker .select .year{padding:0 var(--app-pane-padding);margin-bottom:var(--app-pane-padding);display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.date-picker .select .year .back{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;align-items:flex-start}.date-picker .select .year .back .d{font-size:40px;line-height:1em;margin:0 4px}.date-picker .select .year .back .current{border-radius:2px;padding:0 4px 0 0;display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;align-items:center;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.date-picker .select .year .back .current:hover{background:rgba(var(--color-white-rgb),.1)}.date-picker .select .year .back .current>div{display:flex;flex:none;flex-direction:column;min-height:0;min-width:0;align-items:flex-start}.date-picker .select .year input{font-size:50px;font-family:eoRoboto,sans-serif;font-weight:var(--font-weight-light);color:var(--color-white);border:0;background:rgba(var(--color-black-rgb),0);width:3em;text-align:right;line-height:1em;margin:0 calc(var(--app-pane-padding) / 2);border-bottom:1px solid rgba(var(--color-black-rgb),0)}.date-picker .select .year input::-moz-selection{background:rgba(var(--color-white-rgb),.3)}.date-picker .select .year input::selection{background:rgba(var(--color-white-rgb),.3)}.date-picker .select .year input:focus{border-bottom:1px solid rgba(var(--color-white-rgb),.5)}.date-picker .select .month{padding:0 var(--app-pane-padding)}.date-picker .select .month span{font-size:var(--font-hint);color:rgba(var(--color-white-rgb),.5);font-weight:var(--font-weight-bold);display:inline-block;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;width:3em;box-sizing:border-box;text-align:center;padding:4px 0;margin-bottom:1px;cursor:pointer;border-bottom:2px solid rgba(var(--color-black-rgb),0)}.date-picker .select .month span:hover{color:var(--color-white);border-color:rgba(var(--color-white-rgb),.5)}.date-picker .select .month span.current{color:var(--color-white);border-color:var(--color-white)}.date-picker .calendar{flex:1 1 auto;padding:var(--app-pane-padding);box-sizing:content-box}.date-picker .time{display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;justify-content:flex-start;align-items:center;padding:var(--app-pane-padding)}.date-picker .time .value{font-size:64px;font-weight:var(--font-weight-light);color:var(--text-color-caption);line-height:1em;cursor:default}.date-picker .time .value.val-h,.date-picker .time .value.val-min{min-width:1.2em}.date-picker .time .controls button.icon:focus{border:1px solid var(--color-primary-3)}.date-picker .time .controls button.icon eo-icon{background:rgba(var(--color-black-rgb),.05);color:var(--text-color-hint)}.date-picker .time .controls button.icon eo-icon:hover{background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption)}.date-picker .actions{display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;justify-content:flex-end;padding:var(--app-pane-padding)}.week.names span:hover{background:rgba(var(--color-black-rgb),0);border-color:rgba(var(--color-black-rgb),0);cursor:default}.week{display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;flex-wrap:nowrap;justify-content:space-around;margin-bottom:3px}.week>div{text-align:center;width:2.5em}.week span{color:var(--text-color-body);display:inline-block;box-sizing:border-box;border-bottom:1px solid rgba(var(--color-black-rgb),0);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;width:2em;text-align:center;padding:.25em 0;cursor:pointer}.week .day.disabled{color:#fff;cursor:default;background-color:#0000001a;border-radius:2px}.week .day.disabled:hover{border-bottom:0}.week span:hover{color:var(--color-accent);border-bottom:1px solid var(--color-accent)}.week span.today{color:var(--color-accent);font-weight:var(--font-weight-bold);border-bottom:1px solid var(--color-accent)}.week span.selected,.week span.selected:hover{background:var(--color-accent);color:var(--color-white)!important;border-radius:2px;-webkit-border-radius:2px}.week span.different-month{color:var(--text-color-hint)}.week.names span{color:var(--color-accent)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i7.YearRangeDirective, selector: "[eoYearRange]", inputs: ["rangeMin", "rangeMax"] }] });
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatepickerComponent, decorators: [{
218
- type: Component,
219
- args: [{ selector: 'eo-datepicker', providers: [DatepickerService], template: "<div class=\"date-picker\">\n\n <div class=\"select\">\n\n <div class=\"year\">\n <div class=\"back\">\n <div class=\"current\" (click)=\"focusSelection()\">\n <div class=\"d\">{{selected.date()}}</div>\n <div>\n <div class=\"m\">{{monthsShort[selected.month()]}}</div>\n <div class=\"y\">{{selected.year()}}</div>\n </div>\n </div>\n </div>\n <input (keydown)=\"onInputKeydown($event)\" type=\"number\" eoYearRange [(ngModel)]=\"year\" [max]=\"maxYear\" (ngModelChange)=\"setYear($event)\" [ngModelOptions]=\"{standalone: true}\"/>\n <div class=\"controls\">\n <button class=\"icon white year-up\" (click)=\"increment(year)\" [disabled]=\"year >= maxYear\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n <button class=\"icon white year-down\" (click)=\"decrement(year)\" [disabled]=\"year <= minYear\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n </div>\n </div>\n\n <div class=\"month\">\n <span *ngFor=\"let _month of monthsShort; let _i = index\" (click)=\"setMonth(_i)\" [ngClass]=\"{current: monthInfo.month == _i}\" >{{_month}}</span>\n </div>\n </div>\n\n <div class=\"calendar\">\n <div class=\"week names\">\n <div *ngFor=\"let _day of weekdaysShort\"><span class=\"day\">{{_day}}</span></div>\n </div>\n\n <div class=\"week\" *ngFor=\"let week of weeks; trackBy: trackByFn\">\n <div *ngFor=\"let day of week.days; trackBy: trackByFn\">\n <span class=\"day\" *ngIf=\"!day.disabled\" [ngClass]=\"{ today: day.isToday,\n 'different-month': !day.isCurrentMonth, selected: isSelectedDay(day.date) }\"\n (click)=\"select(day.date)\" (dblclick)=\"select(day.date)\">{{day.number}}</span>\n <span class=\"day disabled\" *ngIf=\"day.disabled\" [ngClass]=\"{ today: day.isToday,\n 'different-month': !day.isCurrentMonth, selected: isSelectedDay(day.date) }\">{{day.number}}</span>\n </div>\n </div>\n </div>\n\n <div class=\"time\" *ngIf=\"withTime\">\n\n <div class=\"value val-h\">{{timeToString(withAmPm && !inRange(time.h, 1, 12) ? time.h - 12 : time.h)}}</div>\n <div class=\"controls ctrl-h\">\n <button class=\"icon btn-up\" (click)=\"setTime({h: time.h + 1, m: time.m})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n <button class=\"icon btn-down\" (click)=\"setTime({h: time.h - 1, m: time.m})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n </div>\n\n <div class=\"value val-sep\">:</div>\n <div class=\"value val-min\">{{timeToString(time.m)}}</div>\n <div class=\"controls ctrl-min\">\n <button class=\"icon btn-up\" (click)=\"setTime({h: time.h, m: time.m + 1})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n <button class=\"icon btn-down\" (click)=\"setTime({h: time.h, m: time.m - 1})\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n </div>\n\n <div class=\"controls ctrl-am-pm\" *ngIf=\"withAmPm\">\n <button class=\"\" [ngClass]=\"{primary: inRange(time.h)}\" (click)=\"setTime({h: inRange(time.h) ? time.h : time.h - 12, m: time.m})\">AM</button>\n <button class=\"\" [ngClass]=\"{primary: !inRange(time.h)}\" (click)=\"setTime({h: inRange(time.h) ? time.h + 12 : time.h, m: time.m})\">PM</button>\n </div>\n\n </div>\n\n <div class=\"actions\">\n <button class=\"primary\" (click)=\"selectValue()\" translate>eo.datepicker.calendar.select</button>\n </div>\n\n</div>\n", styles: [".date-picker{background:var(--color-white);display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;box-sizing:border-box}.date-picker .controls{display:flex;flex:none;flex-direction:column;min-height:0;min-width:0}.date-picker .controls button{padding:4px;margin:4px;border-radius:2px}.date-picker .controls button.icon{background:rgba(var(--color-black-rgb),0);color:var(--color-white);padding:0}.date-picker .controls button.icon:focus{border-color:rgba(var(--color-black-rgb),0)}.date-picker .controls button.icon eo-icon{border-radius:2px;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;background:rgba(var(--color-white-rgb),.1)}.date-picker .controls button.icon eo-icon svg{fill:var(--text-color-hint)}.date-picker .controls button.icon:first-child{transform:rotate(180deg)}.date-picker .select{flex:0 0 auto;background:var(--color-accent);color:var(--color-white)}.date-picker .select .year{padding:0 var(--app-pane-padding);margin-bottom:var(--app-pane-padding);display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.date-picker .select .year .back{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;align-items:flex-start}.date-picker .select .year .back .d{font-size:40px;line-height:1em;margin:0 4px}.date-picker .select .year .back .current{border-radius:2px;padding:0 4px 0 0;display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;align-items:center;cursor:pointer;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.date-picker .select .year .back .current:hover{background:rgba(var(--color-white-rgb),.1)}.date-picker .select .year .back .current>div{display:flex;flex:none;flex-direction:column;min-height:0;min-width:0;align-items:flex-start}.date-picker .select .year input{font-size:50px;font-family:eoRoboto,sans-serif;font-weight:var(--font-weight-light);color:var(--color-white);border:0;background:rgba(var(--color-black-rgb),0);width:3em;text-align:right;line-height:1em;margin:0 calc(var(--app-pane-padding) / 2);border-bottom:1px solid rgba(var(--color-black-rgb),0)}.date-picker .select .year input::-moz-selection{background:rgba(var(--color-white-rgb),.3)}.date-picker .select .year input::selection{background:rgba(var(--color-white-rgb),.3)}.date-picker .select .year input:focus{border-bottom:1px solid rgba(var(--color-white-rgb),.5)}.date-picker .select .month{padding:0 var(--app-pane-padding)}.date-picker .select .month span{font-size:var(--font-hint);color:rgba(var(--color-white-rgb),.5);font-weight:var(--font-weight-bold);display:inline-block;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;width:3em;box-sizing:border-box;text-align:center;padding:4px 0;margin-bottom:1px;cursor:pointer;border-bottom:2px solid rgba(var(--color-black-rgb),0)}.date-picker .select .month span:hover{color:var(--color-white);border-color:rgba(var(--color-white-rgb),.5)}.date-picker .select .month span.current{color:var(--color-white);border-color:var(--color-white)}.date-picker .calendar{flex:1 1 auto;padding:var(--app-pane-padding);box-sizing:content-box}.date-picker .time{display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;justify-content:flex-start;align-items:center;padding:var(--app-pane-padding)}.date-picker .time .value{font-size:64px;font-weight:var(--font-weight-light);color:var(--text-color-caption);line-height:1em;cursor:default}.date-picker .time .value.val-h,.date-picker .time .value.val-min{min-width:1.2em}.date-picker .time .controls button.icon:focus{border:1px solid var(--color-primary-3)}.date-picker .time .controls button.icon eo-icon{background:rgba(var(--color-black-rgb),.05);color:var(--text-color-hint)}.date-picker .time .controls button.icon eo-icon:hover{background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption)}.date-picker .actions{display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;justify-content:flex-end;padding:var(--app-pane-padding)}.week.names span:hover{background:rgba(var(--color-black-rgb),0);border-color:rgba(var(--color-black-rgb),0);cursor:default}.week{display:flex;flex:none;flex-direction:row;min-height:0;min-width:0;flex-wrap:nowrap;justify-content:space-around;margin-bottom:3px}.week>div{text-align:center;width:2.5em}.week span{color:var(--text-color-body);display:inline-block;box-sizing:border-box;border-bottom:1px solid rgba(var(--color-black-rgb),0);transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out;width:2em;text-align:center;padding:.25em 0;cursor:pointer}.week .day.disabled{color:#fff;cursor:default;background-color:#0000001a;border-radius:2px}.week .day.disabled:hover{border-bottom:0}.week span:hover{color:var(--color-accent);border-bottom:1px solid var(--color-accent)}.week span.today{color:var(--color-accent);font-weight:var(--font-weight-bold);border-bottom:1px solid var(--color-accent)}.week span.selected,.week span.selected:hover{background:var(--color-accent);color:var(--color-white)!important;border-radius:2px;-webkit-border-radius:2px}.week span.different-month{color:var(--text-color-hint)}.week.names span{color:var(--color-accent)}\n"] }]
220
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.DatepickerService }]; }, propDecorators: { onDateChanged: [{
221
- type: Output
222
- }], onCanceled: [{
223
- type: Output
224
- }], withTime: [{
225
- type: Input
226
- }], withAmPm: [{
227
- type: Input
228
- }], onlyFutureDates: [{
229
- type: Input
230
- }], date: [{
231
- type: Input,
232
- args: ['date']
233
- }], useDatabaseMinimumTime: [{
234
- type: Input
235
- }], onKeydownHandler: [{
236
- type: HostListener,
237
- args: ['document:keydown', ['$event']]
238
- }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2RhdGV0aW1lL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2RhdGV0aW1lL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLG9CQUFvQixDQUFDO0FBRzVCLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7QUFHL0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDO0FBU3ZCLE1BQU0sT0FBTyxtQkFBbUI7SUFPOUIsb0NBQW9DO0lBQ3BDLElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQWM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJ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a0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcbmltcG9ydCAnbW9tZW50L21pbi9sb2NhbGVzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtEYXRlcGlja2VyU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlL2RhdGVwaWNrZXIuc2VydmljZSc7XG5pbXBvcnQge1RpbWUsIFdlZWtzfSBmcm9tICcuL2RhdGVwaWNrZXIuaW50ZXJmYWNlJztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0RhdGVwaWNrZXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBtb250aHNTaG9ydDogc3RyaW5nW107XG4gIHdlZWtkYXlzU2hvcnQ6IHN0cmluZ1tdO1xuICBtYXhZZWFyID0gOTk5OTtcbiAgbWluWWVhciA9IDA7XG5cbiAgLy8gY3VycmVudCBtb250aCBzaG93biBpbiB0aGUgcGlja2VyXG4gIHNldCBtb250aChtb250aDogTW9tZW50KSB7XG4gICAgdGhpcy5kYXRlcGlja2VyU2VydmljZS5tb250aCA9IG1vbnRoO1xuICB9O1xuXG4gIGdldCBtb250aCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyU2VydmljZS5tb250aDtcbiAgfVxuXG4gIHNldCB3ZWVrcyh3ZWVrczogV2Vla3NbXSkge1xuICAgIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2Uud2Vla3MgPSB3ZWVrcztcbiAgfTtcblxuICBnZXQgd2Vla3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2Uud2Vla3M7XG4gIH1cblxuLy8gbmdNb2RlbCBmb3IgdGhlIHllYXIgaW5wdXRcbiAgc2V0IHllYXIoeWVhcjogbnVtYmVyKSB7XG4gICAgdGhpcy5kYXRlcGlja2VyU2VydmljZS55ZWFyID0geWVhcjtcbiAgfTtcblxuICBnZXQgeWVhcigpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlcGlja2VyU2VydmljZS55ZWFyO1xuICB9XG5cbiAgLy8gc2VsZWN0ZWQgZGF0ZVxuICBzZWxlY3RlZDogTW9tZW50O1xuXG4gIC8vIG5nTW9kZWwgZm9yIHRoZSB5ZWFyIGlucHV0XG5cbiAgLy8gbmdNb2RlbCBmb3IgdGhlIHRpbWUgaW5wdXRzXG4gIHRpbWUgPSB7XG4gICAgaDogMCxcbiAgICBtOiAwXG4gIH07XG5cbiAgLy8gd2Vla3Mgb2YgdGhlIGN1cnJlbnQgbW9udGhcblxuICBtb250aEluZm8gPSB7XG4gICAgbW9udGg6IG51bGwsXG4gICAgeWVhcjogbnVsbFxuICB9O1xuXG4gIC8vIElTTyBzdHJpbmcgb2YgdGhlIGRhdGUgc2V0IGJ5IHRoZSBjb21wb25lbnRzIGRhdGUgcHJvcGVydHkgKHVzZWQgZm9yIGNvbXBhcmluZyBlcXVhbGl0eSlcbiAgcHJpdmF0ZSBfZGF0ZTogc3RyaW5nO1xuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuO1xuICAvLyBlbWl0dGVkIHdoZW4gYSBuZXcgdmFsdWUgaXMgc2V0IGJ5IHRoZSBwaWNrZXJcbiAgQE91dHB1dCgpIG9uRGF0ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNhbmNlbGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIHdpdGhUaW1lOiBib29sZWFuO1xuICBASW5wdXQoKSB3aXRoQW1QbTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBzZXQgb25seUZ1dHVyZURhdGVzKGVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmZ1dHVyZU9ubHkgPSBlbmFibGVkID8gZW5hYmxlZCA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0IGZ1dHVyZU9ubHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuZnV0dXJlT25seTtcbiAgfVxuXG4gIEBJbnB1dCgnZGF0ZScpXG4gIHNldCBkYXRlKGRhdGU6IGFueSkge1xuICAgIGxldCBtSXNvID0gbW9tZW50KGRhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgaWYgKHRoaXMuX2RhdGUgIT09IG1Jc28pIHtcbiAgICAgIHRoaXMuX2RhdGUgPSBtSXNvO1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRlckRhdGUoZGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHVzZURhdGFiYXNlTWluaW11bVRpbWUoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubWluWWVhciA9IGVuYWJsZWQgPyAxNzUzIDogMDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKSBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgbGV0IG5ld0RhdGU7XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzKSB7XG4gICAgICB0aGlzLnNlbGVjdFZhbHVlKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXlDb2RlID09PSAyNykge1xuICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM3KSB7XG4gICAgICBuZXdEYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWQpLmFkZCgtMSwgJ2QnKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICBuZXdEYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWQpLmFkZCgtNywgJ2QnKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IDM5KSB7XG4gICAgICBuZXdEYXRlID0gbW9tZW50KHRoaXMuc2VsZWN0ZWQpLmFkZCgxLCAnZCcpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgIG5ld0RhdGUgPSBtb21lbnQodGhpcy5zZWxlY3RlZCkuYWRkKDcsICdkJyk7XG4gICAgfVxuICAgIGlmIChuZXdEYXRlICYmICF0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmlzRGlzYWJsZWREYXRlKG5ld0RhdGUpKSB7XG4gICAgICB0aGlzLnNlbGVjdChuZXdEYXRlKTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzIHx8IGV2ZW50LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSAhPT0gMjcgJiYgZXZlbnQua2V5Q29kZSAhPT0gMTMpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBkYXRlcGlja2VyU2VydmljZTogRGF0ZXBpY2tlclNlcnZpY2UpIHtcbiAgICBjb25zdCBsb2NhbGUgPSAodHJhbnNsYXRlLmN1cnJlbnRMYW5nIHx8IHRyYW5zbGF0ZS5kZWZhdWx0TGFuZykucmVwbGFjZSgnemgnLCAnemgtY24nKTsgLy8gQlVHOiBtb21lbnQgZG9lcyBub3Qgc3VwcG9ydCAnemgnXG4gICAgbW9tZW50LmxvY2FsZShsb2NhbGUpO1xuICAgIGxldCBzdGFydERheSA9IG1vbWVudCgpLnN0YXJ0T2YoJ3dlZWsnKS5kYXkoKTtcbiAgICB0aGlzLm1vbnRoc1Nob3J0ID0gbW9tZW50Lm1vbnRoc1Nob3J0KCk7XG4gICAgdGhpcy53ZWVrZGF5c1Nob3J0ID0gbW9tZW50LndlZWtkYXlzU2hvcnQoKS5zbGljZShzdGFydERheSkuY29uY2F0KG1vbWVudC53ZWVrZGF5c1Nob3J0KCkuc2xpY2UoMCwgc3RhcnREYXkpKTtcbiAgfVxuXG4gIHNlbGVjdFZhbHVlKCkge1xuICAgIHRoaXMub25EYXRlQ2hhbmdlZC5lbWl0KHtcbiAgICAgIGRhdGU6IHRoaXMuc2VsZWN0ZWQudG9EYXRlKClcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLm9uQ2FuY2VsZWQuZW1pdCh7fSk7XG4gIH1cblxuICBzZWxlY3QoZGF0ZSkge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBkYXRlO1xuICAgIGlmICh0aGlzLndpdGhUaW1lKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmhvdXIodGhpcy50aW1lLmgpO1xuICAgICAgdGhpcy5zZWxlY3RlZC5taW51dGUodGhpcy50aW1lLm0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RlZC5tb250aCgpICE9PSB0aGlzLm1vbnRoLm1vbnRoKCkpIHtcbiAgICAgIHRoaXMuc2V0TW9udGgodGhpcy5zZWxlY3RlZC5tb250aCgpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQueWVhcigpICE9PSB0aGlzLnllYXIpIHtcbiAgICAgIHRoaXMuc2V0WWVhcih0aGlzLnNlbGVjdGVkLnllYXIoKSk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5tb250aC5tb250aCh0aGlzLnNlbGVjdGVkLm1vbnRoKCkpO1xuICAgIHRoaXMubW9udGgueWVhcih0aGlzLnNlbGVjdGVkLnllYXIoKSk7XG4gICAgdGhpcy5kYXRlcGlja2VyU2VydmljZS5idWlsZE1vbnRoKCk7XG4gICAgdGhpcy5jcmVhdGVJbmZvKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwaWNrZXJzIHNlbGVjdGVkIGRhdGVcbiAgICpcbiAgICogQHBhcmFtIERhdGUgfCBzdHJpbmcgZGF0ZVxuICAgKiBAcGFyYW0gYm9vbGVhbiBzZWxlY3QgLSBpZiBzZXQgdG8gdHJ1ZSB0aGUgZ2l2ZW4gZGF5IHdpbGwgYmUgc2V0IHNlbGVjdGVkXG4gICAqL1xuICBzZXRDYWxlbmRlckRhdGUoZGF0ZTogRGF0ZSB8IHN0cmluZywgc2VsZWN0PzogYm9vbGVhbikge1xuXG4gICAgbGV0IG0gPSBtb21lbnQoZGF0ZSk7XG5cbiAgICBpZiAobS5pc1ZhbGlkKCkpIHtcbiAgICAgIHRoaXMubW9udGggPSBtO1xuICAgICAgLy8gbGV0IHN0YXJ0ID0gbW9tZW50O1xuICAgICAgLy8gc3RhcnQuZGF0ZSgxKTtcbiAgICAgIC8vIHRoaXMucmVtb3ZlVGltZShzdGFydC5kYXkoMCkpO1xuICAgICAgaWYgKHNlbGVjdCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbW9tZW50KGRhdGUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMud2l0aFRpbWUpIHtcbiAgICAgICAgdGhpcy50aW1lID0ge1xuICAgICAgICAgIGg6IG0uaG91cigpLFxuICAgICAgICAgIG06IG0ubWludXRlKClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuYnVpbGRNb250aCgpO1xuICAgICAgdGhpcy5jcmVhdGVJbmZvKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGluY3JlbWVudCh5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFllYXIoeWVhciArIDEpO1xuICB9XG5cbiAgcHVibGljIGRlY3JlbWVudCh5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLnNldFllYXIoeWVhciAtIDEpO1xuICB9XG5cbiAgcHVibGljIHNldFllYXIoeWVhcjogbnVtYmVyKSB7XG4gICAgdGhpcy55ZWFyID0gdGhpcy5kYXRlcGlja2VyU2VydmljZS5zZXRZZWFyKHllYXIsIHRoaXMubWluWWVhciwgdGhpcy5tYXhZZWFyKTtcbiAgICB0aGlzLm1vbnRoLnllYXIodGhpcy55ZWFyKTtcbiAgICB0aGlzLmRhdGVwaWNrZXJTZXJ2aWNlLmJ1aWxkTW9udGgoKTtcbiAgICB0aGlzLmNyZWF0ZUluZm8oKTtcbiAgICB0aGlzLnNlbGVjdGVkLnllYXIodGhpcy55ZWFyKTtcbiAgfTtcblxuICBwdWJsaWMgdGltZVRvU3RyaW5nKHRpbWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuICgnMCcgKyBNYXRoLmFicyh0aW1lKSkuc2xpY2UoLTIpO1xuICB9XG5cbiAgcHVibGljIHNldFRpbWUodGltZTogVGltZSkge1xuICAgIHRoaXMudGltZSA9IHRoaXMuZGF0ZXBpY2tlclNlcnZpY2Uuc2V0VGltZSh0aW1lKTtcbiAgICB0aGlzLnNlbGVjdGVkLmhvdXIodGhpcy50aW1lLmgpO1xuICAgIHRoaXMuc2VsZWN0ZWQubWludXRlKHRoaXMudGltZS5tKTtcbiAgfTtcblxuICBwdWJsaWMgc2V0TW9udGgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMubW9udGgubW9udGgoaW5kZXgpO1xuICAgIHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuYnVpbGRNb250aCgpO1xuICAgIHRoaXMuY3JlYXRlSW5mbygpO1xuICB9O1xuXG4gIHB1YmxpYyBpc1NlbGVjdGVkRGF5KGRheTogTW9tZW50KSB7XG4gICAgcmV0dXJuIGRheS5pc1NhbWUodGhpcy5zZWxlY3RlZCwgJ2RheScpO1xuICB9XG5cbiAgaW5SYW5nZSh4LCBtaW4gPSAwLCBtYXggPSAxMSkge1xuICAgIHJldHVybiAoKHggLSBtaW4pICogKHggLSBtYXgpIDw9IDApO1xuICB9XG5cbiAgY3JlYXRlSW5mbygpIHtcbiAgICB0aGlzLm1vbnRoSW5mbyA9IHRoaXMuZGF0ZXBpY2tlclNlcnZpY2UuY3JlYXRlSW5mbygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLl9kYXRlKSB7XG4gICAgICB0aGlzLl9kYXRlID0gdGhpcy53aXRoVGltZSA/IG1vbWVudCgpLnRvSVNPU3RyaW5nKCkgOiBtb21lbnQoKS5zdGFydE9mKCdkYXknKS50b0lTT1N0cmluZygpO1xuICAgIH1cbiAgICB0aGlzLnNldENhbGVuZGVyRGF0ZSh0aGlzLl9kYXRlLCB0cnVlKTtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXgsIGl0ZW0pIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlclwiPlxuXG4gIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJ5ZWFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYmFja1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VycmVudFwiIChjbGljayk9XCJmb2N1c1NlbGVjdGlvbigpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRcIj57e3NlbGVjdGVkLmRhdGUoKX19PC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtXCI+e3ttb250aHNTaG9ydFtzZWxlY3RlZC5tb250aCgpXX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwieVwiPnt7c2VsZWN0ZWQueWVhcigpfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dCAoa2V5ZG93bik9XCJvbklucHV0S2V5ZG93bigkZXZlbnQpXCIgdHlwZT1cIm51bWJlclwiIGVvWWVhclJhbmdlIFsobmdNb2RlbCldPVwieWVhclwiIFttYXhdPVwibWF4WWVhclwiIChuZ01vZGVsQ2hhbmdlKT1cInNldFllYXIoJGV2ZW50KVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIi8+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udHJvbHNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24gd2hpdGUgeWVhci11cFwiIChjbGljayk9XCJpbmNyZW1lbnQoeWVhcilcIiBbZGlzYWJsZWRdPVwieWVhciA+PSBtYXhZZWFyXCI+XG4gICAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfZG93bi5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24gd2hpdGUgeWVhci1kb3duXCIgKGNsaWNrKT1cImRlY3JlbWVudCh5ZWFyKVwiIFtkaXNhYmxlZF09XCJ5ZWFyIDw9IG1pblllYXJcIj5cbiAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibW9udGhcIj5cbiAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBfbW9udGggb2YgbW9udGhzU2hvcnQ7IGxldCBfaSA9IGluZGV4XCIgKGNsaWNrKT1cInNldE1vbnRoKF9pKVwiIFtuZ0NsYXNzXT1cIntjdXJyZW50OiBtb250aEluZm8ubW9udGggPT0gIF9pfVwiID57e19tb250aH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwid2VlayBuYW1lc1wiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgX2RheSBvZiB3ZWVrZGF5c1Nob3J0XCI+PHNwYW4gY2xhc3M9XCJkYXlcIj57e19kYXl9fTwvc3Bhbj48L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ3ZWVrXCIgKm5nRm9yPVwibGV0IHdlZWsgb2Ygd2Vla3M7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5IG9mIHdlZWsuZGF5czsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGF5XCIgKm5nSWY9XCIhZGF5LmRpc2FibGVkXCIgW25nQ2xhc3NdPVwieyB0b2RheTogZGF5LmlzVG9kYXksXG4gICAgICAgICdkaWZmZXJlbnQtbW9udGgnOiAhZGF5LmlzQ3VycmVudE1vbnRoLCBzZWxlY3RlZDogaXNTZWxlY3RlZERheShkYXkuZGF0ZSkgfVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3QoZGF5LmRhdGUpXCIgKGRibGNsaWNrKT1cInNlbGVjdChkYXkuZGF0ZSlcIj57e2RheS5udW1iZXJ9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXkgZGlzYWJsZWRcIiAqbmdJZj1cImRheS5kaXNhYmxlZFwiIFtuZ0NsYXNzXT1cInsgdG9kYXk6IGRheS5pc1RvZGF5LFxuICAgICAgICAnZGlmZmVyZW50LW1vbnRoJzogIWRheS5pc0N1cnJlbnRNb250aCwgc2VsZWN0ZWQ6IGlzU2VsZWN0ZWREYXkoZGF5LmRhdGUpIH1cIj57e2RheS5udW1iZXJ9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwidGltZVwiICpuZ0lmPVwid2l0aFRpbWVcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2YWwtaFwiPnt7dGltZVRvU3RyaW5nKHdpdGhBbVBtICYmICFpblJhbmdlKHRpbWUuaCwgMSwgMTIpID8gdGltZS5oIC0gMTIgOiB0aW1lLmgpfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udHJvbHMgY3RybC1oXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbiBidG4tdXBcIiAoY2xpY2spPVwic2V0VGltZSh7aDogdGltZS5oICsgMSwgbTogdGltZS5tfSlcIj5cbiAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfZG93bi5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbiBidG4tZG93blwiIChjbGljayk9XCJzZXRUaW1lKHtoOiB0aW1lLmggLSAxLCBtOiB0aW1lLm19KVwiPlxuICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2YWwtc2VwXCI+OjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2YWwtbWluXCI+e3t0aW1lVG9TdHJpbmcodGltZS5tKX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRyb2xzIGN0cmwtbWluXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbiBidG4tdXBcIiAoY2xpY2spPVwic2V0VGltZSh7aDogdGltZS5oLCBtOiB0aW1lLm0gKyAxfSlcIj5cbiAgICAgICAgPGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXJyb3dfZG93bi5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiaWNvbiBidG4tZG93blwiIChjbGljayk9XCJzZXRUaW1lKHtoOiB0aW1lLmgsIG06IHRpbWUubSAtIDF9KVwiPlxuICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb250cm9scyBjdHJsLWFtLXBtXCIgKm5nSWY9XCJ3aXRoQW1QbVwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cIlwiIFtuZ0NsYXNzXT1cIntwcmltYXJ5OiBpblJhbmdlKHRpbWUuaCl9XCIgKGNsaWNrKT1cInNldFRpbWUoe2g6IGluUmFuZ2UodGltZS5oKSA/IHRpbWUuaCA6IHRpbWUuaCAtIDEyLCBtOiB0aW1lLm19KVwiPkFNPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiXCIgW25nQ2xhc3NdPVwie3ByaW1hcnk6ICFpblJhbmdlKHRpbWUuaCl9XCIgKGNsaWNrKT1cInNldFRpbWUoe2g6IGluUmFuZ2UodGltZS5oKSA/IHRpbWUuaCArIDEyIDogdGltZS5oLCBtOiB0aW1lLm19KVwiPlBNPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIChjbGljayk9XCJzZWxlY3RWYWx1ZSgpXCIgdHJhbnNsYXRlPmVvLmRhdGVwaWNrZXIuY2FsZW5kYXIuc2VsZWN0PC9idXR0b24+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2RhdGV0aW1lL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xuXG5cbmV4cG9ydCB0eXBlIFdlZWtzID0gRGF5c1tdO1xuXG5leHBvcnQgaW50ZXJmYWNlIERheXMge1xuICBkYXRlOiBNb21lbnQ7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBpc0N1cnJlbnRNb250aDogYm9vbGVhbjtcbiAgaXNUb2RheTogYm9vbGVhbjtcbiAgbnVtYmVyOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlja2VyRGF5IHtcbiAgbnVtYmVyOiBudW1iZXI7ICAgICAgICAgICAvLyBkYXRlIG9mIG1vbnRoXG4gIGlzQ3VycmVudE1vbnRoOiBib29sZWFuOyAgLy8gZmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIGRheSBiZWxvbmdzIHRvIHRoZSBzZWxlY3RlZCBtb250aFxuICBpc1RvZGF5OiBib29sZWFuOyAgICAgICAgIC8vIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBkYXkgaXMgdG9kYXlcbiAgZGF0ZTogYW55OyAgICAgICAgICAgICAgICAvLyB0aGUgZGF5IGFjdHVhbCBtb21lbnQgcmVwcmVzZW50YXRpb25cbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZSB7XG4gIGg6IG51bWJlcjtcbiAgbTogbnVtYmVyO1xufVxuIl19
@@ -1,109 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as moment_ from 'moment';
3
- import * as i0 from "@angular/core";
4
- const moment = moment_;
5
- export class DatepickerService {
6
- set month(month) {
7
- this._month = month;
8
- }
9
- get month() {
10
- return this._month;
11
- }
12
- set weeks(weeks) {
13
- this._weeks = weeks;
14
- }
15
- get weeks() {
16
- return this._weeks;
17
- }
18
- set year(year) {
19
- this._year = year;
20
- }
21
- get year() {
22
- return this._year;
23
- }
24
- constructor() {
25
- this.futureOnly = false;
26
- }
27
- isDisabledDate(date) {
28
- if (this.futureOnly) {
29
- let now = moment();
30
- const format = 'YYYY-MM-DD HH:mm:ss';
31
- let start = moment.utc(date.format('YYYY-MM-DD' + ' ' + moment().format('HH:mm:ss.')), format);
32
- return start.toDate() <= now.toDate();
33
- }
34
- return false;
35
- }
36
- createInfo() {
37
- this.year = this.month.year();
38
- return {
39
- year: this.month.format('YYYY'),
40
- month: this.month.month()
41
- };
42
- }
43
- /**
44
- * Build a date pickers week.
45
- * @param firstDayOfWeek - start of the week
46
- * @returns
47
- */
48
- buildWeek(firstDayOfWeek) {
49
- let days = [];
50
- let date = moment(firstDayOfWeek);
51
- for (let i = 0; i < 7; i++) {
52
- let day = {
53
- number: date.date(),
54
- isCurrentMonth: date.month() === this.month.month(),
55
- isToday: date.isSame(new Date(), 'day'),
56
- date: date,
57
- disabled: this.isDisabledDate(date)
58
- };
59
- days.push(day);
60
- date = moment(date.toDate()).add(1, 'd');
61
- }
62
- return days;
63
- }
64
- buildMonth() {
65
- let weeks = [];
66
- // set current month to first day
67
- let dayOfMonth = moment(this.month).date(1).startOf('week');
68
- let done = false;
69
- //let date = start;
70
- let monthIndex = dayOfMonth.month();
71
- let count = 0;
72
- // split month into weeks
73
- while (!done) {
74
- weeks.push({ days: this.buildWeek(dayOfMonth.toDate()) });
75
- dayOfMonth.add(1, 'w');
76
- done = count++ > 2 && monthIndex !== dayOfMonth.month();
77
- monthIndex = dayOfMonth.month();
78
- }
79
- this.weeks = weeks;
80
- }
81
- setTime(time) {
82
- time.h = time.h < 0 ? time.h = 23 : time.h;
83
- time.h = time.h > 23 ? time.h = 0 : time.h;
84
- time.m = time.m < 0 ? time.m = 59 : time.m;
85
- time.m = time.m > 59 ? time.m = 0 : time.m;
86
- return time;
87
- }
88
- setYear(year, min, max) {
89
- if (year === undefined || year === null) {
90
- year = 0;
91
- }
92
- else if (year < min) {
93
- year = Math.abs(year);
94
- }
95
- else if (year > max) {
96
- year = +('' + year).slice(0, -1);
97
- }
98
- return year;
99
- }
100
- }
101
- DatepickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatepickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
102
- DatepickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatepickerService, providedIn: 'root' });
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatepickerService, decorators: [{
104
- type: Injectable,
105
- args: [{
106
- providedIn: 'root'
107
- }]
108
- }], ctorParameters: function () { return []; } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZm9ybS1lbGVtZW50cy9kYXRldGltZS9kYXRlcGlja2VyL3NlcnZpY2UvZGF0ZXBpY2tlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7O0FBQ2xDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztBQU92QixNQUFNLE9BQU8saUJBQWlCO0lBSTVCLElBQUksS0FBSyxDQUFDLEtBQUs7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxJQUFJLEtBQUssQ0FBQyxLQUFjO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUdELElBQUksSUFBSSxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBSUQ7UUFGQSxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLENBQUM7SUFHRCxjQUFjLENBQUMsSUFBSTtRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsSUFBSSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDbkIsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUM7WUFDckMsSUFBSSxL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O2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7XG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuaW1wb3J0IHtNb21lbnR9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1BpY2tlckRheSwgVGltZSwgV2Vla3N9IGZyb20gJy4uL2RhdGVwaWNrZXIuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlclNlcnZpY2Uge1xuXG5cbiAgcHJpdmF0ZSBfbW9udGg6IE1vbWVudDtcbiAgc2V0IG1vbnRoKG1vbnRoKSB7XG4gICAgdGhpcy5fbW9udGggPSBtb250aDtcbiAgfVxuXG4gIGdldCBtb250aCgpOiBNb21lbnQge1xuICAgIHJldHVybiB0aGlzLl9tb250aDtcbiAgfVxuXG4gIHByaXZhdGUgX3dlZWtzOiBXZWVrc1tdO1xuICBzZXQgd2Vla3Mod2Vla3M6IFdlZWtzW10pIHtcbiAgICB0aGlzLl93ZWVrcyA9IHdlZWtzO1xuICB9XG5cbiAgZ2V0IHdlZWtzKCk6IFdlZWtzW10ge1xuICAgIHJldHVybiB0aGlzLl93ZWVrcztcbiAgfVxuXG4gIHByaXZhdGUgX3llYXI6IG51bWJlcjtcbiAgc2V0IHllYXIoeWVhcjogbnVtYmVyKSB7XG4gICAgdGhpcy5feWVhciA9IHllYXI7XG4gIH1cblxuICBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl95ZWFyO1xuICB9XG5cbiAgZnV0dXJlT25seSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cblxuICBpc0Rpc2FibGVkRGF0ZShkYXRlKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZnV0dXJlT25seSkge1xuICAgICAgbGV0IG5vdyA9IG1vbWVudCgpO1xuICAgICAgY29uc3QgZm9ybWF0ID0gJ1lZWVktTU0tREQgSEg6bW06c3MnO1xuICAgICAgbGV0IHN0YXJ0ID0gbW9tZW50LnV0YyhkYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcgKyAnICcgKyBtb21lbnQoKS5mb3JtYXQoJ0hIOm1tOnNzLicpKSwgZm9ybWF0KTtcbiAgICAgIHJldHVybiBzdGFydC50b0RhdGUoKSA8PSBub3cudG9EYXRlKClcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY3JlYXRlSW5mbygpIHtcbiAgICB0aGlzLnllYXIgPSB0aGlzLm1vbnRoLnllYXIoKTtcbiAgICByZXR1cm4ge1xuICAgICAgeWVhcjogdGhpcy5tb250aC5mb3JtYXQoJ1lZWVknKSxcbiAgICAgIG1vbnRoOiB0aGlzLm1vbnRoLm1vbnRoKClcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGEgZGF0ZSBwaWNrZXJzIHdlZWsuXG4gICAqIEBwYXJhbSBmaXJzdERheU9mV2VlayAtIHN0YXJ0IG9mIHRoZSB3ZWVrXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBidWlsZFdlZWsoZmlyc3REYXlPZldlZWspIHtcbiAgICBsZXQgZGF5cyA9IFtdO1xuICAgIGxldCBkYXRlID0gbW9tZW50KGZpcnN0RGF5T2ZXZWVrKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgbGV0IGRheTogUGlja2VyRGF5ID0ge1xuICAgICAgICBudW1iZXI6IGRhdGUuZGF0ZSgpLFxuICAgICAgICBpc0N1cnJlbnRNb250aDogZGF0ZS5tb250aCgpID09PSB0aGlzLm1vbnRoLm1vbnRoKCksXG4gICAgICAgIGlzVG9kYXk6IGRhdGUuaXNTYW1lKG5ldyBEYXRlKCksICdkYXknKSxcbiAgICAgICAgZGF0ZTogZGF0ZSxcbiAgICAgICAgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZERhdGUoZGF0ZSlcbiAgICAgIH07XG4gICAgICBkYXlzLnB1c2goZGF5KTtcbiAgICAgIGRhdGUgPSBtb21lbnQoZGF0ZS50b0RhdGUoKSkuYWRkKDEsICdkJyk7XG4gICAgfVxuICAgIHJldHVybiBkYXlzO1xuICB9XG5cbiAgYnVpbGRNb250aCgpIHtcbiAgICBsZXQgd2Vla3MgPSBbXTtcbiAgICAvLyBzZXQgY3VycmVudCBtb250aCB0byBmaXJzdCBkYXlcbiAgICBsZXQgZGF5T2ZNb250aCA9IG1vbWVudCh0aGlzLm1vbnRoKS5kYXRlKDEpLnN0YXJ0T2YoJ3dlZWsnKTtcblxuICAgIGxldCBkb25lID0gZmFsc2U7XG4gICAgLy9sZXQgZGF0ZSA9IHN0YXJ0O1xuICAgIGxldCBtb250aEluZGV4ID0gZGF5T2ZNb250aC5tb250aCgpO1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICAvLyBzcGxpdCBtb250aCBpbnRvIHdlZWtzXG4gICAgd2hpbGUgKCFkb25lKSB7XG4gICAgICB3ZWVrcy5wdXNoKHtkYXlzOiB0aGlzLmJ1aWxkV2VlayhkYXlPZk1vbnRoLnRvRGF0ZSgpKX0pO1xuICAgICAgZGF5T2ZNb250aC5hZGQoMSwgJ3cnKTtcbiAgICAgIGRvbmUgPSBjb3VudCsrID4gMiAmJiBtb250aEluZGV4ICE9PSBkYXlPZk1vbnRoLm1vbnRoKCk7XG4gICAgICBtb250aEluZGV4ID0gZGF5T2ZNb250aC5tb250aCgpO1xuICAgIH1cbiAgICB0aGlzLndlZWtzID0gd2Vla3M7XG4gIH1cblxuICBzZXRUaW1lKHRpbWU6IFRpbWUpOiBUaW1lIHtcbiAgICB0aW1lLmggPSB0aW1lLmggPCAwID8gdGltZS5oID0gMjMgOiB0aW1lLmg7XG4gICAgdGltZS5oID0gdGltZS5oID4gMjMgPyB0aW1lLmggPSAwIDogdGltZS5oO1xuICAgIHRpbWUubSA9IHRpbWUubSA8IDAgPyB0aW1lLm0gPSA1OSA6IHRpbWUubTtcbiAgICB0aW1lLm0gPSB0aW1lLm0gPiA1OSA/IHRpbWUubSA9IDAgOiB0aW1lLm07XG5cbiAgICByZXR1cm4gdGltZTtcbiAgfVxuXG4gIHNldFllYXIoeWVhcjogbnVtYmVyLCBtaW4sIG1heCk6IG51bWJlciB7XG4gICAgaWYgKHllYXIgPT09IHVuZGVmaW5lZCB8fCB5ZWFyID09PSBudWxsKSB7XG4gICAgICB5ZWFyID0gMDtcbiAgICB9IGVsc2UgaWYgKHllYXIgPCBtaW4pIHtcbiAgICAgIHllYXIgPSBNYXRoLmFicyh5ZWFyKTtcbiAgICB9IGVsc2UgaWYgKHllYXIgPiBtYXgpIHtcbiAgICAgIHllYXIgPSArKCcnICsgeWVhcikuc2xpY2UoMCwgLTEpO1xuICAgIH1cbiAgICByZXR1cm4geWVhcjtcbiAgfVxufVxuIl19