@colijnit/sharedcomponents 1.0.60 → 1.0.62

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 (479) hide show
  1. package/README.md +24 -24
  2. package/bundles/colijnit-sharedcomponents.umd.js +9848 -9843
  3. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  4. package/colijnit-sharedcomponents.d.ts +91 -91
  5. package/colijnit-sharedcomponents.metadata.json +1 -1
  6. package/esm2015/colijnit-sharedcomponents.js +91 -91
  7. package/esm2015/lib/assets/dictionary/text.properties.js +11 -11
  8. package/esm2015/lib/businessobject/build-images-and-documentation-result.js +2 -2
  9. package/esm2015/lib/businessobject/co-document-right.bo.js +3 -3
  10. package/esm2015/lib/businessobject/drag-drop-container-element.js +2 -2
  11. package/esm2015/lib/businessobject/drag-drop-container.js +7 -7
  12. package/esm2015/lib/components/activity-list/activity-list.component.js +130 -130
  13. package/esm2015/lib/components/activity-list/activity-list.module.js +24 -24
  14. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +47 -47
  15. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +20 -20
  16. package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +61 -61
  17. package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +36 -36
  18. package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +56 -56
  19. package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +47 -47
  20. package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +68 -68
  21. package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +243 -243
  22. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +36 -36
  23. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +50 -50
  24. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +46 -46
  25. package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +61 -61
  26. package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +39 -39
  27. package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +35 -35
  28. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +64 -64
  29. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +48 -48
  30. package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +42 -42
  31. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +34 -34
  32. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +48 -48
  33. package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +107 -107
  34. package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +178 -178
  35. package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +34 -34
  36. package/esm2015/lib/components/date-planning/date-planning.component.js +113 -113
  37. package/esm2015/lib/components/date-planning/date-planning.module.js +63 -63
  38. package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -75
  39. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -44
  40. package/esm2015/lib/components/docsign/docsign.component.js +242 -242
  41. package/esm2015/lib/components/docsign/docsign.module.js +23 -23
  42. package/esm2015/lib/components/file-upload/file-upload.component.js +189 -189
  43. package/esm2015/lib/components/file-upload/file-upload.module.js +25 -25
  44. package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +397 -397
  45. package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +30 -30
  46. package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +469 -469
  47. package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +115 -115
  48. package/esm2015/lib/components/files-upload/files-upload.component.js +131 -131
  49. package/esm2015/lib/components/files-upload/files-upload.module.js +47 -47
  50. package/esm2015/lib/components/image-display/image-display.component.js +36 -36
  51. package/esm2015/lib/components/image-display/image-display.module.js +23 -23
  52. package/esm2015/lib/components/key-pad/key-pad.component.js +200 -200
  53. package/esm2015/lib/components/key-pad/key-pad.module.js +22 -22
  54. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +74 -74
  55. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +21 -21
  56. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +59 -59
  57. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +19 -19
  58. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +89 -89
  59. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +21 -21
  60. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +79 -79
  61. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +21 -21
  62. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +85 -85
  63. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +21 -21
  64. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +64 -64
  65. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +26 -26
  66. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +40 -40
  67. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +23 -23
  68. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +61 -61
  69. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +28 -28
  70. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +38 -38
  71. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +21 -21
  72. package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +7 -7
  73. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +258 -258
  74. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +35 -35
  75. package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +2 -2
  76. package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +59 -59
  77. package/esm2015/lib/components/simple-tags/simple-tags.component.js +229 -229
  78. package/esm2015/lib/components/simple-tags/simple-tags.module.js +26 -26
  79. package/esm2015/lib/components/statusbar/statusbar-popup.component.js +97 -97
  80. package/esm2015/lib/components/statusbar/statusbar.component.js +81 -81
  81. package/esm2015/lib/components/statusbar/statusbar.module.js +27 -27
  82. package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +47 -47
  83. package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +47 -47
  84. package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +47 -47
  85. package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +47 -47
  86. package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +47 -47
  87. package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +67 -67
  88. package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +53 -53
  89. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +240 -240
  90. package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +52 -52
  91. package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +39 -41
  92. package/esm2015/lib/components/stock/localization/translation.js +63 -63
  93. package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +33 -33
  94. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +49 -48
  95. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +457 -457
  96. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +243 -241
  97. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -2
  98. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +72 -72
  99. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +149 -149
  100. package/esm2015/lib/components/stock/stock.component.js +197 -193
  101. package/esm2015/lib/components/stock/stock.module.js +80 -80
  102. package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +23 -23
  103. package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +19 -19
  104. package/esm2015/lib/components/tab-bar/tab-bar.component.js +90 -88
  105. package/esm2015/lib/components/tab-bar/tab-bar.module.js +21 -21
  106. package/esm2015/lib/components/tab-bar/tab.interface.js +2 -2
  107. package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -80
  108. package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -26
  109. package/esm2015/lib/decorator/input-boolean.decorator.js +34 -34
  110. package/esm2015/lib/enum/calendar-view.enum.js +9 -9
  111. package/esm2015/lib/enum/document-email-report.enum.js +18 -18
  112. package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -13
  113. package/esm2015/lib/enum/file-type.js +14 -14
  114. package/esm2015/lib/enum/files-upload-config-objects.js +3 -3
  115. package/esm2015/lib/enum/gauge-color.enum.js +10 -10
  116. package/esm2015/lib/enum/icon.enum.js +44 -44
  117. package/esm2015/lib/enum/internal-param.enum.js +38 -38
  118. package/esm2015/lib/enum/keyboard-code.enum.js +32 -32
  119. package/esm2015/lib/enum/language-code.enum.js +8 -8
  120. package/esm2015/lib/enum/month.enum.js +17 -17
  121. package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -2
  122. package/esm2015/lib/enum/table-name.enum.js +86 -86
  123. package/esm2015/lib/enum/tag-category.enum.js +22 -22
  124. package/esm2015/lib/enum/tags-component-config-names.js +2 -2
  125. package/esm2015/lib/enum/thumb-three-way-state.js +19 -19
  126. package/esm2015/lib/enum/tile-size-type.js +7 -7
  127. package/esm2015/lib/enum/time-period.enum.js +11 -11
  128. package/esm2015/lib/event/co-drag-event.js +2 -2
  129. package/esm2015/lib/event/co-drop-event.js +2 -2
  130. package/esm2015/lib/interface/key-value-pair.js +2 -2
  131. package/esm2015/lib/interface/operation-callback-simple-function.js +4 -4
  132. package/esm2015/lib/localization/localization.module.js +19 -19
  133. package/esm2015/lib/localization/localize.pipe.js +26 -26
  134. package/esm2015/lib/localization/localize.service.js +30 -30
  135. package/esm2015/lib/localization/translation.js +3 -3
  136. package/esm2015/lib/model/agenda-event-per-day.model.js +6 -6
  137. package/esm2015/lib/model/agenda-event.model.js +8 -8
  138. package/esm2015/lib/model/agenda-null-objects.js +11 -11
  139. package/esm2015/lib/model/constant/all-months.js +17 -17
  140. package/esm2015/lib/model/date-range.js +5 -5
  141. package/esm2015/lib/model/day.model.js +7 -7
  142. package/esm2015/lib/model/icon-svg.js +43 -43
  143. package/esm2015/lib/model/month.model.js +11 -11
  144. package/esm2015/lib/model/send-method.js +8 -8
  145. package/esm2015/lib/model/settings.js +4 -4
  146. package/esm2015/lib/model/tag-tree-item.bo.js +16 -16
  147. package/esm2015/lib/model/time-window.bo.js +26 -26
  148. package/esm2015/lib/model/tree-object.js +15 -15
  149. package/esm2015/lib/model/week.model.js +6 -6
  150. package/esm2015/lib/model/weekday.model.js +10 -10
  151. package/esm2015/lib/pipe/array-number.pipe.js +15 -15
  152. package/esm2015/lib/pipe/file-type-image.pipe.js +51 -51
  153. package/esm2015/lib/pipe/master-pipes.js +9 -9
  154. package/esm2015/lib/pipe/ucfirst.pipe.js +16 -16
  155. package/esm2015/lib/service/dictionary.service.js +76 -76
  156. package/esm2015/lib/service/drag-drop.service.js +365 -365
  157. package/esm2015/lib/service/icon-cache.service.js +51 -51
  158. package/esm2015/lib/service/options.service.js +48 -48
  159. package/esm2015/lib/service/shared-connector.service.js +433 -433
  160. package/esm2015/lib/service/shared.service.js +60 -60
  161. package/esm2015/lib/service/stock.service.js +110 -110
  162. package/esm2015/lib/utils/array-utils.js +202 -202
  163. package/esm2015/lib/utils/calendar.utils.js +68 -68
  164. package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -2
  165. package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -2
  166. package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -50
  167. package/esm2015/lib/utils/date-utils.js +264 -264
  168. package/esm2015/lib/utils/enum-utils.js +128 -128
  169. package/esm2015/lib/utils/function/not-nill.function.js +5 -5
  170. package/esm2015/lib/utils/is-nill.function.js +5 -5
  171. package/esm2015/lib/utils/map-utils.js +41 -41
  172. package/esm2015/lib/utils/number-utils.js +390 -390
  173. package/esm2015/lib/utils/object-utils.js +278 -278
  174. package/esm2015/lib/utils/ref-code-utils.js +49 -49
  175. package/esm2015/lib/utils/string-utils.js +93 -93
  176. package/esm2015/public-api.js +31 -31
  177. package/fesm2015/colijnit-sharedcomponents.js +10332 -10326
  178. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  179. package/lib/assets/dictionary/text.properties.d.ts +3 -3
  180. package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -5
  181. package/lib/businessobject/co-document-right.bo.d.ts +6 -6
  182. package/lib/businessobject/drag-drop-container-element.d.ts +6 -6
  183. package/lib/businessobject/drag-drop-container.d.ts +6 -6
  184. package/lib/components/access/read-write-access.scss +25 -25
  185. package/lib/components/access/style/_layout.scss +23 -23
  186. package/lib/components/access/style/_material-definition.scss +12 -12
  187. package/lib/components/access/style/_theme.scss +4 -4
  188. package/lib/components/access/style/material.scss +4 -4
  189. package/lib/components/activity-list/activity-list.component.d.ts +33 -33
  190. package/lib/components/activity-list/activity-list.module.d.ts +2 -2
  191. package/lib/components/activity-list/style/_layout.scss +68 -68
  192. package/lib/components/activity-list/style/_theme.scss +4 -4
  193. package/lib/components/activity-list/style/material.scss +4 -4
  194. package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -14
  195. package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -2
  196. package/lib/components/app-file-dropzone/style/_layout.scss +61 -61
  197. package/lib/components/app-file-dropzone/style/_theme.scss +4 -4
  198. package/lib/components/app-file-dropzone/style/material.scss +4 -4
  199. package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +21 -21
  200. package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +7 -7
  201. package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +18 -18
  202. package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +13 -13
  203. package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +18 -18
  204. package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +48 -48
  205. package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +9 -9
  206. package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +8 -8
  207. package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +7 -7
  208. package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +10 -10
  209. package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +12 -12
  210. package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +12 -12
  211. package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +10 -10
  212. package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +9 -9
  213. package/lib/components/date-planning/component/agenda/style/_layout.scss +443 -443
  214. package/lib/components/date-planning/component/agenda/style/_material-definition.scss +12 -12
  215. package/lib/components/date-planning/component/agenda/style/_theme.scss +7 -7
  216. package/lib/components/date-planning/component/agenda/style/material.scss +5 -5
  217. package/lib/components/date-planning/component/agenda/view-select.component.d.ts +11 -11
  218. package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +9 -9
  219. package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +9 -9
  220. package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +23 -23
  221. package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +31 -31
  222. package/lib/components/date-planning/component/calendar/calendar.component.d.ts +10 -10
  223. package/lib/components/date-planning/component/calendar/style/_layout.scss +167 -167
  224. package/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -7
  225. package/lib/components/date-planning/component/calendar/style/_theme.scss +7 -7
  226. package/lib/components/date-planning/component/calendar/style/material.scss +5 -5
  227. package/lib/components/date-planning/date-planning.component.d.ts +28 -28
  228. package/lib/components/date-planning/date-planning.module.d.ts +2 -2
  229. package/lib/components/date-planning/style/_layout.scss +45 -45
  230. package/lib/components/date-planning/style/_theme.scss +5 -5
  231. package/lib/components/date-planning/style/material.scss +7 -7
  232. package/lib/components/docsign/component/signature/signature.component.d.ts +16 -16
  233. package/lib/components/docsign/component/signature/style/_layout.scss +40 -40
  234. package/lib/components/docsign/component/signature/style/_material-definition.scss +11 -11
  235. package/lib/components/docsign/component/signature/style/_theme.scss +13 -13
  236. package/lib/components/docsign/component/signature/style/material.scss +4 -4
  237. package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -12
  238. package/lib/components/docsign/component/signatures/style/_layout.scss +13 -13
  239. package/lib/components/docsign/component/signatures/style/_material-definition.scss +1 -1
  240. package/lib/components/docsign/component/signatures/style/_theme.scss +4 -4
  241. package/lib/components/docsign/component/signatures/style/material.scss +5 -5
  242. package/lib/components/docsign/docsign.component.d.ts +94 -94
  243. package/lib/components/docsign/docsign.module.d.ts +2 -2
  244. package/lib/components/docsign/style/_layout.scss +40 -40
  245. package/lib/components/docsign/style/_material-definition.scss +12 -12
  246. package/lib/components/docsign/style/_theme.scss +12 -12
  247. package/lib/components/docsign/style/material.scss +15 -15
  248. package/lib/components/file-upload/file-upload.component.d.ts +42 -42
  249. package/lib/components/file-upload/file-upload.module.d.ts +2 -2
  250. package/lib/components/file-upload/style/_layout.scss +59 -59
  251. package/lib/components/file-upload/style/_material-definition.scss +2 -2
  252. package/lib/components/file-upload/style/_theme.scss +4 -4
  253. package/lib/components/file-upload/style/material.scss +4 -4
  254. package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -75
  255. package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -2
  256. package/lib/components/file-upload-popup/style/_layout.scss +48 -48
  257. package/lib/components/file-upload-popup/style/_material-definition.scss +2 -2
  258. package/lib/components/file-upload-popup/style/_theme.scss +5 -5
  259. package/lib/components/file-upload-popup/style/material.scss +4 -4
  260. package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -98
  261. package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -34
  262. package/lib/components/files-upload/files-upload.component.d.ts +32 -32
  263. package/lib/components/files-upload/files-upload.module.d.ts +2 -2
  264. package/lib/components/files-upload/style/_layout.scss +49 -49
  265. package/lib/components/files-upload/style/_theme.scss +5 -5
  266. package/lib/components/files-upload/style/material.scss +4 -4
  267. package/lib/components/image-display/image-display.component.d.ts +14 -14
  268. package/lib/components/image-display/image-display.module.d.ts +2 -2
  269. package/lib/components/image-display/style/_layout.scss +56 -56
  270. package/lib/components/image-display/style/_material-definition.scss +4 -4
  271. package/lib/components/image-display/style/_theme.scss +6 -6
  272. package/lib/components/image-display/style/material.scss +3 -3
  273. package/lib/components/key-pad/key-pad.component.d.ts +38 -38
  274. package/lib/components/key-pad/key-pad.module.d.ts +2 -2
  275. package/lib/components/key-pad/style/_layout.scss +160 -160
  276. package/lib/components/key-pad/style/_material-definition.scss +19 -19
  277. package/lib/components/key-pad/style/_theme.scss +35 -35
  278. package/lib/components/key-pad/style/material.scss +4 -4
  279. package/lib/components/layout-switcher/layout-switcher.component.d.ts +16 -16
  280. package/lib/components/layout-switcher/layout-switcher.module.d.ts +2 -2
  281. package/lib/components/layout-switcher/style/_layout.scss +94 -94
  282. package/lib/components/layout-switcher/style/_material-definition.scss +16 -16
  283. package/lib/components/layout-switcher/style/_theme.scss +4 -4
  284. package/lib/components/layout-switcher/style/material.scss +6 -6
  285. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +11 -11
  286. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -2
  287. package/lib/components/linear-gauge/style/_layout.scss +20 -20
  288. package/lib/components/linear-gauge/style/_material-definition.scss +8 -8
  289. package/lib/components/linear-gauge/style/_theme.scss +4 -4
  290. package/lib/components/linear-gauge/style/material.scss +6 -6
  291. package/lib/components/login/style/_layout.scss +57 -57
  292. package/lib/components/login/style/_material-definition.scss +23 -23
  293. package/lib/components/login/style/_theme.scss +7 -7
  294. package/lib/components/login/style/material.scss +4 -4
  295. package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -27
  296. package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -2
  297. package/lib/components/multi-property-toggler/style/_layout.scss +24 -24
  298. package/lib/components/multi-property-toggler/style/_theme.scss +4 -4
  299. package/lib/components/multi-property-toggler/style/material.scss +4 -4
  300. package/lib/components/screen-config-generator/style/_layout.scss +95 -95
  301. package/lib/components/screen-config-generator/style/_theme.scss +4 -4
  302. package/lib/components/screen-config-generator/style/material.scss +4 -4
  303. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +19 -19
  304. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -2
  305. package/lib/components/send-method-dialog/components/layout-selection/style/_layout.scss +44 -44
  306. package/lib/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +19 -19
  307. package/lib/components/send-method-dialog/components/layout-selection/style/_theme.scss +17 -17
  308. package/lib/components/send-method-dialog/components/layout-selection/style/material.scss +4 -4
  309. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +19 -19
  310. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -2
  311. package/lib/components/send-method-dialog/components/printer-selection/style/_layout.scss +69 -69
  312. package/lib/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +37 -37
  313. package/lib/components/send-method-dialog/components/printer-selection/style/_theme.scss +23 -23
  314. package/lib/components/send-method-dialog/components/printer-selection/style/material.scss +4 -4
  315. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -14
  316. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -2
  317. package/lib/components/send-method-dialog/components/send-method-email/style/_layout.scss +29 -29
  318. package/lib/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +8 -8
  319. package/lib/components/send-method-dialog/components/send-method-email/style/_theme.scss +5 -5
  320. package/lib/components/send-method-dialog/components/send-method-email/style/material.scss +4 -4
  321. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -8
  322. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -2
  323. package/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -25
  324. package/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -5
  325. package/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -5
  326. package/lib/components/send-method-dialog/components/send-method-pdf/style/material.scss +4 -4
  327. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +13 -13
  328. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -2
  329. package/lib/components/send-method-dialog/components/send-method-printer/style/_layout.scss +30 -30
  330. package/lib/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +5 -5
  331. package/lib/components/send-method-dialog/components/send-method-printer/style/_theme.scss +5 -5
  332. package/lib/components/send-method-dialog/components/send-method-printer/style/material.scss +4 -4
  333. package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +12 -12
  334. package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +2 -2
  335. package/lib/components/send-method-dialog/components/signature-button/style/_layout.scss +28 -28
  336. package/lib/components/send-method-dialog/components/signature-button/style/_material-definition.scss +8 -8
  337. package/lib/components/send-method-dialog/components/signature-button/style/_theme.scss +4 -4
  338. package/lib/components/send-method-dialog/components/signature-button/style/material.scss +4 -4
  339. package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -5
  340. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +71 -71
  341. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -2
  342. package/lib/components/send-method-dialog/send-method-params.interface.d.ts +13 -13
  343. package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -23
  344. package/lib/components/send-method-dialog/style/_layout.scss +165 -165
  345. package/lib/components/send-method-dialog/style/_material-definition.scss +48 -48
  346. package/lib/components/send-method-dialog/style/_theme.scss +33 -33
  347. package/lib/components/send-method-dialog/style/material.scss +10 -10
  348. package/lib/components/simple-tags/simple-tags.component.d.ts +31 -31
  349. package/lib/components/simple-tags/simple-tags.module.d.ts +2 -2
  350. package/lib/components/simple-tags/style/_layout.scss +272 -272
  351. package/lib/components/simple-tags/style/_material-definition.scss +39 -39
  352. package/lib/components/simple-tags/style/_theme.scss +4 -4
  353. package/lib/components/simple-tags/style/material.scss +4 -4
  354. package/lib/components/statusbar/statusbar-popup.component.d.ts +21 -21
  355. package/lib/components/statusbar/statusbar.component.d.ts +26 -26
  356. package/lib/components/statusbar/statusbar.module.d.ts +2 -2
  357. package/lib/components/statusbar/style/_layout.scss +70 -70
  358. package/lib/components/statusbar/style/_material-definition.scss +23 -23
  359. package/lib/components/statusbar/style/_theme.scss +13 -13
  360. package/lib/components/statusbar/style/material.scss +5 -5
  361. package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +9 -9
  362. package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +9 -9
  363. package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +9 -9
  364. package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +11 -11
  365. package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +9 -9
  366. package/lib/components/stock/components/order-tab/order-tab.component.d.ts +20 -20
  367. package/lib/components/stock/components/stock-history/stock-history.component.d.ts +13 -13
  368. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +50 -50
  369. package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +11 -11
  370. package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +7 -9
  371. package/lib/components/stock/localization/translation.d.ts +60 -60
  372. package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +7 -7
  373. package/lib/components/stock/stock-information/stock-information.component.d.ts +9 -8
  374. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +75 -75
  375. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +56 -56
  376. package/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts +4 -4
  377. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -18
  378. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +42 -42
  379. package/lib/components/stock/stock.component.d.ts +58 -57
  380. package/lib/components/stock/stock.module.d.ts +2 -2
  381. package/lib/components/stock/style/_layout.scss +286 -286
  382. package/lib/components/stock/style/_material-definition.scss +25 -25
  383. package/lib/components/stock/style/_theme.scss +5 -5
  384. package/lib/components/stock/style/material.scss +4 -4
  385. package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +4 -4
  386. package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +2 -2
  387. package/lib/components/stock-statusbar/style/_layout.scss +24 -24
  388. package/lib/components/stock-statusbar/style/material.scss +4 -4
  389. package/lib/components/tab-bar/style/_layout.scss +78 -78
  390. package/lib/components/tab-bar/style/_material-definition.scss +6 -6
  391. package/lib/components/tab-bar/style/material.scss +4 -4
  392. package/lib/components/tab-bar/tab-bar.component.d.ts +21 -21
  393. package/lib/components/tab-bar/tab-bar.module.d.ts +2 -2
  394. package/lib/components/tab-bar/tab.interface.d.ts +5 -5
  395. package/lib/components/tags/component/style/_layout.scss +67 -67
  396. package/lib/components/tags/component/style/_material-definition.scss +1 -1
  397. package/lib/components/tags/component/style/_theme.scss +8 -8
  398. package/lib/components/tags/component/style/material.scss +3 -3
  399. package/lib/components/tags/component/tag-join-label/style/_layout.scss +97 -97
  400. package/lib/components/tags/component/tag-join-label/style/_material-definition.scss +4 -4
  401. package/lib/components/tags/component/tag-join-label/style/_theme.scss +8 -8
  402. package/lib/components/tags/component/tag-join-label/style/material.scss +3 -3
  403. package/lib/components/tile-renderer/style/_layout.scss +90 -90
  404. package/lib/components/tile-renderer/style/_theme.scss +4 -4
  405. package/lib/components/tile-renderer/style/material.scss +4 -4
  406. package/lib/components/tile-renderer/tile-render.component.d.ts +31 -31
  407. package/lib/components/tile-renderer/tile-render.module.d.ts +2 -2
  408. package/lib/decorator/input-boolean.decorator.d.ts +8 -8
  409. package/lib/enum/calendar-view.enum.d.ts +7 -7
  410. package/lib/enum/document-email-report.enum.d.ts +15 -15
  411. package/lib/enum/domain-multiple-name.enum.d.ts +10 -10
  412. package/lib/enum/file-type.d.ts +7 -7
  413. package/lib/enum/files-upload-config-objects.d.ts +22 -22
  414. package/lib/enum/gauge-color.enum.d.ts +8 -8
  415. package/lib/enum/icon.enum.d.ts +42 -42
  416. package/lib/enum/internal-param.enum.d.ts +34 -34
  417. package/lib/enum/keyboard-code.enum.d.ts +30 -30
  418. package/lib/enum/language-code.enum.d.ts +6 -6
  419. package/lib/enum/month.enum.d.ts +14 -14
  420. package/lib/enum/read-write-access-config-names.enum.d.ts +4 -4
  421. package/lib/enum/table-name.enum.d.ts +84 -84
  422. package/lib/enum/tag-category.enum.d.ts +19 -19
  423. package/lib/enum/tags-component-config-names.d.ts +4 -4
  424. package/lib/enum/thumb-three-way-state.d.ts +6 -6
  425. package/lib/enum/tile-size-type.d.ts +4 -4
  426. package/lib/enum/time-period.enum.d.ts +8 -8
  427. package/lib/event/co-drag-event.d.ts +5 -5
  428. package/lib/event/co-drop-event.d.ts +8 -8
  429. package/lib/interface/key-value-pair.d.ts +4 -4
  430. package/lib/interface/operation-callback-simple-function.d.ts +4 -4
  431. package/lib/localization/localization.module.d.ts +2 -2
  432. package/lib/localization/localize.pipe.d.ts +7 -7
  433. package/lib/localization/localize.service.d.ts +7 -7
  434. package/lib/localization/translation.d.ts +2 -2
  435. package/lib/model/agenda-event-per-day.model.d.ts +5 -5
  436. package/lib/model/agenda-event.model.d.ts +17 -17
  437. package/lib/model/agenda-null-objects.d.ts +10 -10
  438. package/lib/model/constant/all-months.d.ts +2 -2
  439. package/lib/model/date-range.d.ts +7 -7
  440. package/lib/model/day.model.d.ts +8 -8
  441. package/lib/model/icon-svg.d.ts +4 -4
  442. package/lib/model/month.model.d.ts +5 -5
  443. package/lib/model/send-method.d.ts +7 -7
  444. package/lib/model/settings.d.ts +3 -3
  445. package/lib/model/tag-tree-item.bo.d.ts +18 -18
  446. package/lib/model/time-window.bo.d.ts +13 -13
  447. package/lib/model/tree-object.d.ts +8 -8
  448. package/lib/model/week.model.d.ts +4 -4
  449. package/lib/model/weekday.model.d.ts +16 -16
  450. package/lib/pipe/array-number.pipe.d.ts +4 -4
  451. package/lib/pipe/file-type-image.pipe.d.ts +12 -12
  452. package/lib/pipe/master-pipes.d.ts +1 -1
  453. package/lib/pipe/ucfirst.pipe.d.ts +4 -4
  454. package/lib/service/dictionary.service.d.ts +21 -21
  455. package/lib/service/drag-drop.service.d.ts +86 -86
  456. package/lib/service/icon-cache.service.d.ts +18 -18
  457. package/lib/service/options.service.d.ts +13 -13
  458. package/lib/service/shared-connector.service.d.ts +55 -55
  459. package/lib/service/shared.service.d.ts +18 -18
  460. package/lib/service/stock.service.d.ts +41 -41
  461. package/lib/style/_mixin.scss +14 -14
  462. package/lib/style/_variables.scss +21 -21
  463. package/lib/style/sharedcomponents-globals.scss +10 -10
  464. package/lib/utils/array-utils.d.ts +63 -63
  465. package/lib/utils/calendar.utils.d.ts +10 -10
  466. package/lib/utils/check-precision-and-scale-result.d.ts +4 -4
  467. package/lib/utils/check-within-stepped-bounds-result.d.ts +8 -8
  468. package/lib/utils/co-document-shared-field-logic.d.ts +7 -7
  469. package/lib/utils/date-utils.d.ts +44 -44
  470. package/lib/utils/enum-utils.d.ts +31 -31
  471. package/lib/utils/function/not-nill.function.d.ts +1 -1
  472. package/lib/utils/is-nill.function.d.ts +1 -1
  473. package/lib/utils/map-utils.d.ts +16 -16
  474. package/lib/utils/number-utils.d.ts +125 -125
  475. package/lib/utils/object-utils.d.ts +40 -40
  476. package/lib/utils/ref-code-utils.d.ts +10 -10
  477. package/lib/utils/string-utils.d.ts +38 -38
  478. package/package.json +6 -6
  479. package/public-api.d.ts +27 -27
@@ -1,178 +1,178 @@
1
- import { Component, EventEmitter, Inject, Input, LOCALE_ID, Output, ViewEncapsulation } from "@angular/core";
2
- import { ArrayNumberPipe } from "../../../../pipe/array-number.pipe";
3
- import { DatePipe } from "@angular/common";
4
- import { DateUtils } from "../../../../utils/date-utils";
5
- import { CalendarView } from "../../../../enum/calendar-view.enum";
6
- import { LanguageCode } from "../../../../enum/language-code.enum";
7
- //fixme we don't have a todayDayStamp field but our template references it
8
- export class CalendarViewComponent {
9
- constructor(_locale) {
10
- this._locale = _locale;
11
- this.selectedDateChange = new EventEmitter();
12
- this.trackByStamp = (index, stamp) => {
13
- return stamp && stamp.timestamp || index;
14
- };
15
- this.trackByWeek = (index, week) => {
16
- return week && week[0].week || index;
17
- };
18
- this.weekDayLabel = [];
19
- this.weeks = [];
20
- this._selectedDate = new Date();
21
- this._view = CalendarView.WeekView;
22
- this.selectedDate.setHours(0, 0, 0, 0);
23
- this._setLabels();
24
- }
25
- set view(value) {
26
- this._view = value;
27
- this._selectDays();
28
- }
29
- get view() {
30
- return this._view;
31
- }
32
- set selectedDate(value) {
33
- this._selectedDate = value;
34
- this._selectedDate.setHours(0, 0, 0, 0);
35
- this._prepareWeeks();
36
- }
37
- get selectedDate() {
38
- return this._selectedDate;
39
- }
40
- onDateClick(date) {
41
- this.selectedDate = new Date(date.timestamp);
42
- this.selectedDateChange.emit(this.selectedDate);
43
- this._selectDays();
44
- }
45
- _setLabels() {
46
- const datePipe = new DatePipe(this._locale);
47
- const currentDay = this.selectedDate.getDay();
48
- const startWeekDate = new Date(this.selectedDate.getTime());
49
- startWeekDate.setDate(startWeekDate.getDate() - currentDay - 1);
50
- this.weekDayLabel = new ArrayNumberPipe().transform(7).map(() => {
51
- startWeekDate.setDate(startWeekDate.getDate() + 1);
52
- return datePipe.transform(startWeekDate, "E");
53
- });
54
- this.weekDayLabel.push(this.weekDayLabel.shift());
55
- }
56
- _prepareWeeks() {
57
- this.weeks.length = 0;
58
- const date = new Date(this.selectedDate.getTime());
59
- date.setHours(0, 0, 0, 0);
60
- // go to last day of month
61
- date.setMonth(date.getMonth() + 1);
62
- date.setDate(0);
63
- const monthEndDay = date.getDay();
64
- const monthEndDate = date.getDate();
65
- // days after end of month
66
- const daysAfter = !monthEndDay ? 0 : 7 - monthEndDay;
67
- // go to first day of month
68
- date.setDate(1);
69
- const monthBeginDay = date.getDay();
70
- // days before start of month
71
- const daysBefore = !monthBeginDay ? 6 : monthBeginDay - 1;
72
- // go to start of calendar view
73
- date.setDate(-daysBefore + 1);
74
- // amount of weeks to display
75
- const weekCount = Math.ceil((daysBefore + daysAfter + monthEndDate) / 7);
76
- const weekStart = DateUtils.GetWeekNumber(date);
77
- const weekEnd = weekStart + weekCount - 1;
78
- // iterate over week count
79
- for (let i = weekStart; i <= weekEnd; i++) {
80
- let week = i;
81
- // only recalculate week when it's necessary
82
- if (weekStart > 50) {
83
- week = DateUtils.GetWeekNumber(date);
84
- }
85
- const days = [];
86
- // iterate over 7 days
87
- for (let ii = 1; ii <= 7; ii++) {
88
- // check if we are in the current month
89
- let inMonth = true;
90
- if (i === weekStart) {
91
- inMonth = ii > daysBefore;
92
- }
93
- else if (i === weekEnd) {
94
- inMonth = ii <= 7 - daysAfter;
95
- }
96
- const timestamp = date.getTime();
97
- // add dateStamp to date array
98
- days.push({
99
- week: week,
100
- inMonth: inMonth,
101
- day: date.getDate(),
102
- timestamp: timestamp,
103
- selected: this.selectedDate.getTime() === timestamp
104
- });
105
- // go one day further
106
- date.setDate(date.getDate() + 1);
107
- }
108
- this.weeks.push(days);
109
- }
110
- this._selectDays();
111
- }
112
- _selectDays() {
113
- this._resetSelection();
114
- if (!this.selectedDate) {
115
- return;
116
- }
117
- const weekNumber = DateUtils.GetWeekNumber(this.selectedDate);
118
- const len = this.weeks.length;
119
- for (let i = 0; i < len; i++) {
120
- const leni = this.weeks[i].length;
121
- for (let ii = 0; ii < leni; ii++) {
122
- if (this.weeks[i][ii].inMonth && this.view === CalendarView.MonthView) {
123
- this.weeks[i][ii].selected = true;
124
- }
125
- else if (this.weeks[i][ii].week === weekNumber && this.view === CalendarView.WeekView) {
126
- this.weeks[i][ii].selected = true;
127
- }
128
- else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.WeekSelectView) {
129
- this.weeks[i][ii].selected = true;
130
- }
131
- else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.DayView) {
132
- this.weeks[i][ii].selected = true;
133
- }
134
- }
135
- }
136
- }
137
- _resetSelection() {
138
- const len = this.weeks.length;
139
- for (let i = 0; i < len; i++) {
140
- const leni = this.weeks[i].length;
141
- for (let ii = 0; ii < leni; ii++) {
142
- this.weeks[i][ii].selected = false;
143
- }
144
- }
145
- }
146
- }
147
- CalendarViewComponent.decorators = [
148
- { type: Component, args: [{
149
- selector: "calendar-view",
150
- template: `
151
- <div class="calendar-content">
152
- <div>
153
- <div class="week-day-header week-row">
154
- <div class="week-acronym"></div>
155
- <div *ngFor="let weekDay of weekDayLabel" [textContent]="weekDay | ucfirst"
156
- class="week-day-label"></div>
157
- </div>
158
- <div class="week-row" *ngFor="let week of weeks;trackBy:trackByWeek">
159
- <div [textContent]="week[0].week" class="week-number"></div>
160
- <div *ngFor="let date of week;trackBy:trackByStamp" class="week-day"
161
- (click)="onDateClick(date)" [textContent]="date.day">
162
- </div>
163
- </div>
164
- </div>
165
- </div>
166
- `,
167
- encapsulation: ViewEncapsulation.None
168
- },] }
169
- ];
170
- CalendarViewComponent.ctorParameters = () => [
171
- { type: LanguageCode, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
172
- ];
173
- CalendarViewComponent.propDecorators = {
174
- view: [{ type: Input }],
175
- selectedDate: [{ type: Input }],
176
- selectedDateChange: [{ type: Output }]
177
- };
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9jYWxlbmRhci9jYWxlbmRhci12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQXlCakUsMEVBQTBFO0FBQzFFLE1BQU0sT0FBTyxxQkFBcUI7SUEwQ2hDLFlBQ3NDLE9BQXFCO1FBQXJCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFuQnBELHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxFLGlCQUFZLEdBQWEsQ0FBQyxLQUFhLEVBQUUsS0FBZ0IsRUFBVSxFQUFFO1lBQzFFLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQzNDLENBQUMsQ0FBQTtRQUVNLGdCQUFXLEdBQWEsQ0FBQyxLQUFhLEVBQUUsSUFBaUIsRUFBVSxFQUFFO1lBQzFFLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO1FB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QUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsT0FBTyxFQUFFO29CQUM1RyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7aUJBQ25DO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDMUMsS0FBSyxJQUFJLEVBQUUsR0FBVyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDOzs7WUE3TEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7S0FnQlA7Z0JBQ0gsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXhCTyxZQUFZLHVCQXFFZixNQUFNLFNBQUMsU0FBUzs7O21CQXpDbEIsS0FBSzsyQkFVTCxLQUFLO2lDQVdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBMT0NBTEVfSUQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0FycmF5TnVtYmVyUGlwZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3BpcGUvYXJyYXktbnVtYmVyLnBpcGVcIjtcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7RGF0ZVV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvZGF0ZS11dGlsc1wiO1xuaW1wb3J0IHtDYWxlbmRhclZpZXd9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2NhbGVuZGFyLXZpZXcuZW51bVwiO1xuaW1wb3J0IHtMYW5ndWFnZUNvZGV9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2xhbmd1YWdlLWNvZGUuZW51bVwiO1xuXG50eXBlIERhdGVTdGFtcCA9IHsgZGF5OiBudW1iZXIsIGluTW9udGg6IGJvb2xlYW4sIHRpbWVzdGFtcDogbnVtYmVyLCB3ZWVrOiBudW1iZXIsIHNlbGVjdGVkOiBib29sZWFuIH07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjYWxlbmRhci12aWV3XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLWRheS1oZWFkZXIgd2Vlay1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstYWNyb255bVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlMYWJlbFwiIFt0ZXh0Q29udGVudF09XCJ3ZWVrRGF5IHwgdWNmaXJzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3ZWVrLWRheS1sYWJlbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3ZWVrLXJvd1wiICpuZ0Zvcj1cImxldCB3ZWVrIG9mIHdlZWtzO3RyYWNrQnk6dHJhY2tCeVdlZWtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbdGV4dENvbnRlbnRdPVwid2Vla1swXS53ZWVrXCIgY2xhc3M9XCJ3ZWVrLW51bWJlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXRlIG9mIHdlZWs7dHJhY2tCeTp0cmFja0J5U3RhbXBcIiBjbGFzcz1cIndlZWstZGF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EYXRlQ2xpY2soZGF0ZSlcIiBbdGV4dENvbnRlbnRdPVwiZGF0ZS5kYXlcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbi8vZml4bWUgd2UgZG9uJ3QgaGF2ZSBhIHRvZGF5RGF5U3RhbXAgZmllbGQgYnV0IG91ciB0ZW1wbGF0ZSByZWZlcmVuY2VzIGl0XG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJWaWV3Q29tcG9uZW50IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHZpZXcodmFsdWU6IENhbGVuZGFyVmlldykge1xuICAgIHRoaXMuX3ZpZXcgPSB2YWx1ZTtcbiAgICB0aGlzLl9zZWxlY3REYXlzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQ2FsZW5kYXJWaWV3IHtcbiAgICByZXR1cm4gdGhpcy5fdmlldztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlKSB7XG4gICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgdGhpcy5fc2VsZWN0ZWREYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgIHRoaXMuX3ByZXBhcmVXZWVrcygpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgcHVibGljIHRyYWNrQnlTdGFtcDogRnVuY3Rpb24gPSAoaW5kZXg6IG51bWJlciwgc3RhbXA6IERhdGVTdGFtcCk6IG51bWJlciA9PiB7XG4gICAgcmV0dXJuIHN0YW1wICYmIHN0YW1wLnRpbWVzdGFtcCB8fCBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5V2VlazogRnVuY3Rpb24gPSAoaW5kZXg6IG51bWJlciwgd2VlazogRGF0ZVN0YW1wW10pOiBudW1iZXIgPT4ge1xuICAgIHJldHVybiB3ZWVrICYmIHdlZWtbMF0ud2VlayB8fCBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB3ZWVrRGF5TGFiZWw6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIHdlZWtzOiBEYXRlU3RhbXBbXVtdID0gW107XG5cbiAgcHJpdmF0ZSBfc2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcblxuICBwcml2YXRlIF92aWV3OiBDYWxlbmRhclZpZXcgPSBDYWxlbmRhclZpZXcuV2Vla1ZpZXc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgcmVhZG9ubHkgX2xvY2FsZTogTGFuZ3VhZ2VDb2RlLFxuICApIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICB0aGlzLl9zZXRMYWJlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRhdGVDbGljayhkYXRlOiBEYXRlU3RhbXApOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUudGltZXN0YW1wKTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB0aGlzLl9zZWxlY3REYXlzKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRMYWJlbHMoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZVBpcGU6IERhdGVQaXBlID0gbmV3IERhdGVQaXBlKHRoaXMuX2xvY2FsZSk7XG5cbiAgICBjb25zdCBjdXJyZW50RGF5OiBudW1iZXIgPSB0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXkoKTtcbiAgICBjb25zdCBzdGFydFdlZWtEYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpKTtcbiAgICBzdGFydFdlZWtEYXRlLnNldERhdGUoc3RhcnRXZWVrRGF0ZS5nZXREYXRlKCkgLSBjdXJyZW50RGF5IC0gMSk7XG5cbiAgICB0aGlzLndlZWtEYXlMYWJlbCA9IG5ldyBBcnJheU51bWJlclBpcGUoKS50cmFuc2Zvcm0oNykubWFwKCgpID0+IHtcbiAgICAgIHN0YXJ0V2Vla0RhdGUuc2V0RGF0ZShzdGFydFdlZWtEYXRlLmdldERhdGUoKSArIDEpO1xuICAgICAgcmV0dXJuIGRhdGVQaXBlLnRyYW5zZm9ybShzdGFydFdlZWtEYXRlLCBcIkVcIik7XG4gICAgfSk7XG4gICAgdGhpcy53ZWVrRGF5TGFiZWwucHVzaCh0aGlzLndlZWtEYXlMYWJlbC5zaGlmdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ByZXBhcmVXZWVrcygpOiB2b2lkIHtcbiAgICB0aGlzLndlZWtzLmxlbmd0aCA9IDA7XG5cbiAgICBjb25zdCBkYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpKTtcbiAgICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgLy8gZ28gdG8gbGFzdCBkYXkgb2YgbW9udGhcbiAgICBkYXRlLnNldE1vbnRoKGRhdGUuZ2V0TW9udGgoKSArIDEpO1xuICAgIGRhdGUuc2V0RGF0ZSgwKTtcbiAgICBjb25zdCBtb250aEVuZERheTogbnVtYmVyID0gZGF0ZS5nZXREYXkoKTtcbiAgICBjb25zdCBtb250aEVuZERhdGU6IG51bWJlciA9IGRhdGUuZ2V0RGF0ZSgpO1xuXG4gICAgLy8gZGF5cyBhZnRlciBlbmQgb2YgbW9udGhcbiAgICBjb25zdCBkYXlzQWZ0ZXI6IG51bWJlciA9ICFtb250aEVuZERheSA/IDAgOiA3IC0gbW9udGhFbmREYXk7XG5cbiAgICAvLyBnbyB0byBmaXJzdCBkYXkgb2YgbW9udGhcbiAgICBkYXRlLnNldERhdGUoMSk7XG4gICAgY29uc3QgbW9udGhCZWdpbkRheTogbnVtYmVyID0gZGF0ZS5nZXREYXkoKTtcblxuICAgIC8vIGRheXMgYmVmb3JlIHN0YXJ0IG9mIG1vbnRoXG4gICAgY29uc3QgZGF5c0JlZm9yZTogbnVtYmVyID0gIW1vbnRoQmVnaW5EYXkgPyA2IDogbW9udGhCZWdpbkRheSAtIDE7XG5cbiAgICAvLyBnbyB0byBzdGFydCBvZiBjYWxlbmRhciB2aWV3XG4gICAgZGF0ZS5zZXREYXRlKC1kYXlzQmVmb3JlICsgMSk7XG5cbiAgICAvLyBhbW91bnQgb2Ygd2Vla3MgdG8gZGlzcGxheVxuICAgIGNvbnN0IHdlZWtDb3VudDogbnVtYmVyID0gTWF0aC5jZWlsKChkYXlzQmVmb3JlICsgZGF5c0FmdGVyICsgbW9udGhFbmREYXRlKSAvIDcpO1xuICAgIGNvbnN0IHdlZWtTdGFydDogbnVtYmVyID0gRGF0ZVV0aWxzLkdldFdlZWtOdW1iZXIoZGF0ZSk7XG4gICAgY29uc3Qgd2Vla0VuZDogbnVtYmVyID0gd2Vla1N0YXJ0ICsgd2Vla0NvdW50IC0gMTtcblxuICAgIC8vIGl0ZXJhdGUgb3ZlciB3ZWVrIGNvdW50XG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gd2Vla1N0YXJ0OyBpIDw9IHdlZWtFbmQ7IGkrKykge1xuICAgICAgbGV0IHdlZWs6IG51bWJlciA9IGk7XG5cbiAgICAgIC8vIG9ubHkgcmVjYWxjdWxhdGUgd2VlayB3aGVuIGl0J3MgbmVjZXNzYXJ5XG4gICAgICBpZiAod2Vla1N0YXJ0ID4gNTApIHtcbiAgICAgICAgd2VlayA9IERhdGVVdGlscy5HZXRXZWVrTnVtYmVyKGRhdGUpO1xuICAgICAgfVxuICAgICAgY29uc3QgZGF5czogRGF0ZVN0YW1wW10gPSBbXTtcblxuICAgICAgLy8gaXRlcmF0ZSBvdmVyIDcgZGF5c1xuICAgICAgZm9yIChsZXQgaWk6IG51bWJlciA9IDE7IGlpIDw9IDc7IGlpKyspIHtcbiAgICAgICAgLy8gY2hlY2sgaWYgd2UgYXJlIGluIHRoZSBjdXJyZW50IG1vbnRoXG4gICAgICAgIGxldCBpbk1vbnRoOiBib29sZWFuID0gdHJ1ZTtcbiAgICAgICAgaWYgKGkgPT09IHdlZWtTdGFydCkge1xuICAgICAgICAgIGluTW9udGggPSBpaSA+IGRheXNCZWZvcmU7XG4gICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gd2Vla0VuZCkge1xuICAgICAgICAgIGluTW9udGggPSBpaSA8PSA3IC0gZGF5c0FmdGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGltZXN0YW1wOiBudW1iZXIgPSBkYXRlLmdldFRpbWUoKTtcbiAgICAgICAgLy8gYWRkIGRhdGVTdGFtcCB0byBkYXRlIGFycmF5XG4gICAgICAgIGRheXMucHVzaCh7XG4gICAgICAgICAgd2Vlazogd2VlayxcbiAgICAgICAgICBpbk1vbnRoOiBpbk1vbnRoLFxuICAgICAgICAgIGRheTogZGF0ZS5nZXREYXRlKCksXG4gICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAsXG4gICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWREYXRlLmdldFRpbWUoKSA9PT0gdGltZXN0YW1wXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBnbyBvbmUgZGF5IGZ1cnRoZXJcbiAgICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMSk7XG4gICAgICB9XG4gICAgICB0aGlzLndlZWtzLnB1c2goZGF5cyk7XG4gICAgfVxuICAgIHRoaXMuX3NlbGVjdERheXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdERheXMoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHdlZWtOdW1iZXI6IG51bWJlciA9IERhdGVVdGlscy5HZXRXZWVrTnVtYmVyKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBjb25zdCBsZW46IG51bWJlciA9IHRoaXMud2Vla3MubGVuZ3RoO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgbGVuaTogbnVtYmVyID0gdGhpcy53ZWVrc1tpXS5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpaTogbnVtYmVyID0gMDsgaWkgPCBsZW5pOyBpaSsrKSB7XG4gICAgICAgIGlmICh0aGlzLndlZWtzW2ldW2lpXS5pbk1vbnRoICYmIHRoaXMudmlldyA9PT0gQ2FsZW5kYXJWaWV3Lk1vbnRoVmlldykge1xuICAgICAgICAgIHRoaXMud2Vla3NbaV1baWldLnNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLndlZWtzW2ldW2lpXS53ZWVrID09PSB3ZWVrTnVtYmVyICYmIHRoaXMudmlldyA9PT0gQ2FsZW5kYXJWaWV3LldlZWtWaWV3KSB7XG4gICAgICAgICAgdGhpcy53ZWVrc1tpXVtpaV0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMud2Vla3NbaV1baWldLnRpbWVzdGFtcCA9PT0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpICYmIHRoaXMudmlldyA9PT0gQ2FsZW5kYXJWaWV3LldlZWtTZWxlY3RWaWV3KSB7XG4gICAgICAgICAgdGhpcy53ZWVrc1tpXVtpaV0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMud2Vla3NbaV1baWldLnRpbWVzdGFtcCA9PT0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpICYmIHRoaXMudmlldyA9PT0gQ2FsZW5kYXJWaWV3LkRheVZpZXcpIHtcbiAgICAgICAgICB0aGlzLndlZWtzW2ldW2lpXS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBsZW46IG51bWJlciA9IHRoaXMud2Vla3MubGVuZ3RoO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgbGVuaTogbnVtYmVyID0gdGhpcy53ZWVrc1tpXS5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpaTogbnVtYmVyID0gMDsgaWkgPCBsZW5pOyBpaSsrKSB7XG4gICAgICAgIHRoaXMud2Vla3NbaV1baWldLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
1
+ import { Component, EventEmitter, Inject, Input, LOCALE_ID, Output, ViewEncapsulation } from "@angular/core";
2
+ import { ArrayNumberPipe } from "../../../../pipe/array-number.pipe";
3
+ import { DatePipe } from "@angular/common";
4
+ import { DateUtils } from "../../../../utils/date-utils";
5
+ import { CalendarView } from "../../../../enum/calendar-view.enum";
6
+ import { LanguageCode } from "../../../../enum/language-code.enum";
7
+ //fixme we don't have a todayDayStamp field but our template references it
8
+ export class CalendarViewComponent {
9
+ constructor(_locale) {
10
+ this._locale = _locale;
11
+ this.selectedDateChange = new EventEmitter();
12
+ this.trackByStamp = (index, stamp) => {
13
+ return stamp && stamp.timestamp || index;
14
+ };
15
+ this.trackByWeek = (index, week) => {
16
+ return week && week[0].week || index;
17
+ };
18
+ this.weekDayLabel = [];
19
+ this.weeks = [];
20
+ this._selectedDate = new Date();
21
+ this._view = CalendarView.WeekView;
22
+ this.selectedDate.setHours(0, 0, 0, 0);
23
+ this._setLabels();
24
+ }
25
+ set view(value) {
26
+ this._view = value;
27
+ this._selectDays();
28
+ }
29
+ get view() {
30
+ return this._view;
31
+ }
32
+ set selectedDate(value) {
33
+ this._selectedDate = value;
34
+ this._selectedDate.setHours(0, 0, 0, 0);
35
+ this._prepareWeeks();
36
+ }
37
+ get selectedDate() {
38
+ return this._selectedDate;
39
+ }
40
+ onDateClick(date) {
41
+ this.selectedDate = new Date(date.timestamp);
42
+ this.selectedDateChange.emit(this.selectedDate);
43
+ this._selectDays();
44
+ }
45
+ _setLabels() {
46
+ const datePipe = new DatePipe(this._locale);
47
+ const currentDay = this.selectedDate.getDay();
48
+ const startWeekDate = new Date(this.selectedDate.getTime());
49
+ startWeekDate.setDate(startWeekDate.getDate() - currentDay - 1);
50
+ this.weekDayLabel = new ArrayNumberPipe().transform(7).map(() => {
51
+ startWeekDate.setDate(startWeekDate.getDate() + 1);
52
+ return datePipe.transform(startWeekDate, "E");
53
+ });
54
+ this.weekDayLabel.push(this.weekDayLabel.shift());
55
+ }
56
+ _prepareWeeks() {
57
+ this.weeks.length = 0;
58
+ const date = new Date(this.selectedDate.getTime());
59
+ date.setHours(0, 0, 0, 0);
60
+ // go to last day of month
61
+ date.setMonth(date.getMonth() + 1);
62
+ date.setDate(0);
63
+ const monthEndDay = date.getDay();
64
+ const monthEndDate = date.getDate();
65
+ // days after end of month
66
+ const daysAfter = !monthEndDay ? 0 : 7 - monthEndDay;
67
+ // go to first day of month
68
+ date.setDate(1);
69
+ const monthBeginDay = date.getDay();
70
+ // days before start of month
71
+ const daysBefore = !monthBeginDay ? 6 : monthBeginDay - 1;
72
+ // go to start of calendar view
73
+ date.setDate(-daysBefore + 1);
74
+ // amount of weeks to display
75
+ const weekCount = Math.ceil((daysBefore + daysAfter + monthEndDate) / 7);
76
+ const weekStart = DateUtils.GetWeekNumber(date);
77
+ const weekEnd = weekStart + weekCount - 1;
78
+ // iterate over week count
79
+ for (let i = weekStart; i <= weekEnd; i++) {
80
+ let week = i;
81
+ // only recalculate week when it's necessary
82
+ if (weekStart > 50) {
83
+ week = DateUtils.GetWeekNumber(date);
84
+ }
85
+ const days = [];
86
+ // iterate over 7 days
87
+ for (let ii = 1; ii <= 7; ii++) {
88
+ // check if we are in the current month
89
+ let inMonth = true;
90
+ if (i === weekStart) {
91
+ inMonth = ii > daysBefore;
92
+ }
93
+ else if (i === weekEnd) {
94
+ inMonth = ii <= 7 - daysAfter;
95
+ }
96
+ const timestamp = date.getTime();
97
+ // add dateStamp to date array
98
+ days.push({
99
+ week: week,
100
+ inMonth: inMonth,
101
+ day: date.getDate(),
102
+ timestamp: timestamp,
103
+ selected: this.selectedDate.getTime() === timestamp
104
+ });
105
+ // go one day further
106
+ date.setDate(date.getDate() + 1);
107
+ }
108
+ this.weeks.push(days);
109
+ }
110
+ this._selectDays();
111
+ }
112
+ _selectDays() {
113
+ this._resetSelection();
114
+ if (!this.selectedDate) {
115
+ return;
116
+ }
117
+ const weekNumber = DateUtils.GetWeekNumber(this.selectedDate);
118
+ const len = this.weeks.length;
119
+ for (let i = 0; i < len; i++) {
120
+ const leni = this.weeks[i].length;
121
+ for (let ii = 0; ii < leni; ii++) {
122
+ if (this.weeks[i][ii].inMonth && this.view === CalendarView.MonthView) {
123
+ this.weeks[i][ii].selected = true;
124
+ }
125
+ else if (this.weeks[i][ii].week === weekNumber && this.view === CalendarView.WeekView) {
126
+ this.weeks[i][ii].selected = true;
127
+ }
128
+ else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.WeekSelectView) {
129
+ this.weeks[i][ii].selected = true;
130
+ }
131
+ else if (this.weeks[i][ii].timestamp === this.selectedDate.getTime() && this.view === CalendarView.DayView) {
132
+ this.weeks[i][ii].selected = true;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ _resetSelection() {
138
+ const len = this.weeks.length;
139
+ for (let i = 0; i < len; i++) {
140
+ const leni = this.weeks[i].length;
141
+ for (let ii = 0; ii < leni; ii++) {
142
+ this.weeks[i][ii].selected = false;
143
+ }
144
+ }
145
+ }
146
+ }
147
+ CalendarViewComponent.decorators = [
148
+ { type: Component, args: [{
149
+ selector: "calendar-view",
150
+ template: `
151
+ <div class="calendar-content">
152
+ <div>
153
+ <div class="week-day-header week-row">
154
+ <div class="week-acronym"></div>
155
+ <div *ngFor="let weekDay of weekDayLabel" [textContent]="weekDay | ucfirst"
156
+ class="week-day-label"></div>
157
+ </div>
158
+ <div class="week-row" *ngFor="let week of weeks;trackBy:trackByWeek">
159
+ <div [textContent]="week[0].week" class="week-number"></div>
160
+ <div *ngFor="let date of week;trackBy:trackByStamp" class="week-day"
161
+ (click)="onDateClick(date)" [textContent]="date.day">
162
+ </div>
163
+ </div>
164
+ </div>
165
+ </div>
166
+ `,
167
+ encapsulation: ViewEncapsulation.None
168
+ },] }
169
+ ];
170
+ CalendarViewComponent.ctorParameters = () => [
171
+ { type: LanguageCode, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
172
+ ];
173
+ CalendarViewComponent.propDecorators = {
174
+ view: [{ type: Input }],
175
+ selectedDate: [{ type: Input }],
176
+ selectedDateChange: [{ type: Output }]
177
+ };
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9jYWxlbmRhci9jYWxlbmRhci12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQXlCakUsMEVBQTBFO0FBQzFFLE1BQU0sT0FBTyxxQkFBcUI7SUEwQ2hDLFlBQ3NDLE9BQXFCO1FBQXJCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFuQnBELHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxFLGlCQUFZLEdBQWEsQ0FBQyxLQUFhLEVBQUUsS0FBZ0IsRUFBVSxFQUFFO1lBQzFFLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQzNDLENBQUMsQ0FBQTtRQUVNLGdCQUFXLEdBQWEsQ0FBQyxLQUFhLEVBQUUsSUFBaUIsRUFBVSxFQUFFO1lBQzFFLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDO1FB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QUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsT0FBTyxFQUFFO29CQUM1RyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7aUJBQ25DO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sR0FBRyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3RDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDcEMsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDMUMsS0FBSyxJQUFJLEVBQUUsR0FBVyxDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDOzs7WUE3TEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7S0FnQlA7Z0JBQ0gsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXhCTyxZQUFZLHVCQXFFZixNQUFNLFNBQUMsU0FBUzs7O21CQXpDbEIsS0FBSzsyQkFVTCxLQUFLO2lDQVdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBMT0NBTEVfSUQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QXJyYXlOdW1iZXJQaXBlfSBmcm9tIFwiLi4vLi4vLi4vLi4vcGlwZS9hcnJheS1udW1iZXIucGlwZVwiO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7RGF0ZVV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvZGF0ZS11dGlsc1wiO1xyXG5pbXBvcnQge0NhbGVuZGFyVmlld30gZnJvbSBcIi4uLy4uLy4uLy4uL2VudW0vY2FsZW5kYXItdmlldy5lbnVtXCI7XHJcbmltcG9ydCB7TGFuZ3VhZ2VDb2RlfSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9sYW5ndWFnZS1jb2RlLmVudW1cIjtcclxuXHJcbnR5cGUgRGF0ZVN0YW1wID0geyBkYXk6IG51bWJlciwgaW5Nb250aDogYm9vbGVhbiwgdGltZXN0YW1wOiBudW1iZXIsIHdlZWs6IG51bWJlciwgc2VsZWN0ZWQ6IGJvb2xlYW4gfTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNhbGVuZGFyLXZpZXdcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vlay1kYXktaGVhZGVyIHdlZWstcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstYWNyb255bVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHdlZWtEYXkgb2Ygd2Vla0RheUxhYmVsXCIgW3RleHRDb250ZW50XT1cIndlZWtEYXkgfCB1Y2ZpcnN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2Vlay1kYXktbGFiZWxcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWstcm93XCIgKm5nRm9yPVwibGV0IHdlZWsgb2Ygd2Vla3M7dHJhY2tCeTp0cmFja0J5V2Vla1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cIndlZWtbMF0ud2Vla1wiIGNsYXNzPVwid2Vlay1udW1iZXJcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkYXRlIG9mIHdlZWs7dHJhY2tCeTp0cmFja0J5U3RhbXBcIiBjbGFzcz1cIndlZWstZGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkRhdGVDbGljayhkYXRlKVwiIFt0ZXh0Q29udGVudF09XCJkYXRlLmRheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbi8vZml4bWUgd2UgZG9uJ3QgaGF2ZSBhIHRvZGF5RGF5U3RhbXAgZmllbGQgYnV0IG91ciB0ZW1wbGF0ZSByZWZlcmVuY2VzIGl0XHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclZpZXdDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdmlldyh2YWx1ZTogQ2FsZW5kYXJWaWV3KSB7XHJcbiAgICB0aGlzLl92aWV3ID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZWxlY3REYXlzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQ2FsZW5kYXJWaWV3IHtcclxuICAgIHJldHVybiB0aGlzLl92aWV3O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkRGF0ZSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5fc2VsZWN0ZWREYXRlID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZWxlY3RlZERhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICB0aGlzLl9wcmVwYXJlV2Vla3MoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWREYXRlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuXHJcbiAgcHVibGljIHRyYWNrQnlTdGFtcDogRnVuY3Rpb24gPSAoaW5kZXg6IG51bWJlciwgc3RhbXA6IERhdGVTdGFtcCk6IG51bWJlciA9PiB7XHJcbiAgICByZXR1cm4gc3RhbXAgJiYgc3RhbXAudGltZXN0YW1wIHx8IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYWNrQnlXZWVrOiBGdW5jdGlvbiA9IChpbmRleDogbnVtYmVyLCB3ZWVrOiBEYXRlU3RhbXBbXSk6IG51bWJlciA9PiB7XHJcbiAgICByZXR1cm4gd2VlayAmJiB3ZWVrWzBdLndlZWsgfHwgaW5kZXg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd2Vla0RheUxhYmVsOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgd2Vla3M6IERhdGVTdGFtcFtdW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfdmlldzogQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LldlZWtWaWV3O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGU6IExhbmd1YWdlQ29kZSxcclxuICApIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgdGhpcy5fc2V0TGFiZWxzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25EYXRlQ2xpY2soZGF0ZTogRGF0ZVN0YW1wKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG5ldyBEYXRlKGRhdGUudGltZXN0YW1wKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgdGhpcy5fc2VsZWN0RGF5cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0TGFiZWxzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0ZVBpcGU6IERhdGVQaXBlID0gbmV3IERhdGVQaXBlKHRoaXMuX2xvY2FsZSk7XHJcblxyXG4gICAgY29uc3QgY3VycmVudERheTogbnVtYmVyID0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0RGF5KCk7XHJcbiAgICBjb25zdCBzdGFydFdlZWtEYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpKTtcclxuICAgIHN0YXJ0V2Vla0RhdGUuc2V0RGF0ZShzdGFydFdlZWtEYXRlLmdldERhdGUoKSAtIGN1cnJlbnREYXkgLSAxKTtcclxuXHJcbiAgICB0aGlzLndlZWtEYXlMYWJlbCA9IG5ldyBBcnJheU51bWJlclBpcGUoKS50cmFuc2Zvcm0oNykubWFwKCgpID0+IHtcclxuICAgICAgc3RhcnRXZWVrRGF0ZS5zZXREYXRlKHN0YXJ0V2Vla0RhdGUuZ2V0RGF0ZSgpICsgMSk7XHJcbiAgICAgIHJldHVybiBkYXRlUGlwZS50cmFuc2Zvcm0oc3RhcnRXZWVrRGF0ZSwgXCJFXCIpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLndlZWtEYXlMYWJlbC5wdXNoKHRoaXMud2Vla0RheUxhYmVsLnNoaWZ0KCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVdlZWtzKCk6IHZvaWQge1xyXG4gICAgdGhpcy53ZWVrcy5sZW5ndGggPSAwO1xyXG5cclxuICAgIGNvbnN0IGRhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgZGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuXHJcbiAgICAvLyBnbyB0byBsYXN0IGRheSBvZiBtb250aFxyXG4gICAgZGF0ZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgKyAxKTtcclxuICAgIGRhdGUuc2V0RGF0ZSgwKTtcclxuICAgIGNvbnN0IG1vbnRoRW5kRGF5OiBudW1iZXIgPSBkYXRlLmdldERheSgpO1xyXG4gICAgY29uc3QgbW9udGhFbmREYXRlOiBudW1iZXIgPSBkYXRlLmdldERhdGUoKTtcclxuXHJcbiAgICAvLyBkYXlzIGFmdGVyIGVuZCBvZiBtb250aFxyXG4gICAgY29uc3QgZGF5c0FmdGVyOiBudW1iZXIgPSAhbW9udGhFbmREYXkgPyAwIDogNyAtIG1vbnRoRW5kRGF5O1xyXG5cclxuICAgIC8vIGdvIHRvIGZpcnN0IGRheSBvZiBtb250aFxyXG4gICAgZGF0ZS5zZXREYXRlKDEpO1xyXG4gICAgY29uc3QgbW9udGhCZWdpbkRheTogbnVtYmVyID0gZGF0ZS5nZXREYXkoKTtcclxuXHJcbiAgICAvLyBkYXlzIGJlZm9yZSBzdGFydCBvZiBtb250aFxyXG4gICAgY29uc3QgZGF5c0JlZm9yZTogbnVtYmVyID0gIW1vbnRoQmVnaW5EYXkgPyA2IDogbW9udGhCZWdpbkRheSAtIDE7XHJcblxyXG4gICAgLy8gZ28gdG8gc3RhcnQgb2YgY2FsZW5kYXIgdmlld1xyXG4gICAgZGF0ZS5zZXREYXRlKC1kYXlzQmVmb3JlICsgMSk7XHJcblxyXG4gICAgLy8gYW1vdW50IG9mIHdlZWtzIHRvIGRpc3BsYXlcclxuICAgIGNvbnN0IHdlZWtDb3VudDogbnVtYmVyID0gTWF0aC5jZWlsKChkYXlzQmVmb3JlICsgZGF5c0FmdGVyICsgbW9udGhFbmREYXRlKSAvIDcpO1xyXG4gICAgY29uc3Qgd2Vla1N0YXJ0OiBudW1iZXIgPSBEYXRlVXRpbHMuR2V0V2Vla051bWJlcihkYXRlKTtcclxuICAgIGNvbnN0IHdlZWtFbmQ6IG51bWJlciA9IHdlZWtTdGFydCArIHdlZWtDb3VudCAtIDE7XHJcblxyXG4gICAgLy8gaXRlcmF0ZSBvdmVyIHdlZWsgY291bnRcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IHdlZWtTdGFydDsgaSA8PSB3ZWVrRW5kOyBpKyspIHtcclxuICAgICAgbGV0IHdlZWs6IG51bWJlciA9IGk7XHJcblxyXG4gICAgICAvLyBvbmx5IHJlY2FsY3VsYXRlIHdlZWsgd2hlbiBpdCdzIG5lY2Vzc2FyeVxyXG4gICAgICBpZiAod2Vla1N0YXJ0ID4gNTApIHtcclxuICAgICAgICB3ZWVrID0gRGF0ZVV0aWxzLkdldFdlZWtOdW1iZXIoZGF0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGF5czogRGF0ZVN0YW1wW10gPSBbXTtcclxuXHJcbiAgICAgIC8vIGl0ZXJhdGUgb3ZlciA3IGRheXNcclxuICAgICAgZm9yIChsZXQgaWk6IG51bWJlciA9IDE7IGlpIDw9IDc7IGlpKyspIHtcclxuICAgICAgICAvLyBjaGVjayBpZiB3ZSBhcmUgaW4gdGhlIGN1cnJlbnQgbW9udGhcclxuICAgICAgICBsZXQgaW5Nb250aDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAgICAgaWYgKGkgPT09IHdlZWtTdGFydCkge1xyXG4gICAgICAgICAgaW5Nb250aCA9IGlpID4gZGF5c0JlZm9yZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGkgPT09IHdlZWtFbmQpIHtcclxuICAgICAgICAgIGluTW9udGggPSBpaSA8PSA3IC0gZGF5c0FmdGVyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdGltZXN0YW1wOiBudW1iZXIgPSBkYXRlLmdldFRpbWUoKTtcclxuICAgICAgICAvLyBhZGQgZGF0ZVN0YW1wIHRvIGRhdGUgYXJyYXlcclxuICAgICAgICBkYXlzLnB1c2goe1xyXG4gICAgICAgICAgd2Vlazogd2VlayxcclxuICAgICAgICAgIGluTW9udGg6IGluTW9udGgsXHJcbiAgICAgICAgICBkYXk6IGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXAsXHJcbiAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpID09PSB0aW1lc3RhbXBcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBnbyBvbmUgZGF5IGZ1cnRoZXJcclxuICAgICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyAxKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLndlZWtzLnB1c2goZGF5cyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zZWxlY3REYXlzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZWxlY3REYXlzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVzZXRTZWxlY3Rpb24oKTtcclxuICAgIGlmICghdGhpcy5zZWxlY3RlZERhdGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgd2Vla051bWJlcjogbnVtYmVyID0gRGF0ZVV0aWxzLkdldFdlZWtOdW1iZXIodGhpcy5zZWxlY3RlZERhdGUpO1xyXG4gICAgY29uc3QgbGVuOiBudW1iZXIgPSB0aGlzLndlZWtzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb25zdCBsZW5pOiBudW1iZXIgPSB0aGlzLndlZWtzW2ldLmxlbmd0aDtcclxuICAgICAgZm9yIChsZXQgaWk6IG51bWJlciA9IDA7IGlpIDwgbGVuaTsgaWkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLndlZWtzW2ldW2lpXS5pbk1vbnRoICYmIHRoaXMudmlldyA9PT0gQ2FsZW5kYXJWaWV3Lk1vbnRoVmlldykge1xyXG4gICAgICAgICAgdGhpcy53ZWVrc1tpXVtpaV0uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy53ZWVrc1tpXVtpaV0ud2VlayA9PT0gd2Vla051bWJlciAmJiB0aGlzLnZpZXcgPT09IENhbGVuZGFyVmlldy5XZWVrVmlldykge1xyXG4gICAgICAgICAgdGhpcy53ZWVrc1tpXVtpaV0uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy53ZWVrc1tpXVtpaV0udGltZXN0YW1wID09PSB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgdGhpcy52aWV3ID09PSBDYWxlbmRhclZpZXcuV2Vla1NlbGVjdFZpZXcpIHtcclxuICAgICAgICAgIHRoaXMud2Vla3NbaV1baWldLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMud2Vla3NbaV1baWldLnRpbWVzdGFtcCA9PT0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0VGltZSgpICYmIHRoaXMudmlldyA9PT0gQ2FsZW5kYXJWaWV3LkRheVZpZXcpIHtcclxuICAgICAgICAgIHRoaXMud2Vla3NbaV1baWldLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbGVuOiBudW1iZXIgPSB0aGlzLndlZWtzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb25zdCBsZW5pOiBudW1iZXIgPSB0aGlzLndlZWtzW2ldLmxlbmd0aDtcclxuICAgICAgZm9yIChsZXQgaWk6IG51bWJlciA9IDA7IGlpIDwgbGVuaTsgaWkrKykge1xyXG4gICAgICAgIHRoaXMud2Vla3NbaV1baWldLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,34 +1,34 @@
1
- import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
2
- import { CalendarView } from "../../../../enum/calendar-view.enum";
3
- export class CalendarComponent {
4
- constructor() {
5
- this.view = CalendarView.WeekView;
6
- this.selectedDate = new Date();
7
- this.days = [];
8
- this.selectedDateChange = new EventEmitter();
9
- }
10
- changeSelectedDate(date) {
11
- this.selectedDate = date;
12
- this.selectedDateChange.emit(this.selectedDate);
13
- }
14
- }
15
- CalendarComponent.decorators = [
16
- { type: Component, args: [{
17
- selector: "calendar",
18
- template: `
19
- <div class="sc-calendar">
20
- <calendar-header [selectedDate]="selectedDate" (selectedDateChange)="changeSelectedDate($event)"></calendar-header>
21
- <calendar-view [view]="view" [selectedDate]="selectedDate" (selectedDateChange)="changeSelectedDate($event)"></calendar-view>
22
- </div>
23
- `,
24
- encapsulation: ViewEncapsulation.None
25
- },] }
26
- ];
27
- CalendarComponent.ctorParameters = () => [];
28
- CalendarComponent.propDecorators = {
29
- view: [{ type: Input }],
30
- selectedDate: [{ type: Input }],
31
- days: [{ type: Input }],
32
- selectedDateChange: [{ type: Output }]
33
- };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBWWpFLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUI7UUFYTyxTQUFJLEdBQWlCLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFHM0MsaUJBQVksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBR2hDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFHekUsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQVU7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBOUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsUUFBUSxFQUFFOzs7OztLQUtQO2dCQUNILGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7O21CQUdFLEtBQUs7MkJBR0wsS0FBSzttQkFHTCxLQUFLO2lDQUdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q2FsZW5kYXJWaWV3fSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9jYWxlbmRhci12aWV3LmVudW1cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNhbGVuZGFyXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYy1jYWxlbmRhclwiPlxuICAgICAgICAgIDxjYWxlbmRhci1oZWFkZXIgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIiAoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cImNoYW5nZVNlbGVjdGVkRGF0ZSgkZXZlbnQpXCI+PC9jYWxlbmRhci1oZWFkZXI+XG4gICAgICAgICAgPGNhbGVuZGFyLXZpZXcgW3ZpZXddPVwidmlld1wiIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlXCIgKHNlbGVjdGVkRGF0ZUNoYW5nZSk9XCJjaGFuZ2VTZWxlY3RlZERhdGUoJGV2ZW50KVwiPjwvY2FsZW5kYXItdmlldz5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZXc6IENhbGVuZGFyVmlldyA9IENhbGVuZGFyVmlldy5XZWVrVmlldztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGF5czogRGF0ZVtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3RlZERhdGUoZGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgfVxufVxuIl19
1
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { CalendarView } from "../../../../enum/calendar-view.enum";
3
+ export class CalendarComponent {
4
+ constructor() {
5
+ this.view = CalendarView.WeekView;
6
+ this.selectedDate = new Date();
7
+ this.days = [];
8
+ this.selectedDateChange = new EventEmitter();
9
+ }
10
+ changeSelectedDate(date) {
11
+ this.selectedDate = date;
12
+ this.selectedDateChange.emit(this.selectedDate);
13
+ }
14
+ }
15
+ CalendarComponent.decorators = [
16
+ { type: Component, args: [{
17
+ selector: "calendar",
18
+ template: `
19
+ <div class="sc-calendar">
20
+ <calendar-header [selectedDate]="selectedDate" (selectedDateChange)="changeSelectedDate($event)"></calendar-header>
21
+ <calendar-view [view]="view" [selectedDate]="selectedDate" (selectedDateChange)="changeSelectedDate($event)"></calendar-view>
22
+ </div>
23
+ `,
24
+ encapsulation: ViewEncapsulation.None
25
+ },] }
26
+ ];
27
+ CalendarComponent.ctorParameters = () => [];
28
+ CalendarComponent.propDecorators = {
29
+ view: [{ type: Input }],
30
+ selectedDate: [{ type: Input }],
31
+ days: [{ type: Input }],
32
+ selectedDateChange: [{ type: Output }]
33
+ };
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBWWpFLE1BQU0sT0FBTyxpQkFBaUI7SUFjNUI7UUFYTyxTQUFJLEdBQWlCLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFHM0MsaUJBQVksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBR2hDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsdUJBQWtCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFHekUsQ0FBQztJQUVNLGtCQUFrQixDQUFDLElBQVU7UUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7O1lBOUJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsUUFBUSxFQUFFOzs7OztLQUtQO2dCQUNILGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7O21CQUdFLEtBQUs7MkJBR0wsS0FBSzttQkFHTCxLQUFLO2lDQUdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDYWxlbmRhclZpZXd9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2NhbGVuZGFyLXZpZXcuZW51bVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY2FsZW5kYXJcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYy1jYWxlbmRhclwiPlxyXG4gICAgICAgICAgPGNhbGVuZGFyLWhlYWRlciBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwiY2hhbmdlU2VsZWN0ZWREYXRlKCRldmVudClcIj48L2NhbGVuZGFyLWhlYWRlcj5cclxuICAgICAgICAgIDxjYWxlbmRhci12aWV3IFt2aWV3XT1cInZpZXdcIiBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwiY2hhbmdlU2VsZWN0ZWREYXRlKCRldmVudClcIj48L2NhbGVuZGFyLXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdmlldzogQ2FsZW5kYXJWaWV3ID0gQ2FsZW5kYXJWaWV3LldlZWtWaWV3O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXlzOiBEYXRlW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3RlZERhdGUoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkRGF0ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==