@progressio_resources/gravity-design-system 3.9.3 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/progressio_resources-gravity-design-system.mjs +1289 -1169
  3. package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
  4. package/package.json +10 -12
  5. package/src/lib/styles/_functions.scss +4 -2
  6. package/src/lib/styles/_responsive.scss +12 -11
  7. package/src/lib/styles/components/_card_highlight.scss +5 -5
  8. package/src/lib/styles/components/_datepicker-v2.scss +2 -2
  9. package/src/lib/styles/components/_datepicker.scss +16 -15
  10. package/src/lib/styles/components/_offcanvas.scss +4 -4
  11. package/src/lib/styles/components/_tables.scss +9 -9
  12. package/src/lib/styles/foundations/colors/themes/_hero.theme.scss +1 -1
  13. package/src/lib/styles/foundations/colors/tokens/_hero.tokens.scss +3 -3
  14. package/src/lib/styles/foundations/spacing/_spacing.scss +3 -1
  15. package/src/lib/styles/gravity-design-system.scss +17 -17
  16. package/src/lib/styles/overwrite/bootstrap/_bootstrap-export.scss +2 -2
  17. package/src/lib/styles/overwrite/bootstrap/_modal.scss +5 -5
  18. package/src/lib/styles/themes/_hero.scss +4 -4
  19. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.html +10 -7
  20. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.sass +92 -52
  21. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.ts +7 -3
  22. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.directive.ts +46 -17
  23. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.module.ts +7 -12
  24. package/types/progressio_resources-gravity-design-system.d.ts +2671 -0
  25. package/esm2022/lib/components/gravity-attach-file/gravity-attach-file.component.mjs +0 -82
  26. package/esm2022/lib/components/gravity-avatar-stack/gravity-avatar-stack.component.mjs +0 -86
  27. package/esm2022/lib/components/gravity-backdrop/gravity-backdrop.component.mjs +0 -17
  28. package/esm2022/lib/components/gravity-badge/gravity-badge.component.mjs +0 -36
  29. package/esm2022/lib/components/gravity-button/gravity-button.component.mjs +0 -58
  30. package/esm2022/lib/components/gravity-calendar-v2/datepicker/base/bs-datepicker-container.mjs +0 -77
  31. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.component.mjs +0 -129
  32. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.config.mjs +0 -14
  33. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.callbacks.mjs +0 -13
  34. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.component.mjs +0 -211
  35. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.config.mjs +0 -46
  36. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.component.mjs +0 -130
  37. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.config.mjs +0 -18
  38. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.component.mjs +0 -218
  39. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.config.mjs +0 -18
  40. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-container.component.mjs +0 -137
  41. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-inline-container.component.mjs +0 -35
  42. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-navigation-view/bs-datepicker-navigation-view.component.mjs +0 -69
  43. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-container.component.mjs +0 -193
  44. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-inline-container.component.mjs +0 -35
  45. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-datepicker-day-decorator.directive.mjs +0 -30
  46. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-days-calendar-view.component.mjs +0 -57
  47. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-months-calendar-view/bs-months-calendar-view.component.mjs +0 -57
  48. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-years-calendar-view/bs-years-calendar-view.component.mjs +0 -57
  49. package/esm2022/lib/components/gravity-calendar-v2/datepicker/datepicker-animations.mjs +0 -16
  50. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/calc-days-calendar.mjs +0 -16
  51. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-days-calendar.mjs +0 -53
  52. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-months-calendar.mjs +0 -39
  53. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/flag-years-calendar.mjs +0 -36
  54. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-days-calendar.mjs +0 -23
  55. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-months-calendar.mjs +0 -23
  56. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/format-years-calendar.mjs +0 -43
  57. package/esm2022/lib/components/gravity-calendar-v2/datepicker/engine/view-mode.mjs +0 -4
  58. package/esm2022/lib/components/gravity-calendar-v2/datepicker/models/index.mjs +0 -7
  59. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/_defaults.mjs +0 -6
  60. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.actions.mjs +0 -64
  61. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.effects.mjs +0 -128
  62. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.reducer.mjs +0 -301
  63. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.state.mjs +0 -16
  64. package/esm2022/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.store.mjs +0 -20
  65. package/esm2022/lib/components/gravity-calendar-v2/datepicker/services/header-type.service.mjs +0 -28
  66. package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/bs-calendar-utils.mjs +0 -74
  67. package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/date-abbreviation.pipe.mjs +0 -74
  68. package/esm2022/lib/components/gravity-calendar-v2/datepicker/utils/matrix-utils.mjs +0 -14
  69. package/esm2022/lib/components/gravity-calendar-v2/gravity-calendar-v2.component.mjs +0 -259
  70. package/esm2022/lib/components/gravity-card-button/gravity-card-button.component.mjs +0 -41
  71. package/esm2022/lib/components/gravity-checkbox/gravity-checkbox.component.mjs +0 -52
  72. package/esm2022/lib/components/gravity-chip-group/gravity-chip-group.component.mjs +0 -45
  73. package/esm2022/lib/components/gravity-currency/gravity-currency.component.mjs +0 -26
  74. package/esm2022/lib/components/gravity-currency-display-v2/gravity-currency-display-v2.component.mjs +0 -26
  75. package/esm2022/lib/components/gravity-currency-dropdown-short/gravity-currency-dropdown-short.component.mjs +0 -79
  76. package/esm2022/lib/components/gravity-data-views-v2/gravity-data-views-v2.component.mjs +0 -48
  77. package/esm2022/lib/components/gravity-date-picker/components/day-calendar/day-calendar.component.mjs +0 -273
  78. package/esm2022/lib/components/gravity-date-picker/components/day-calendar/range-days-calendar.utils.mjs +0 -241
  79. package/esm2022/lib/components/gravity-date-picker/components/month-calendar/month-calendar.component.mjs +0 -109
  80. package/esm2022/lib/components/gravity-date-picker/components/year-calendar/year-calendar.component.mjs +0 -105
  81. package/esm2022/lib/components/gravity-date-picker/gravity-date-picker.component.mjs +0 -84
  82. package/esm2022/lib/components/gravity-date-picker/shared/date-picker.constants.mjs +0 -61
  83. package/esm2022/lib/components/gravity-date-picker/shared/date-picker.modal.mjs +0 -2
  84. package/esm2022/lib/components/gravity-date-picker/shared/date-picker.utils.mjs +0 -110
  85. package/esm2022/lib/components/gravity-detail-container/gravity-detail-container.component.mjs +0 -93
  86. package/esm2022/lib/components/gravity-dialog/gravity-dialog.component.mjs +0 -26
  87. package/esm2022/lib/components/gravity-dropdown-label/gravity-dropdown-label.component.mjs +0 -65
  88. package/esm2022/lib/components/gravity-dropdown-list/filter-by.pipe.mjs +0 -44
  89. package/esm2022/lib/components/gravity-dropdown-list/gravity-dropdown-list.component.mjs +0 -542
  90. package/esm2022/lib/components/gravity-dropdown-list-display/display-currency-items.mjs +0 -2
  91. package/esm2022/lib/components/gravity-dropdown-list-display/gravity-dropdown-list-display.component.mjs +0 -203
  92. package/esm2022/lib/components/gravity-editable-input/gravity-editable-input.component.mjs +0 -52
  93. package/esm2022/lib/components/gravity-generic-avatar/gravity-generic-avatar.component.mjs +0 -33
  94. package/esm2022/lib/components/gravity-generic-avatar-secondary/gravity-generic-avatar-secondary.component.mjs +0 -28
  95. package/esm2022/lib/components/gravity-icon/gravity-icon.component.mjs +0 -120
  96. package/esm2022/lib/components/gravity-icon-button/gravity-icon-button.component.mjs +0 -54
  97. package/esm2022/lib/components/gravity-link/gravity-link.component.mjs +0 -39
  98. package/esm2022/lib/components/gravity-modal/gravity-modal.component.mjs +0 -44
  99. package/esm2022/lib/components/gravity-modal/gravity-modal.model.mjs +0 -2
  100. package/esm2022/lib/components/gravity-multi-language/gravity-multi-language.component.mjs +0 -31
  101. package/esm2022/lib/components/gravity-navigation-card/gravity-navigation-card.component.mjs +0 -54
  102. package/esm2022/lib/components/gravity-network-pill/gravity-network-pill.component.mjs +0 -33
  103. package/esm2022/lib/components/gravity-notification/gravity-notification-content.interface.mjs +0 -2
  104. package/esm2022/lib/components/gravity-notification/gravity-notification.component.mjs +0 -33
  105. package/esm2022/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.mjs +0 -32
  106. package/esm2022/lib/components/gravity-pagination/gravity-pagination.component.mjs +0 -113
  107. package/esm2022/lib/components/gravity-push-notifications/gravity-push-notifications.component.mjs +0 -55
  108. package/esm2022/lib/components/gravity-radio-button/gravity-radio-button.component.mjs +0 -34
  109. package/esm2022/lib/components/gravity-segmented-button/gravity-segmented-button.component.mjs +0 -85
  110. package/esm2022/lib/components/gravity-status-indicator/gravity-status-indicator.component.mjs +0 -38
  111. package/esm2022/lib/components/gravity-stepper/gravity-stepper.component.mjs +0 -37
  112. package/esm2022/lib/components/gravity-switch/gravity-switch.component.mjs +0 -56
  113. package/esm2022/lib/components/gravity-tab-primary/gravity-tab-primary.component.mjs +0 -34
  114. package/esm2022/lib/components/gravity-tab-secondary/gravity-tab-secondary.component.mjs +0 -36
  115. package/esm2022/lib/components/gravity-table/gravity-table.component.mjs +0 -212
  116. package/esm2022/lib/components/gravity-tables-v2/gravity-tables-v2.component.mjs +0 -18
  117. package/esm2022/lib/components/gravity-text-field/gravity-text-field.component.mjs +0 -294
  118. package/esm2022/lib/components/gravity-text-field-amount-only/gravity-text-field-amount-only.component.mjs +0 -160
  119. package/esm2022/lib/components/gravity-text-field-number-only/gravity-text-field-number-only.component.mjs +0 -126
  120. package/esm2022/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.mjs +0 -44
  121. package/esm2022/lib/components/gravity-tree-view/gravity-tree-view.component.mjs +0 -69
  122. package/esm2022/lib/components/gravity-tree-view/models/node-item.mjs +0 -2
  123. package/esm2022/lib/components/gravity-tree-view/models/node-selected-state.mjs +0 -7
  124. package/esm2022/lib/components/gravity-tree-view/models/node-state.mjs +0 -2
  125. package/esm2022/lib/components/gravity-tree-view/models/tree-callbacks.mjs +0 -2
  126. package/esm2022/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.mjs +0 -26
  127. package/esm2022/lib/components/gravity-tree-view/node/node-name/node-name.component.mjs +0 -13
  128. package/esm2022/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.mjs +0 -15
  129. package/esm2022/lib/components/gravity-tree-view/node/node.component.mjs +0 -17
  130. package/esm2022/lib/components/gravity-tree-view/service/tree-service.mjs +0 -242
  131. package/esm2022/lib/gravity-design-system.module.mjs +0 -370
  132. package/esm2022/lib/layout/gravity-header/gravity-header.component.mjs +0 -72
  133. package/esm2022/lib/layout/gravity-menu/gravity-menu.component.mjs +0 -232
  134. package/esm2022/lib/model/gravity-menu-items.model.mjs +0 -5
  135. package/esm2022/lib/model/gravity-push-notifications.model.mjs +0 -2
  136. package/esm2022/lib/services/gravity-dialog-manager.service.mjs +0 -48
  137. package/esm2022/lib/services/gravity-dropdown-manager.service.mjs +0 -21
  138. package/esm2022/lib/services/gravity-instant-notifications.service.mjs +0 -23
  139. package/esm2022/lib/services/gravity-push-notifications-service.service.mjs +0 -70
  140. package/esm2022/lib/services/gravity-responsive.service.mjs +0 -47
  141. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.component.mjs +0 -249
  142. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.directive.mjs +0 -494
  143. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.module.mjs +0 -41
  144. package/esm2022/lib/vendor/gravity-tooltip/index.mjs +0 -4
  145. package/esm2022/lib/vendor/gravity-tooltip/options.interface.mjs +0 -2
  146. package/esm2022/lib/vendor/gravity-tooltip/options.mjs +0 -38
  147. package/esm2022/lib/vendor/gravity-tooltip/options.service.mjs +0 -7
  148. package/esm2022/progressio_resources-gravity-design-system.mjs +0 -5
  149. package/esm2022/public-api.mjs +0 -62
  150. package/index.d.ts +0 -5
  151. package/lib/components/gravity-attach-file/gravity-attach-file.component.d.ts +0 -22
  152. package/lib/components/gravity-avatar-stack/gravity-avatar-stack.component.d.ts +0 -22
  153. package/lib/components/gravity-backdrop/gravity-backdrop.component.d.ts +0 -6
  154. package/lib/components/gravity-badge/gravity-badge.component.d.ts +0 -12
  155. package/lib/components/gravity-button/gravity-button.component.d.ts +0 -17
  156. package/lib/components/gravity-calendar-v2/datepicker/base/bs-datepicker-container.d.ts +0 -42
  157. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.component.d.ts +0 -40
  158. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.config.d.ts +0 -6
  159. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.callbacks.d.ts +0 -6
  160. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.component.d.ts +0 -66
  161. package/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.config.d.ts +0 -53
  162. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.component.d.ts +0 -37
  163. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.config.d.ts +0 -7
  164. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.component.d.ts +0 -61
  165. package/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.config.d.ts +0 -7
  166. package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-container.component.d.ts +0 -36
  167. package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-inline-container.component.d.ts +0 -15
  168. package/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-navigation-view/bs-datepicker-navigation-view.component.d.ts +0 -26
  169. package/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-container.component.d.ts +0 -42
  170. package/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-inline-container.component.d.ts +0 -15
  171. package/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-datepicker-day-decorator.directive.d.ts +0 -7
  172. package/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-days-calendar-view.component.d.ts +0 -25
  173. package/lib/components/gravity-calendar-v2/datepicker/components/bs-months-calendar-view/bs-months-calendar-view.component.d.ts +0 -23
  174. package/lib/components/gravity-calendar-v2/datepicker/components/bs-years-calendar-view/bs-years-calendar-view.component.d.ts +0 -22
  175. package/lib/components/gravity-calendar-v2/datepicker/datepicker-animations.d.ts +0 -3
  176. package/lib/components/gravity-calendar-v2/datepicker/engine/calc-days-calendar.d.ts +0 -2
  177. package/lib/components/gravity-calendar-v2/datepicker/engine/flag-days-calendar.d.ts +0 -12
  178. package/lib/components/gravity-calendar-v2/datepicker/engine/flag-months-calendar.d.ts +0 -12
  179. package/lib/components/gravity-calendar-v2/datepicker/engine/flag-years-calendar.d.ts +0 -13
  180. package/lib/components/gravity-calendar-v2/datepicker/engine/format-days-calendar.d.ts +0 -2
  181. package/lib/components/gravity-calendar-v2/datepicker/engine/format-months-calendar.d.ts +0 -2
  182. package/lib/components/gravity-calendar-v2/datepicker/engine/format-years-calendar.d.ts +0 -4
  183. package/lib/components/gravity-calendar-v2/datepicker/engine/view-mode.d.ts +0 -2
  184. package/lib/components/gravity-calendar-v2/datepicker/models/index.d.ts +0 -86
  185. package/lib/components/gravity-calendar-v2/datepicker/reducer/_defaults.d.ts +0 -3
  186. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.actions.d.ts +0 -34
  187. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.effects.d.ts +0 -34
  188. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.reducer.d.ts +0 -3
  189. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.state.d.ts +0 -34
  190. package/lib/components/gravity-calendar-v2/datepicker/reducer/bs-datepicker.store.d.ts +0 -8
  191. package/lib/components/gravity-calendar-v2/datepicker/services/header-type.service.d.ts +0 -17
  192. package/lib/components/gravity-calendar-v2/datepicker/utils/bs-calendar-utils.d.ts +0 -13
  193. package/lib/components/gravity-calendar-v2/datepicker/utils/date-abbreviation.pipe.d.ts +0 -13
  194. package/lib/components/gravity-calendar-v2/datepicker/utils/matrix-utils.d.ts +0 -9
  195. package/lib/components/gravity-calendar-v2/gravity-calendar-v2.component.d.ts +0 -57
  196. package/lib/components/gravity-card-button/gravity-card-button.component.d.ts +0 -15
  197. package/lib/components/gravity-checkbox/gravity-checkbox.component.d.ts +0 -21
  198. package/lib/components/gravity-chip-group/gravity-chip-group.component.d.ts +0 -19
  199. package/lib/components/gravity-currency/gravity-currency.component.d.ts +0 -13
  200. package/lib/components/gravity-currency-display-v2/gravity-currency-display-v2.component.d.ts +0 -16
  201. package/lib/components/gravity-currency-dropdown-short/gravity-currency-dropdown-short.component.d.ts +0 -32
  202. package/lib/components/gravity-data-views-v2/gravity-data-views-v2.component.d.ts +0 -22
  203. package/lib/components/gravity-date-picker/components/day-calendar/day-calendar.component.d.ts +0 -105
  204. package/lib/components/gravity-date-picker/components/day-calendar/range-days-calendar.utils.d.ts +0 -12
  205. package/lib/components/gravity-date-picker/components/month-calendar/month-calendar.component.d.ts +0 -71
  206. package/lib/components/gravity-date-picker/components/year-calendar/year-calendar.component.d.ts +0 -70
  207. package/lib/components/gravity-date-picker/gravity-date-picker.component.d.ts +0 -64
  208. package/lib/components/gravity-date-picker/shared/date-picker.constants.d.ts +0 -52
  209. package/lib/components/gravity-date-picker/shared/date-picker.modal.d.ts +0 -25
  210. package/lib/components/gravity-date-picker/shared/date-picker.utils.d.ts +0 -10
  211. package/lib/components/gravity-detail-container/gravity-detail-container.component.d.ts +0 -28
  212. package/lib/components/gravity-dialog/gravity-dialog.component.d.ts +0 -22
  213. package/lib/components/gravity-dropdown-label/gravity-dropdown-label.component.d.ts +0 -19
  214. package/lib/components/gravity-dropdown-list/filter-by.pipe.d.ts +0 -10
  215. package/lib/components/gravity-dropdown-list/gravity-dropdown-list.component.d.ts +0 -84
  216. package/lib/components/gravity-dropdown-list-display/display-currency-items.d.ts +0 -12
  217. package/lib/components/gravity-dropdown-list-display/gravity-dropdown-list-display.component.d.ts +0 -52
  218. package/lib/components/gravity-editable-input/gravity-editable-input.component.d.ts +0 -19
  219. package/lib/components/gravity-generic-avatar/gravity-generic-avatar.component.d.ts +0 -11
  220. package/lib/components/gravity-generic-avatar-secondary/gravity-generic-avatar-secondary.component.d.ts +0 -11
  221. package/lib/components/gravity-icon/gravity-icon.component.d.ts +0 -85
  222. package/lib/components/gravity-icon-button/gravity-icon-button.component.d.ts +0 -22
  223. package/lib/components/gravity-link/gravity-link.component.d.ts +0 -14
  224. package/lib/components/gravity-modal/gravity-modal.component.d.ts +0 -19
  225. package/lib/components/gravity-modal/gravity-modal.model.d.ts +0 -17
  226. package/lib/components/gravity-multi-language/gravity-multi-language.component.d.ts +0 -12
  227. package/lib/components/gravity-navigation-card/gravity-navigation-card.component.d.ts +0 -24
  228. package/lib/components/gravity-network-pill/gravity-network-pill.component.d.ts +0 -14
  229. package/lib/components/gravity-notification/gravity-notification-content.interface.d.ts +0 -7
  230. package/lib/components/gravity-notification/gravity-notification.component.d.ts +0 -12
  231. package/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.d.ts +0 -10
  232. package/lib/components/gravity-pagination/gravity-pagination.component.d.ts +0 -24
  233. package/lib/components/gravity-push-notifications/gravity-push-notifications.component.d.ts +0 -21
  234. package/lib/components/gravity-radio-button/gravity-radio-button.component.d.ts +0 -14
  235. package/lib/components/gravity-segmented-button/gravity-segmented-button.component.d.ts +0 -33
  236. package/lib/components/gravity-status-indicator/gravity-status-indicator.component.d.ts +0 -14
  237. package/lib/components/gravity-stepper/gravity-stepper.component.d.ts +0 -13
  238. package/lib/components/gravity-switch/gravity-switch.component.d.ts +0 -24
  239. package/lib/components/gravity-tab-primary/gravity-tab-primary.component.d.ts +0 -16
  240. package/lib/components/gravity-tab-secondary/gravity-tab-secondary.component.d.ts +0 -17
  241. package/lib/components/gravity-table/gravity-table.component.d.ts +0 -25
  242. package/lib/components/gravity-tables-v2/gravity-tables-v2.component.d.ts +0 -7
  243. package/lib/components/gravity-text-field/gravity-text-field.component.d.ts +0 -62
  244. package/lib/components/gravity-text-field-amount-only/gravity-text-field-amount-only.component.d.ts +0 -43
  245. package/lib/components/gravity-text-field-number-only/gravity-text-field-number-only.component.d.ts +0 -30
  246. package/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.d.ts +0 -40
  247. package/lib/components/gravity-tree-view/gravity-tree-view.component.d.ts +0 -21
  248. package/lib/components/gravity-tree-view/models/node-item.d.ts +0 -10
  249. package/lib/components/gravity-tree-view/models/node-selected-state.d.ts +0 -5
  250. package/lib/components/gravity-tree-view/models/node-state.d.ts +0 -14
  251. package/lib/components/gravity-tree-view/models/tree-callbacks.d.ts +0 -9
  252. package/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.d.ts +0 -11
  253. package/lib/components/gravity-tree-view/node/node-name/node-name.component.d.ts +0 -7
  254. package/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.d.ts +0 -7
  255. package/lib/components/gravity-tree-view/node/node.component.d.ts +0 -7
  256. package/lib/components/gravity-tree-view/service/tree-service.d.ts +0 -42
  257. package/lib/gravity-design-system.module.d.ts +0 -85
  258. package/lib/layout/gravity-header/gravity-header.component.d.ts +0 -36
  259. package/lib/layout/gravity-menu/gravity-menu.component.d.ts +0 -53
  260. package/lib/model/gravity-menu-items.model.d.ts +0 -31
  261. package/lib/model/gravity-push-notifications.model.d.ts +0 -22
  262. package/lib/services/gravity-dialog-manager.service.d.ts +0 -17
  263. package/lib/services/gravity-dropdown-manager.service.d.ts +0 -12
  264. package/lib/services/gravity-instant-notifications.service.d.ts +0 -10
  265. package/lib/services/gravity-push-notifications-service.service.d.ts +0 -14
  266. package/lib/services/gravity-responsive.service.d.ts +0 -11
  267. package/lib/vendor/gravity-tooltip/gravity-tooltip.component.d.ts +0 -44
  268. package/lib/vendor/gravity-tooltip/gravity-tooltip.directive.d.ts +0 -113
  269. package/lib/vendor/gravity-tooltip/gravity-tooltip.module.d.ts +0 -12
  270. package/lib/vendor/gravity-tooltip/index.d.ts +0 -3
  271. package/lib/vendor/gravity-tooltip/options.d.ts +0 -24
  272. package/lib/vendor/gravity-tooltip/options.interface.d.ts +0 -42
  273. package/lib/vendor/gravity-tooltip/options.service.d.ts +0 -7
  274. package/public-api.d.ts +0 -53
@@ -1,7 +0,0 @@
1
- /** *************** */
2
- export var BsNavigationDirection;
3
- (function (BsNavigationDirection) {
4
- BsNavigationDirection[BsNavigationDirection["UP"] = 0] = "UP";
5
- BsNavigationDirection[BsNavigationDirection["DOWN"] = 1] = "DOWN";
6
- })(BsNavigationDirection || (BsNavigationDirection = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2FsZW5kYXItdjIvZGF0ZXBpY2tlci9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkZBLHNCQUFzQjtBQUN0QixNQUFNLENBQU4sSUFBWSxxQkFHWDtBQUhELFdBQVkscUJBQXFCO0lBQy9CLDZEQUFFLENBQUE7SUFDRixpRUFBSSxDQUFBO0FBQ04sQ0FBQyxFQUhXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFHaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaW1lVW5pdCB9IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5cbmV4cG9ydCB0eXBlIEJzRGF0ZXBpY2tlclZpZXdNb2RlID0gJ2RheScgfCAnbW9udGgnIHwgJ3llYXInO1xuXG4vKiogKioqKioqKioqKioqKioqICovXG4vLyBuYXZpZ2F0aW9uIGJhciBzZXR0aW5nc1xuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uVmlld01vZGVsIHtcbiAgbW9udGhUaXRsZTogc3RyaW5nO1xuICB5ZWFyVGl0bGU6IHN0cmluZztcbiAgaGlkZUxlZnRBcnJvdzogYm9vbGVhbjtcbiAgaGlkZVJpZ2h0QXJyb3c6IGJvb2xlYW47XG4gIGRpc2FibGVMZWZ0QXJyb3c6IGJvb2xlYW47XG4gIGRpc2FibGVSaWdodEFycm93OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyQ2VsbFZpZXdNb2RlbCB7XG4gIGRhdGU6IERhdGU7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc0hvdmVyZWQ/OiBib29sZWFuO1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgaXNUb2RheT86IGJvb2xlYW47XG59XG5cbi8qKiAqKioqKioqKioqKioqKiogKi9cbi8vIGRheXMgbWF0cml4OiBkYXkgY2VsbCB2aWV3IG1vZGVsXG5leHBvcnQgaW50ZXJmYWNlIERheVZpZXdNb2RlbCBleHRlbmRzIENhbGVuZGFyQ2VsbFZpZXdNb2RlbCB7XG4gIGlzT3RoZXJNb250aD86IGJvb2xlYW47XG4gIGlzSW5SYW5nZT86IGJvb2xlYW47XG4gIGlzU2VsZWN0aW9uU3RhcnQ/OiBib29sZWFuO1xuICBpc1NlbGVjdGlvbkVuZD86IGJvb2xlYW47XG4gIGlzVG9kYXk/OiBib29sZWFuO1xuXG4gIC8vIGRheSBpbmRleFxuICBtb250aEluZGV4PzogbnVtYmVyO1xuICB3ZWVrSW5kZXg/OiBudW1iZXI7XG4gIGRheUluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdlZWtWaWV3TW9kZWwge1xuICBkYXlzOiBEYXlWaWV3TW9kZWxbXTtcbiAgaXNIb3ZlcmVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwgZXh0ZW5kcyBOYXZpZ2F0aW9uVmlld01vZGVsIHtcbiAgd2Vla3M6IFdlZWtWaWV3TW9kZWxbXTtcbiAgbW9udGg6IERhdGU7XG4gIHdlZWtkYXlzOiBzdHJpbmdbXTtcbn1cblxuLyoqICoqKioqKioqKioqKioqKiAqL1xuLy8gbW9udGhzIGNhbGVuZGFyXG5leHBvcnQgaW50ZXJmYWNlIE1vbnRoc0NhbGVuZGFyVmlld01vZGVsIGV4dGVuZHMgTmF2aWdhdGlvblZpZXdNb2RlbCB7XG4gIG1vbnRoczogQ2FsZW5kYXJDZWxsVmlld01vZGVsW11bXTtcbn1cblxuLy8geWVhcnMgY2FsZW5kYXJcbmV4cG9ydCBpbnRlcmZhY2UgWWVhcnNDYWxlbmRhclZpZXdNb2RlbCBleHRlbmRzIE5hdmlnYXRpb25WaWV3TW9kZWwge1xuICB5ZWFyczogQ2FsZW5kYXJDZWxsVmlld01vZGVsW11bXTtcbn1cblxuLyoqICoqKioqKioqKioqKioqKiAqL1xuXG4vLyBkYXlzIERhdGUncyBhcnJheVxuZXhwb3J0IGludGVyZmFjZSBEYXlzQ2FsZW5kYXJNb2RlbCB7XG4gIGRheXNNYXRyaXg6IERhdGVbXVtdO1xuICBtb250aDogRGF0ZTtcbn1cblxuLyoqICoqKioqKioqKioqKioqKiAqL1xuLy8gc29tZSBmdW5jIG9wdGlvbnNcbmV4cG9ydCBpbnRlcmZhY2UgTW9udGhWaWV3T3B0aW9ucyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGZpcnN0RGF5T2ZXZWVrPzogbnVtYmVyO1xufVxuXG4vKiogKioqKioqKioqKioqKioqICovXG4vLyByZW5kZXJpbmcgb3B0aW9uc1xuZXhwb3J0IGludGVyZmFjZSBEYXRlcGlja2VyRm9ybWF0T3B0aW9ucyB7XG4gIGxvY2FsZT86IHN0cmluZztcblxuICBtb250aFRpdGxlPzogc3RyaW5nO1xuICB5ZWFyVGl0bGU/OiBzdHJpbmc7XG5cbiAgZGF5TGFiZWw/OiBzdHJpbmc7XG4gIG1vbnRoTGFiZWw/OiBzdHJpbmc7XG4gIHllYXJMYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlcGlja2VyUmVuZGVyT3B0aW9ucyB7XG4gIGRpc3BsYXlNb250aHM6IG51bWJlcjtcbn1cbi8qKiAqKioqKioqKioqKioqKiogKi9cbmV4cG9ydCBlbnVtIEJzTmF2aWdhdGlvbkRpcmVjdGlvbiB7XG4gIFVQLFxuICBET1dOXG59XG5cbi8vIHVzZWQgZm9yIG5hdmlnYXRpb24gZXZlbnRzLCB0byBjaGFuZ2UgdmlldyBkYXRlIGluIHN0YXRlXG5leHBvcnQgaW50ZXJmYWNlIEJzTmF2aWdhdGlvbkV2ZW50IHtcbiAgZGlyZWN0aW9uPzogQnNOYXZpZ2F0aW9uRGlyZWN0aW9uO1xuICBzdGVwPzogVGltZVVuaXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnNWaWV3TmF2aWdhdGlvbkV2ZW50IHtcbiAgdW5pdD86IFRpbWVVbml0O1xuICB2aWV3TW9kZTogQnNEYXRlcGlja2VyVmlld01vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbEhvdmVyRXZlbnQge1xuICBjZWxsOiBDYWxlbmRhckNlbGxWaWV3TW9kZWw7XG4gIGlzSG92ZXJlZDogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export const defaultMonthOptions = {
2
- width: 7,
3
- height: 6
4
- };
5
- export const dayInMilliseconds = 24 * 60 * 60 * 1000;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2RlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9fZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXFCO0lBQ25ELEtBQUssRUFBRSxDQUFDO0lBQ1IsTUFBTSxFQUFFLENBQUM7Q0FDVixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgTW9udGhWaWV3T3B0aW9uc1xufSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE1vbnRoT3B0aW9uczogTW9udGhWaWV3T3B0aW9ucyA9IHtcbiAgd2lkdGg6IDcsXG4gIGhlaWdodDogNlxufTtcblxuZXhwb3J0IGNvbnN0IGRheUluTWlsbGlzZWNvbmRzOiBudW1iZXIgPSAyNCAqIDYwICogNjAgKiAxMDAwO1xuIl19
@@ -1,64 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class BsDatepickerActions {
4
- static { this.CALCULATE = '[datepicker] calculate dates matrix'; }
5
- static { this.CHANGE_VIEWMODE = '[datepicker] switch view mode'; }
6
- static { this.FLAG = '[datepicker] set flags'; }
7
- static { this.FORMAT = '[datepicker] format datepicker values'; }
8
- static { this.HOVER = '[datepicker] hover date'; }
9
- static { this.NAVIGATE_OFFSET = '[datepicker] shift view date'; }
10
- static { this.NAVIGATE_TO = '[datepicker] change view date'; }
11
- static { this.SELECT = '[datepicker] select date'; }
12
- static { this.SELECT_RANGE = '[daterangepicker] select dates range'; }
13
- static { this.SET_IS_DISABLED = '[datepicker] set is disabled'; }
14
- static { this.SET_MAX_DATE = '[datepicker] set max date'; }
15
- static { this.SET_MIN_DATE = '[datepicker] set min date'; }
16
- static { this.SET_OPTIONS = '[datepicker] update render options'; }
17
- calculate() {
18
- return { type: BsDatepickerActions.CALCULATE };
19
- }
20
- format() {
21
- return { type: BsDatepickerActions.FORMAT };
22
- }
23
- flag() {
24
- return { type: BsDatepickerActions.FLAG };
25
- }
26
- select(date) {
27
- return { type: BsDatepickerActions.SELECT, payload: date };
28
- }
29
- changeViewMode(event) {
30
- return { type: BsDatepickerActions.CHANGE_VIEWMODE, payload: event };
31
- }
32
- navigateTo(event) {
33
- return { type: BsDatepickerActions.NAVIGATE_TO, payload: event };
34
- }
35
- navigateStep(step) {
36
- return { type: BsDatepickerActions.NAVIGATE_OFFSET, payload: step };
37
- }
38
- setOptions(options) {
39
- return { type: BsDatepickerActions.SET_OPTIONS, payload: options };
40
- }
41
- // date range picker
42
- selectRange(value) {
43
- return { type: BsDatepickerActions.SELECT_RANGE, payload: value };
44
- }
45
- hoverDay(event) {
46
- return { type: BsDatepickerActions.HOVER, payload: event.isHovered ? event.cell.date : null };
47
- }
48
- minDate(date) {
49
- return { type: BsDatepickerActions.SET_MIN_DATE, payload: date };
50
- }
51
- maxDate(date) {
52
- return { type: BsDatepickerActions.SET_MAX_DATE, payload: date };
53
- }
54
- isDisabled(value) {
55
- return { type: BsDatepickerActions.SET_IS_DISABLED, payload: value };
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerActions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
58
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerActions, providedIn: 'platform' }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerActions, decorators: [{
61
- type: Injectable,
62
- args: [{ providedIn: 'platform' }]
63
- }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFNekMsTUFBTSxPQUFPLG1CQUFtQjthQUNkLGNBQVMsR0FBVyxxQ0FBcUMsQUFBaEQsQ0FBaUQ7YUFDMUQsb0JBQWUsR0FBVywrQkFBK0IsQUFBMUMsQ0FBMkM7YUFDMUQsU0FBSSxHQUFXLHdCQUF3QixBQUFuQyxDQUFvQzthQUN4QyxXQUFNLEdBQVcsdUNBQXVDLEFBQWxELENBQW1EO2FBQ3pELFVBQUssR0FBVyx5QkFBeUIsQUFBcEMsQ0FBcUM7YUFDMUMsb0JBQWUsR0FBVyw4QkFBOEIsQUFBekMsQ0FBMEM7YUFDekQsZ0JBQVcsR0FBVywrQkFBK0IsQUFBMUMsQ0FBMkM7YUFDdEQsV0FBTSxHQUFXLDBCQUEwQixBQUFyQyxDQUFzQzthQUM1QyxpQkFBWSxHQUFXLHNDQUFzQyxBQUFqRCxDQUFrRDthQUM5RCxvQkFBZSxHQUFXLDhCQUE4QixBQUF6QyxDQUEwQzthQUN6RCxpQkFBWSxHQUFXLDJCQUEyQixBQUF0QyxDQUF1QzthQUNuRCxpQkFBWSxHQUFXLDJCQUEyQixBQUF0QyxDQUF1QzthQUNuRCxnQkFBVyxHQUFXLG9DQUFvQyxBQUEvQyxDQUFnRDtJQUUzRSxTQUFTO1FBQ1AsT0FBTyxFQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxFQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUksRUFBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBVztRQUNoQixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUEyQjtRQUN4QyxPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUE0QjtRQUNyQyxPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFlO1FBQzFCLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdDO1FBQ3pDLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLFdBQVcsQ0FBQyxLQUF3QztRQUNsRCxPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFxQjtRQUM1QixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBVztRQUNqQixPQUFPLEVBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFXO1FBQ2pCLE9BQU8sRUFBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWU7UUFDeEIsT0FBTyxFQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDO0lBQ3JFLENBQUM7K0dBbEVVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRFAsVUFBVTs7NEZBQ3RCLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUaW1lVW5pdH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9jaHJvbm9zJztcbmltcG9ydCB7QWN0aW9ufSBmcm9tICduZ3gtYm9vdHN0cmFwL21pbmktbmdyeCc7XG5pbXBvcnQge0JzRGF0ZXBpY2tlclZpZXdNb2RlLCBCc1ZpZXdOYXZpZ2F0aW9uRXZlbnQsIENlbGxIb3ZlckV2ZW50LCBEYXRlcGlja2VyUmVuZGVyT3B0aW9uc30gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdwbGF0Zm9ybSd9KVxuZXhwb3J0IGNsYXNzIEJzRGF0ZXBpY2tlckFjdGlvbnMge1xuICBzdGF0aWMgcmVhZG9ubHkgQ0FMQ1VMQVRFOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIGNhbGN1bGF0ZSBkYXRlcyBtYXRyaXgnO1xuICBzdGF0aWMgcmVhZG9ubHkgQ0hBTkdFX1ZJRVdNT0RFOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIHN3aXRjaCB2aWV3IG1vZGUnO1xuICBzdGF0aWMgcmVhZG9ubHkgRkxBRzogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBzZXQgZmxhZ3MnO1xuICBzdGF0aWMgcmVhZG9ubHkgRk9STUFUOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIGZvcm1hdCBkYXRlcGlja2VyIHZhbHVlcyc7XG4gIHN0YXRpYyByZWFkb25seSBIT1ZFUjogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBob3ZlciBkYXRlJztcbiAgc3RhdGljIHJlYWRvbmx5IE5BVklHQVRFX09GRlNFVDogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBzaGlmdCB2aWV3IGRhdGUnO1xuICBzdGF0aWMgcmVhZG9ubHkgTkFWSUdBVEVfVE86IHN0cmluZyA9ICdbZGF0ZXBpY2tlcl0gY2hhbmdlIHZpZXcgZGF0ZSc7XG4gIHN0YXRpYyByZWFkb25seSBTRUxFQ1Q6IHN0cmluZyA9ICdbZGF0ZXBpY2tlcl0gc2VsZWN0IGRhdGUnO1xuICBzdGF0aWMgcmVhZG9ubHkgU0VMRUNUX1JBTkdFOiBzdHJpbmcgPSAnW2RhdGVyYW5nZXBpY2tlcl0gc2VsZWN0IGRhdGVzIHJhbmdlJztcbiAgc3RhdGljIHJlYWRvbmx5IFNFVF9JU19ESVNBQkxFRDogc3RyaW5nID0gJ1tkYXRlcGlja2VyXSBzZXQgaXMgZGlzYWJsZWQnO1xuICBzdGF0aWMgcmVhZG9ubHkgU0VUX01BWF9EQVRFOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIHNldCBtYXggZGF0ZSc7XG4gIHN0YXRpYyByZWFkb25seSBTRVRfTUlOX0RBVEU6IHN0cmluZyA9ICdbZGF0ZXBpY2tlcl0gc2V0IG1pbiBkYXRlJztcbiAgc3RhdGljIHJlYWRvbmx5IFNFVF9PUFRJT05TOiBzdHJpbmcgPSAnW2RhdGVwaWNrZXJdIHVwZGF0ZSByZW5kZXIgb3B0aW9ucyc7XG5cbiAgY2FsY3VsYXRlKCk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLkNBTENVTEFURX07XG4gIH1cblxuICBmb3JtYXQoKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuRk9STUFUfTtcbiAgfVxuXG4gIGZsYWcoKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuRkxBR307XG4gIH1cblxuICBzZWxlY3QoZGF0ZT86IERhdGUpOiBBY3Rpb24ge1xuICAgIHJldHVybiB7dHlwZTogQnNEYXRlcGlja2VyQWN0aW9ucy5TRUxFQ1QsIHBheWxvYWQ6IGRhdGV9O1xuICB9XG5cbiAgY2hhbmdlVmlld01vZGUoZXZlbnQ6IEJzRGF0ZXBpY2tlclZpZXdNb2RlKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuQ0hBTkdFX1ZJRVdNT0RFLCBwYXlsb2FkOiBldmVudH07XG4gIH1cblxuICBuYXZpZ2F0ZVRvKGV2ZW50OiBCc1ZpZXdOYXZpZ2F0aW9uRXZlbnQpOiBBY3Rpb24ge1xuICAgIHJldHVybiB7dHlwZTogQnNEYXRlcGlja2VyQWN0aW9ucy5OQVZJR0FURV9UTywgcGF5bG9hZDogZXZlbnR9O1xuICB9XG5cbiAgbmF2aWdhdGVTdGVwKHN0ZXA/OiBUaW1lVW5pdCk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLk5BVklHQVRFX09GRlNFVCwgcGF5bG9hZDogc3RlcH07XG4gIH1cblxuICBzZXRPcHRpb25zKG9wdGlvbnM6IERhdGVwaWNrZXJSZW5kZXJPcHRpb25zKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX09QVElPTlMsIHBheWxvYWQ6IG9wdGlvbnN9O1xuICB9XG5cbiAgLy8gZGF0ZSByYW5nZSBwaWNrZXJcbiAgc2VsZWN0UmFuZ2UodmFsdWU/OiAoRGF0ZSB8IHVuZGVmaW5lZClbXSB8IHVuZGVmaW5lZCk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFTEVDVF9SQU5HRSwgcGF5bG9hZDogdmFsdWV9O1xuICB9XG5cbiAgaG92ZXJEYXkoZXZlbnQ6IENlbGxIb3ZlckV2ZW50KTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuSE9WRVIsIHBheWxvYWQ6IGV2ZW50LmlzSG92ZXJlZCA/IGV2ZW50LmNlbGwuZGF0ZSA6IG51bGx9O1xuICB9XG5cbiAgbWluRGF0ZShkYXRlPzogRGF0ZSk6IEFjdGlvbiB7XG4gICAgcmV0dXJuIHt0eXBlOiBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFVF9NSU5fREFURSwgcGF5bG9hZDogZGF0ZX07XG4gIH1cblxuICBtYXhEYXRlKGRhdGU/OiBEYXRlKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX01BWF9EQVRFLCBwYXlsb2FkOiBkYXRlfTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQodmFsdWU/OiBib29sZWFuKTogQWN0aW9uIHtcbiAgICByZXR1cm4ge3R5cGU6IEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX0lTX0RJU0FCTEVELCBwYXlsb2FkOiB2YWx1ZX07XG4gIH1cbn1cbiJdfQ==
@@ -1,128 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { combineLatest } from 'rxjs';
3
- import { filter, map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./bs-datepicker.actions";
6
- export class BsDatepickerEffects {
7
- constructor(_actions) {
8
- this._actions = _actions;
9
- this._subs = [];
10
- }
11
- init(_bsDatepickerStore) {
12
- this._store = _bsDatepickerStore;
13
- return this;
14
- }
15
- /** setters */
16
- setValue(value) {
17
- this._store?.dispatch(this._actions.select(value));
18
- }
19
- setRangeValue(value) {
20
- this._store?.dispatch(this._actions.selectRange(value));
21
- }
22
- setMinDate(value) {
23
- this._store?.dispatch(this._actions.minDate(value));
24
- return this;
25
- }
26
- setMaxDate(value) {
27
- this._store?.dispatch(this._actions.maxDate(value));
28
- return this;
29
- }
30
- setDisabled(value) {
31
- this._store?.dispatch(this._actions.isDisabled(value));
32
- return this;
33
- }
34
- /* Set rendering options */
35
- setOptions(_config) {
36
- const _options = Object.assign({ locale: 'en' }, _config);
37
- this._store?.dispatch(this._actions.setOptions(_options));
38
- return this;
39
- }
40
- /** view to mode bindings */
41
- setBindings(container) {
42
- if (!this._store)
43
- return this;
44
- container.daysCalendar$ = this._store.select(state => state.flaggedMonths).pipe(filter(months => !!months));
45
- container.monthsCalendar = this._store.select(state => state.flaggedMonthsCalendar).pipe(filter(months => !!months));
46
- container.yearsCalendar = this._store.select(state => state.yearsCalendarFlagged).pipe(filter(years => !!years));
47
- container.viewMode = this._store.select(state => state.view?.mode);
48
- container.options$ = combineLatest([this._store.select(state => state.displayMonths)]).pipe(map((latest) => ({ displayMonths: latest[0] })));
49
- return this;
50
- }
51
- /** event handlers */
52
- setEventHandlers(container) {
53
- container.setViewMode = (event) => {
54
- this._store?.dispatch(this._actions.changeViewMode(event));
55
- };
56
- container.navigateTo = (event) => {
57
- this._store?.dispatch(this._actions.navigateStep(event.step));
58
- };
59
- container.dayHoverHandler = (event) => {
60
- const _cell = event.cell;
61
- if (_cell.isOtherMonth || _cell.isDisabled)
62
- return;
63
- this._store?.dispatch(this._actions.hoverDay(event));
64
- _cell.isHovered = event.isHovered;
65
- };
66
- container.monthHoverHandler = (event) => {
67
- event.cell.isHovered = event.isHovered;
68
- };
69
- container.yearHoverHandler = (event) => {
70
- event.cell.isHovered = event.isHovered;
71
- };
72
- return this;
73
- }
74
- registerDatepickerSideEffects() {
75
- if (!this._store)
76
- return this;
77
- this._subs.push(this._store.select(state => state.view).subscribe(() => {
78
- this._store?.dispatch(this._actions.calculate());
79
- }));
80
- // format calendar values on month model change
81
- this._subs.push(this._store
82
- .select(state => state.monthsModel)
83
- .pipe(filter(monthModel => !!monthModel))
84
- .subscribe(() => this._store?.dispatch(this._actions.format())));
85
- // flag day values
86
- this._subs.push(this._store
87
- .select(state => state.formattedMonths)
88
- .pipe(filter(month => !!month))
89
- .subscribe(() => this._store?.dispatch(this._actions.flag())));
90
- // flag day values
91
- this._subs.push(this._store
92
- .select(state => state.selectedDate)
93
- .pipe(filter(selectedDate => !!selectedDate))
94
- .subscribe(() => this._store?.dispatch(this._actions.flag())));
95
- // flag for date range picker
96
- this._subs.push(this._store
97
- .select(state => state.selectedRange)
98
- .pipe(filter(selectedRange => !!selectedRange))
99
- .subscribe(() => this._store?.dispatch(this._actions.flag())));
100
- // monthsCalendar
101
- this._subs.push(this._store
102
- .select(state => state.monthsCalendar)
103
- .subscribe(() => this._store?.dispatch(this._actions.flag())));
104
- // years calendar
105
- this._subs.push(this._store
106
- .select(state => state.yearsCalendarModel)
107
- .pipe(filter(state => !!state))
108
- .subscribe(() => this._store?.dispatch(this._actions.flag())));
109
- // on hover
110
- this._subs.push(this._store
111
- .select(state => state.hoveredDate)
112
- .pipe(filter(hoveredDate => !!hoveredDate))
113
- .subscribe(() => this._store?.dispatch(this._actions.flag())));
114
- return this;
115
- }
116
- destroy() {
117
- for (const sub of this._subs) {
118
- sub.unsubscribe();
119
- }
120
- }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerEffects, deps: [{ token: i1.BsDatepickerActions }], target: i0.ɵɵFactoryTarget.Injectable }); }
122
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerEffects, providedIn: 'platform' }); }
123
- }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BsDatepickerEffects, decorators: [{
125
- type: Injectable,
126
- args: [{ providedIn: 'platform' }]
127
- }], ctorParameters: function () { return [{ type: i1.BsDatepickerActions }]; } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsYUFBYSxFQUEyQixNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFvQjNDLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsWUFBb0IsUUFBNkI7UUFBN0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUFGekMsVUFBSyxHQUFtQixFQUFFLENBQUM7SUFHbkMsQ0FBQztJQUVELElBQUksQ0FBQyxrQkFBcUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQztRQUNqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxjQUFjO0lBRWQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQXdDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxD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SUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLE1BQU07YUFDUixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUNoRSxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUM1QixHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDOytHQXBLVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQURQLFVBQVU7OzRGQUN0QixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0JzRGF0ZXBpY2tlckFic3RyYWN0Q29tcG9uZW50fSBmcm9tICcuLi9iYXNlL2JzLWRhdGVwaWNrZXItY29udGFpbmVyJztcbmltcG9ydCB7QnNEYXRlcGlja2VyQ29uZmlnfSBmcm9tICcuLi9icy1kYXRlcGlja2VyLmNvbmZpZyc7XG5cbmltcG9ydCB7XG4gIEJzRGF0ZXBpY2tlclZpZXdNb2RlLFxuICBCc05hdmlnYXRpb25FdmVudCxcbiAgQ2VsbEhvdmVyRXZlbnQsXG4gIERhdGVwaWNrZXJSZW5kZXJPcHRpb25zLFxuICBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIERheVZpZXdNb2RlbCxcbiAgTW9udGhzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIFllYXJzQ2FsZW5kYXJWaWV3TW9kZWxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7QnNEYXRlcGlja2VyQWN0aW9uc30gZnJvbSAnLi9icy1kYXRlcGlja2VyLmFjdGlvbnMnO1xuaW1wb3J0IHtCc0RhdGVwaWNrZXJTdG9yZX0gZnJvbSAnLi9icy1kYXRlcGlja2VyLnN0b3JlJztcblxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3BsYXRmb3JtJ30pXG5leHBvcnQgY2xhc3MgQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gIHZpZXdNb2RlPzogT2JzZXJ2YWJsZTxCc0RhdGVwaWNrZXJWaWV3TW9kZT47XG4gIGRheXNDYWxlbmRhcj86IE9ic2VydmFibGU8RGF5c0NhbGVuZGFyVmlld01vZGVsW10+O1xuICBtb250aHNDYWxlbmRhcj86IE9ic2VydmFibGU8TW9udGhzQ2FsZW5kYXJWaWV3TW9kZWxbXT47XG4gIHllYXJzQ2FsZW5kYXI/OiBPYnNlcnZhYmxlPFllYXJzQ2FsZW5kYXJWaWV3TW9kZWxbXT47XG4gIG9wdGlvbnM/OiBPYnNlcnZhYmxlPERhdGVwaWNrZXJSZW5kZXJPcHRpb25zPjtcblxuICBwcml2YXRlIF9zdG9yZT86IEJzRGF0ZXBpY2tlclN0b3JlO1xuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FjdGlvbnM6IEJzRGF0ZXBpY2tlckFjdGlvbnMpIHtcbiAgfVxuXG4gIGluaXQoX2JzRGF0ZXBpY2tlclN0b3JlOiBCc0RhdGVwaWNrZXJTdG9yZSk6IEJzRGF0ZXBpY2tlckVmZmVjdHMge1xuICAgIHRoaXMuX3N0b3JlID0gX2JzRGF0ZXBpY2tlclN0b3JlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIHNldHRlcnMgKi9cblxuICBzZXRWYWx1ZSh2YWx1ZT86IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5zZWxlY3QodmFsdWUpKTtcbiAgfVxuXG4gIHNldFJhbmdlVmFsdWUodmFsdWU/OiAoRGF0ZSB8IHVuZGVmaW5lZClbXSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLnNlbGVjdFJhbmdlKHZhbHVlKSk7XG4gIH1cblxuICBzZXRNaW5EYXRlKHZhbHVlPzogRGF0ZSk6IEJzRGF0ZXBpY2tlckVmZmVjdHMge1xuICAgIHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLm1pbkRhdGUodmFsdWUpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNldE1heERhdGUodmFsdWU/OiBEYXRlKTogQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gICAgdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMubWF4RGF0ZSh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0RGlzYWJsZWQodmFsdWU/OiBib29sZWFuKTogQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gICAgdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuaXNEaXNhYmxlZCh2YWx1ZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyogU2V0IHJlbmRlcmluZyBvcHRpb25zICovXG4gIHNldE9wdGlvbnMoX2NvbmZpZzogQnNEYXRlcGlja2VyQ29uZmlnKTogQnNEYXRlcGlja2VyRWZmZWN0cyB7XG4gICAgY29uc3QgX29wdGlvbnMgPSBPYmplY3QuYXNzaWduKHtsb2NhbGU6ICdlbid9LCBfY29uZmlnKTtcbiAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5zZXRPcHRpb25zKF9vcHRpb25zKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogdmlldyB0byBtb2RlIGJpbmRpbmdzICovXG4gIHNldEJpbmRpbmdzKGNvbnRhaW5lcjogQnNEYXRlcGlja2VyQWJzdHJhY3RDb21wb25lbnQpOiBCc0RhdGVwaWNrZXJFZmZlY3RzIHtcbiAgICBpZiAoIXRoaXMuX3N0b3JlKSByZXR1cm4gdGhpcztcblxuICAgIGNvbnRhaW5lci5kYXlzQ2FsZW5kYXIkID0gdGhpcy5fc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmZsYWdnZWRNb250aHMpLnBpcGUoZmlsdGVyKG1vbnRocyA9PiAhIW1vbnRocykpO1xuICAgIGNvbnRhaW5lci5tb250aHNDYWxlbmRhciA9IHRoaXMuX3N0b3JlLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5mbGFnZ2VkTW9udGhzQ2FsZW5kYXIpLnBpcGUoZmlsdGVyKG1vbnRocyA9PiAhIW1vbnRocykpO1xuICAgIGNvbnRhaW5lci55ZWFyc0NhbGVuZGFyID0gdGhpcy5fc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnllYXJzQ2FsZW5kYXJGbGFnZ2VkKS5waXBlKGZpbHRlcih5ZWFycyA9PiAhIXllYXJzKSk7XG4gICAgY29udGFpbmVyLnZpZXdNb2RlID0gdGhpcy5fc3RvcmUuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnZpZXc/Lm1vZGUpO1xuICAgIGNvbnRhaW5lci5vcHRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX3N0b3JlLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5kaXNwbGF5TW9udGhzKV0pLnBpcGUobWFwKChsYXRlc3QpID0+ICh7ZGlzcGxheU1vbnRoczogbGF0ZXN0WzBdfSkpKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIGV2ZW50IGhhbmRsZXJzICovXG4gIHNldEV2ZW50SGFuZGxlcnMoY29udGFpbmVyOiBCc0RhdGVwaWNrZXJBYnN0cmFjdENvbXBvbmVudCk6IEJzRGF0ZXBpY2tlckVmZmVjdHMge1xuICAgIGNvbnRhaW5lci5zZXRWaWV3TW9kZSA9IChldmVudDogQnNEYXRlcGlja2VyVmlld01vZGUpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmNoYW5nZVZpZXdNb2RlKGV2ZW50KSk7XG4gICAgfTtcblxuICAgIGNvbnRhaW5lci5uYXZpZ2F0ZVRvID0gKGV2ZW50OiBCc05hdmlnYXRpb25FdmVudCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMubmF2aWdhdGVTdGVwKGV2ZW50LnN0ZXApKTtcbiAgICB9O1xuXG4gICAgY29udGFpbmVyLmRheUhvdmVySGFuZGxlciA9IChldmVudDogQ2VsbEhvdmVyRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIGNvbnN0IF9jZWxsID0gZXZlbnQuY2VsbCBhcyBEYXlWaWV3TW9kZWw7XG5cbiAgICAgIGlmIChfY2VsbC5pc090aGVyTW9udGggfHwgX2NlbGwuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5ob3ZlckRheShldmVudCkpO1xuICAgICAgX2NlbGwuaXNIb3ZlcmVkID0gZXZlbnQuaXNIb3ZlcmVkO1xuICAgIH07XG5cbiAgICBjb250YWluZXIubW9udGhIb3ZlckhhbmRsZXIgPSAoZXZlbnQ6IENlbGxIb3ZlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBldmVudC5jZWxsLmlzSG92ZXJlZCA9IGV2ZW50LmlzSG92ZXJlZDtcbiAgICB9O1xuXG4gICAgY29udGFpbmVyLnllYXJIb3ZlckhhbmRsZXIgPSAoZXZlbnQ6IENlbGxIb3ZlckV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBldmVudC5jZWxsLmlzSG92ZXJlZCA9IGV2ZW50LmlzSG92ZXJlZDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByZWdpc3RlckRhdGVwaWNrZXJTaWRlRWZmZWN0cygpOiBCc0RhdGVwaWNrZXJFZmZlY3RzIHtcbiAgICBpZiAoIXRoaXMuX3N0b3JlKSByZXR1cm4gdGhpcztcblxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS52aWV3KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5jYWxjdWxhdGUoKSk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvLyBmb3JtYXQgY2FsZW5kYXIgdmFsdWVzIG9uIG1vbnRoIG1vZGVsIGNoYW5nZVxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUubW9udGhzTW9kZWwpXG4gICAgICAgIC5waXBlKGZpbHRlcihtb250aE1vZGVsID0+ICEhbW9udGhNb2RlbCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuZm9ybWF0KCkpKVxuICAgICk7XG5cbiAgICAvLyBmbGFnIGRheSB2YWx1ZXNcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmZvcm1hdHRlZE1vbnRocylcbiAgICAgICAgLnBpcGUoZmlsdGVyKG1vbnRoID0+ICEhbW9udGgpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmZsYWcoKSkpXG4gICAgKTtcblxuICAgIC8vIGZsYWcgZGF5IHZhbHVlc1xuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuc2VsZWN0ZWREYXRlKVxuICAgICAgICAucGlwZShmaWx0ZXIoc2VsZWN0ZWREYXRlID0+ICEhc2VsZWN0ZWREYXRlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5mbGFnKCkpKVxuICAgICk7XG5cbiAgICAvLyBmbGFnIGZvciBkYXRlIHJhbmdlIHBpY2tlclxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuc2VsZWN0ZWRSYW5nZSlcbiAgICAgICAgLnBpcGUoZmlsdGVyKHNlbGVjdGVkUmFuZ2UgPT4gISFzZWxlY3RlZFJhbmdlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zdG9yZT8uZGlzcGF0Y2godGhpcy5fYWN0aW9ucy5mbGFnKCkpKVxuICAgICk7XG5cbiAgICAvLyBtb250aHNDYWxlbmRhclxuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUubW9udGhzQ2FsZW5kYXIpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc3RvcmU/LmRpc3BhdGNoKHRoaXMuX2FjdGlvbnMuZmxhZygpKSlcbiAgICApO1xuXG4gICAgLy8geWVhcnMgY2FsZW5kYXJcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnllYXJzQ2FsZW5kYXJNb2RlbClcbiAgICAgICAgLnBpcGUoZmlsdGVyKHN0YXRlID0+ICEhc3RhdGUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmZsYWcoKSkpXG4gICAgKTtcblxuICAgIC8vIG9uIGhvdmVyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxuICAgICAgdGhpcy5fc3RvcmVcbiAgICAgICAgLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5ob3ZlcmVkRGF0ZSlcbiAgICAgICAgLnBpcGUoZmlsdGVyKGhvdmVyZWREYXRlID0+ICEhaG92ZXJlZERhdGUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3N0b3JlPy5kaXNwYXRjaCh0aGlzLl9hY3Rpb25zLmZsYWcoKSkpXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN1YiBvZiB0aGlzLl9zdWJzKSB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,301 +0,0 @@
1
- import { initialDatepickerState } from './bs-datepicker.state';
2
- import { BsDatepickerActions } from './bs-datepicker.actions';
3
- import { calcDaysCalendar } from '../engine/calc-days-calendar';
4
- import { formatDaysCalendar } from '../engine/format-days-calendar';
5
- import { flagDaysCalendar } from '../engine/flag-days-calendar';
6
- import { getLocale, isAfter, isArray, isBefore, isDateValid, isSame, setFullDate, shiftDate, startOf } from 'ngx-bootstrap/chronos';
7
- import { canSwitchMode } from '../engine/view-mode';
8
- import { formatMonthsCalendar } from '../engine/format-months-calendar';
9
- import { flagMonthsCalendar } from '../engine/flag-months-calendar';
10
- import { formatYearsCalendar, initialYearShift, yearsPerCalendar } from '../engine/format-years-calendar';
11
- import { flagYearsCalendar } from '../engine/flag-years-calendar';
12
- import { getYearsCalendarInitialDate } from '../utils/bs-calendar-utils';
13
- export function bsDatepickerReducer(state = initialDatepickerState, action) {
14
- switch (action.type) {
15
- case BsDatepickerActions.CALCULATE: {
16
- return calculateReducer(state);
17
- }
18
- case BsDatepickerActions.FORMAT: {
19
- return formatReducer(state);
20
- }
21
- case BsDatepickerActions.FLAG: {
22
- return flagReducer(state);
23
- }
24
- case BsDatepickerActions.NAVIGATE_OFFSET: {
25
- return navigateOffsetReducer(state, action);
26
- }
27
- case BsDatepickerActions.NAVIGATE_TO: {
28
- const payload = action.payload;
29
- if (!state.view || !payload.unit)
30
- return state;
31
- const date = setFullDate(state.view.date, payload.unit);
32
- let newState;
33
- let mode;
34
- if (canSwitchMode(payload.viewMode, state.minMode)) {
35
- mode = payload.viewMode;
36
- newState = { view: { date, mode } };
37
- }
38
- else {
39
- mode = state.view.mode;
40
- newState = { selectedDate: date, view: { date, mode } };
41
- }
42
- return Object.assign({}, state, newState);
43
- }
44
- case BsDatepickerActions.CHANGE_VIEWMODE: {
45
- if (!canSwitchMode(action.payload, state.minMode) || !state.view)
46
- return state;
47
- const date = state.view.date;
48
- const mode = action.payload;
49
- const newState = { view: { date, mode } };
50
- return Object.assign({}, state, newState);
51
- }
52
- case BsDatepickerActions.HOVER: {
53
- return Object.assign({}, state, { hoveredDate: action.payload });
54
- }
55
- case BsDatepickerActions.SELECT: {
56
- if (!state.view)
57
- return state;
58
- const newState = {
59
- selectedDate: action.payload,
60
- view: state.view
61
- };
62
- const mode = state.view.mode;
63
- const _date = action.payload || state.view.date;
64
- const date = getViewDate(_date, state.minDate, state.maxDate);
65
- newState.view = { mode, date };
66
- return Object.assign({}, state, newState);
67
- }
68
- case BsDatepickerActions.SET_OPTIONS: {
69
- if (!state.view)
70
- return state;
71
- const newState = action.payload;
72
- // preserve view mode
73
- const mode = newState.minMode ? newState.minMode : state.view.mode;
74
- const _viewDate = isDateValid(newState.value) && newState.value || isArray(newState.value) && isDateValid(newState.value[0]) && newState.value[0] || state.view.date;
75
- const date = getViewDate(_viewDate, newState.minDate, newState.maxDate);
76
- newState.view = { mode, date };
77
- // update selected value
78
- if (newState.value) {
79
- // if new value is array we work with date range
80
- if (isArray(newState.value)) {
81
- newState.selectedRange = newState.value;
82
- }
83
- // if new value is a date -> datepicker
84
- if (newState.value instanceof Date) {
85
- newState.selectedDate = newState.value;
86
- }
87
- }
88
- return Object.assign({}, state, newState);
89
- }
90
- // date range picker
91
- case BsDatepickerActions.SELECT_RANGE: {
92
- if (!state.view)
93
- return state;
94
- const newState = {
95
- selectedRange: action.payload,
96
- view: state.view
97
- };
98
- const mode = state.view.mode;
99
- const _date = action.payload && action.payload[0] || state.view.date;
100
- const date = getViewDate(_date, state.minDate, state.maxDate);
101
- newState.view = { mode, date };
102
- return Object.assign({}, state, newState);
103
- }
104
- case BsDatepickerActions.SET_MIN_DATE: {
105
- return Object.assign({}, state, {
106
- minDate: action.payload
107
- });
108
- }
109
- case BsDatepickerActions.SET_MAX_DATE: {
110
- return Object.assign({}, state, {
111
- maxDate: action.payload
112
- });
113
- }
114
- case BsDatepickerActions.SET_IS_DISABLED: {
115
- return Object.assign({}, state, {
116
- isDisabled: action.payload
117
- });
118
- }
119
- default:
120
- return state;
121
- }
122
- }
123
- function calculateReducer(state) {
124
- if (!state.view)
125
- return state;
126
- // how many calendars
127
- let displayMonths = state.displayMonths;
128
- // use selected date on initial rendering if set
129
- let viewDate = state.view.date;
130
- if (state.view.mode === 'day' && state.monthViewOptions) {
131
- state.monthViewOptions.firstDayOfWeek = getLocale(state.locale).firstDayOfWeek();
132
- let monthsModel = new Array(displayMonths);
133
- for (let monthIndex = 0; monthIndex < displayMonths; monthIndex++) {
134
- monthsModel[monthIndex] = calcDaysCalendar(viewDate, state.monthViewOptions);
135
- viewDate = shiftDate(viewDate, { month: 1 });
136
- }
137
- // Check if parameter enabled and check if it's not months navigation event
138
- if (state.preventChangeToNextMonth && state.flaggedMonths && state.hoveredDate) {
139
- const viewMonth = calcDaysCalendar(state.view.date, state.monthViewOptions);
140
- // Check if viewed right month same as in flaggedMonths state, then override months model with flaggedMonths
141
- if (state.flaggedMonths.length >= 2) {
142
- if (state.flaggedMonths[1].month.getMonth() === viewMonth.month.getMonth()) {
143
- monthsModel = state.flaggedMonths.map((item) => {
144
- return state.monthViewOptions ? calcDaysCalendar(item.month, state.monthViewOptions) : null;
145
- }).filter(item => item !== null);
146
- }
147
- }
148
- else {
149
- monthsModel = state.flaggedMonths.map((item) => {
150
- return state.monthViewOptions ? calcDaysCalendar(item.month, state.monthViewOptions) : null;
151
- }).filter(item => item !== null);
152
- }
153
- }
154
- return Object.assign({}, state, { monthsModel });
155
- }
156
- if (state.view.mode === 'month') {
157
- const monthsCalendar = new Array(displayMonths);
158
- for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
159
- monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));
160
- viewDate = shiftDate(viewDate, { year: 1 });
161
- }
162
- return Object.assign({}, state, { monthsCalendar });
163
- }
164
- if (state.view.mode === 'year') {
165
- const yearsCalendarModel = new Array(displayMonths);
166
- for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
167
- yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state), state.minMode === 'year' ? getYearsCalendarInitialDate(state, calendarIndex) : undefined, state.selectedDate ? state.selectedDate : new Date());
168
- viewDate = shiftDate(viewDate, { year: yearsPerCalendar });
169
- }
170
- return Object.assign({}, state, { yearsCalendarModel });
171
- }
172
- return state;
173
- }
174
- function formatReducer(state) {
175
- if (!state.view)
176
- return state;
177
- if (state.view.mode === 'day' && state.monthsModel) {
178
- const formattedMonths = state.monthsModel.map((month, monthIndex) => formatDaysCalendar(month, getFormatOptions(state), monthIndex));
179
- return Object.assign({}, state, { formattedMonths });
180
- }
181
- // how many calendars
182
- const displayMonths = state.displayMonths || 1;
183
- // check initial rendering
184
- // use selected date on initial rendering if set
185
- let viewDate = state.view.date;
186
- if (state.view.mode === 'month') {
187
- const monthsCalendar = new Array(displayMonths);
188
- for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
189
- monthsCalendar[calendarIndex] = formatMonthsCalendar(viewDate, getFormatOptions(state));
190
- viewDate = shiftDate(viewDate, { year: 1 });
191
- }
192
- return Object.assign({}, state, { monthsCalendar });
193
- }
194
- if (state.view.mode === 'year') {
195
- const yearsCalendarModel = new Array(displayMonths);
196
- for (let calendarIndex = 0; calendarIndex < displayMonths; calendarIndex++) {
197
- yearsCalendarModel[calendarIndex] = formatYearsCalendar(viewDate, getFormatOptions(state), undefined, state.selectedDate ? state.selectedDate : new Date());
198
- viewDate = shiftDate(viewDate, { year: 16 });
199
- }
200
- return Object.assign({}, state, { yearsCalendarModel });
201
- }
202
- return state;
203
- }
204
- function flagReducer(state) {
205
- if (!state.view)
206
- return state;
207
- const displayMonths = isDisplayOneMonth(state.view.date, state.minDate, state.maxDate) ? 1 : state.displayMonths;
208
- if (state.formattedMonths && state.view.mode === 'day') {
209
- const flaggedMonths = state.formattedMonths.map((formattedMonth, monthIndex) => flagDaysCalendar(formattedMonth, {
210
- isDisabled: state.isDisabled,
211
- minDate: state.minDate,
212
- maxDate: state.maxDate,
213
- hoveredDate: state.hoveredDate,
214
- selectedDate: state.selectedDate,
215
- selectedRange: state.selectedRange,
216
- displayMonths,
217
- monthIndex
218
- }));
219
- return Object.assign({}, state, { flaggedMonths });
220
- }
221
- if (state.view.mode === 'month' && state.monthsCalendar) {
222
- const flaggedMonthsCalendar = state.monthsCalendar.map((formattedMonth, monthIndex) => flagMonthsCalendar(formattedMonth, {
223
- isDisabled: state.isDisabled,
224
- minDate: state.minDate,
225
- maxDate: state.maxDate,
226
- hoveredMonth: state.hoveredMonth,
227
- selectedDate: state.selectedDate,
228
- selectedRange: state.selectedRange,
229
- displayMonths,
230
- monthIndex
231
- }));
232
- return Object.assign({}, state, { flaggedMonthsCalendar });
233
- }
234
- if (state.view.mode === 'year' && state.yearsCalendarModel) {
235
- const yearsCalendarFlagged = state.yearsCalendarModel.map((formattedMonth, yearIndex) => flagYearsCalendar(formattedMonth, {
236
- isDisabled: state.isDisabled,
237
- minDate: state.minDate,
238
- maxDate: state.maxDate,
239
- hoveredYear: state.hoveredYear,
240
- selectedDate: state.selectedDate,
241
- selectedRange: state.selectedRange,
242
- displayMonths,
243
- yearIndex
244
- }));
245
- return Object.assign({}, state, { yearsCalendarFlagged });
246
- }
247
- return state;
248
- }
249
- function navigateOffsetReducer(state, action) {
250
- if (!state.view)
251
- return state;
252
- const date = shiftViewDate(state, action);
253
- if (!date)
254
- return state;
255
- const newState = {
256
- view: { mode: state.view.mode, date }
257
- };
258
- return Object.assign({}, state, newState);
259
- }
260
- function shiftViewDate(state, action) {
261
- if (!state.view)
262
- return undefined;
263
- if (state.view.mode === 'year' && state.minMode === 'year') {
264
- const initialDate = getYearsCalendarInitialDate(state, 0);
265
- if (initialDate) {
266
- const middleDate = shiftDate(initialDate, { year: -initialYearShift });
267
- return shiftDate(middleDate, action.payload);
268
- }
269
- }
270
- return shiftDate(startOf(state.view.date, 'month'), action.payload);
271
- }
272
- function getFormatOptions(state) {
273
- return {
274
- locale: state.locale,
275
- monthTitle: state.monthTitle,
276
- yearTitle: state.yearTitle,
277
- dayLabel: state.dayLabel,
278
- monthLabel: state.monthLabel,
279
- yearLabel: state.yearLabel
280
- };
281
- }
282
- /**
283
- * if view date is provided (bsValue|ngModel) it should be shown
284
- * if view date is not provider:
285
- * if minDate>currentDate (default view value), show minDate
286
- * if maxDate<currentDate(default view value) show maxDate
287
- */
288
- function getViewDate(viewDate, minDate, maxDate) {
289
- const _date = Array.isArray(viewDate) ? viewDate[0] : viewDate;
290
- if (minDate && isAfter(minDate, _date, 'day'))
291
- return minDate;
292
- if (maxDate && isBefore(maxDate, _date, 'day'))
293
- return maxDate;
294
- return _date;
295
- }
296
- function isDisplayOneMonth(viewDate, minDate, maxDate) {
297
- if (maxDate && isSame(maxDate, viewDate, 'day'))
298
- return true;
299
- return minDate && maxDate && minDate.getMonth() === maxDate.getMonth();
300
- }
301
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnMtZGF0ZXBpY2tlci5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2RhdGVwaWNrZXIvcmVkdWNlci9icy1kYXRlcGlja2VyLnJlZHVjZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQyxzQkFBc0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXZHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFDTCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxRQUFRLEVBQ1IsV0FBVyxFQUNYLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULE9BQU8sRUFDUixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQVVoRSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUd2RSxNQUFNLFVBQVUsbUJBQW1C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LENBQUM7QUFDekUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QnNEYXRlcGlja2VyU3RhdGUsIEJzRGF0ZXBpY2tlclZpZXdTdGF0ZSwgaW5pdGlhbERhdGVwaWNrZXJTdGF0ZX0gZnJvbSAnLi9icy1kYXRlcGlja2VyLnN0YXRlJztcbmltcG9ydCB7QWN0aW9ufSBmcm9tICduZ3gtYm9vdHN0cmFwL21pbmktbmdyeCc7XG5pbXBvcnQge0JzRGF0ZXBpY2tlckFjdGlvbnN9IGZyb20gJy4vYnMtZGF0ZXBpY2tlci5hY3Rpb25zJztcbmltcG9ydCB7Y2FsY0RheXNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2NhbGMtZGF5cy1jYWxlbmRhcic7XG5pbXBvcnQge2Zvcm1hdERheXNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2Zvcm1hdC1kYXlzLWNhbGVuZGFyJztcbmltcG9ydCB7ZmxhZ0RheXNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2ZsYWctZGF5cy1jYWxlbmRhcic7XG5pbXBvcnQge1xuICBnZXRMb2NhbGUsXG4gIGlzQWZ0ZXIsXG4gIGlzQXJyYXksXG4gIGlzQmVmb3JlLFxuICBpc0RhdGVWYWxpZCxcbiAgaXNTYW1lLFxuICBzZXRGdWxsRGF0ZSxcbiAgc2hpZnREYXRlLFxuICBzdGFydE9mXG59IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5pbXBvcnQge2NhblN3aXRjaE1vZGV9IGZyb20gJy4uL2VuZ2luZS92aWV3LW1vZGUnO1xuaW1wb3J0IHtmb3JtYXRNb250aHNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2Zvcm1hdC1tb250aHMtY2FsZW5kYXInO1xuaW1wb3J0IHtmbGFnTW9udGhzQ2FsZW5kYXJ9IGZyb20gJy4uL2VuZ2luZS9mbGFnLW1vbnRocy1jYWxlbmRhcic7XG5pbXBvcnQge2Zvcm1hdFllYXJzQ2FsZW5kYXIsIGluaXRpYWxZZWFyU2hpZnQsIHllYXJzUGVyQ2FsZW5kYXJ9IGZyb20gJy4uL2VuZ2luZS9mb3JtYXQteWVhcnMtY2FsZW5kYXInO1xuaW1wb3J0IHtmbGFnWWVhcnNDYWxlbmRhcn0gZnJvbSAnLi4vZW5naW5lL2ZsYWcteWVhcnMtY2FsZW5kYXInO1xuaW1wb3J0IHtcbiAgQnNEYXRlcGlja2VyVmlld01vZGUsXG4gIEJzVmlld05hdmlnYXRpb25FdmVudCxcbiAgRGF0ZXBpY2tlckZvcm1hdE9wdGlvbnMsXG4gIERheXNDYWxlbmRhck1vZGVsLFxuICBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsXG4gIE1vbnRoc0NhbGVuZGFyVmlld01vZGVsLFxuICBZZWFyc0NhbGVuZGFyVmlld01vZGVsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge2dldFllYXJzQ2FsZW5kYXJJbml0aWFsRGF0ZX0gZnJvbSAnLi4vdXRpbHMvYnMtY2FsZW5kYXItdXRpbHMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBic0RhdGVwaWNrZXJSZWR1Y2VyKHN0YXRlOiBCc0RhdGVwaWNrZXJTdGF0ZSA9IGluaXRpYWxEYXRlcGlja2VyU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogQnNEYXRlcGlja2VyU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLkNBTENVTEFURToge1xuICAgICAgcmV0dXJuIGNhbGN1bGF0ZVJlZHVjZXIoc3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5GT1JNQVQ6IHtcbiAgICAgIHJldHVybiBmb3JtYXRSZWR1Y2VyKHN0YXRlKTtcbiAgICB9XG5cbiAgICBjYXNlIEJzRGF0ZXBpY2tlckFjdGlvbnMuRkxBRzoge1xuICAgICAgcmV0dXJuIGZsYWdSZWR1Y2VyKHN0YXRlKTtcbiAgICB9XG5cbiAgICBjYXNlIEJzRGF0ZXBpY2tlckFjdGlvbnMuTkFWSUdBVEVfT0ZGU0VUOiB7XG4gICAgICByZXR1cm4gbmF2aWdhdGVPZmZzZXRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5OQVZJR0FURV9UTzoge1xuICAgICAgY29uc3QgcGF5bG9hZDogQnNWaWV3TmF2aWdhdGlvbkV2ZW50ID0gYWN0aW9uLnBheWxvYWQ7XG5cbiAgICAgIGlmICghc3RhdGUudmlldyB8fCAhcGF5bG9hZC51bml0KSByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNvbnN0IGRhdGU6IERhdGUgPSBzZXRGdWxsRGF0ZShzdGF0ZS52aWV3LmRhdGUsIHBheWxvYWQudW5pdCk7XG5cbiAgICAgIGxldCBuZXdTdGF0ZTtcbiAgICAgIGxldCBtb2RlOiBCc0RhdGVwaWNrZXJWaWV3TW9kZTtcblxuICAgICAgaWYgKGNhblN3aXRjaE1vZGUocGF5bG9hZC52aWV3TW9kZSwgc3RhdGUubWluTW9kZSkpIHtcbiAgICAgICAgbW9kZSA9IHBheWxvYWQudmlld01vZGU7XG4gICAgICAgIG5ld1N0YXRlID0ge3ZpZXc6IHtkYXRlLCBtb2RlfX07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtb2RlID0gc3RhdGUudmlldy5tb2RlO1xuICAgICAgICBuZXdTdGF0ZSA9IHtzZWxlY3RlZERhdGU6IGRhdGUsIHZpZXc6IHtkYXRlLCBtb2RlfX07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5DSEFOR0VfVklFV01PREU6IHtcbiAgICAgIGlmICghY2FuU3dpdGNoTW9kZShhY3Rpb24ucGF5bG9hZCwgc3RhdGUubWluTW9kZSkgfHwgIXN0YXRlLnZpZXcpIHJldHVybiBzdGF0ZTtcblxuICAgICAgY29uc3QgZGF0ZTogRGF0ZSA9IHN0YXRlLnZpZXcuZGF0ZTtcbiAgICAgIGNvbnN0IG1vZGUgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge3ZpZXc6IHtkYXRlLCBtb2RlfX07XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5IT1ZFUjoge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7aG92ZXJlZERhdGU6IGFjdGlvbi5wYXlsb2FkfSk7XG4gICAgfVxuXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFTEVDVDoge1xuICAgICAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBzZWxlY3RlZERhdGU6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB2aWV3OiBzdGF0ZS52aWV3XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBtb2RlID0gc3RhdGUudmlldy5tb2RlO1xuICAgICAgY29uc3QgX2RhdGUgPSBhY3Rpb24ucGF5bG9hZCB8fCBzdGF0ZS52aWV3LmRhdGU7XG4gICAgICBjb25zdCBkYXRlOiBEYXRlID0gZ2V0Vmlld0RhdGUoX2RhdGUsIHN0YXRlLm1pbkRhdGUsIHN0YXRlLm1heERhdGUpO1xuICAgICAgbmV3U3RhdGUudmlldyA9IHttb2RlLCBkYXRlfTtcblxuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBuZXdTdGF0ZSk7XG4gICAgfVxuXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFVF9PUFRJT05TOiB7XG4gICAgICBpZiAoIXN0YXRlLnZpZXcpIHJldHVybiBzdGF0ZTtcblxuICAgICAgY29uc3QgbmV3U3RhdGUgPSBhY3Rpb24ucGF5bG9hZDtcbiAgICAgIC8vIHByZXNlcnZlIHZpZXcgbW9kZVxuICAgICAgY29uc3QgbW9kZSA9IG5ld1N0YXRlLm1pbk1vZGUgPyBuZXdTdGF0ZS5taW5Nb2RlIDogc3RhdGUudmlldy5tb2RlO1xuICAgICAgY29uc3QgX3ZpZXdEYXRlID0gaXNEYXRlVmFsaWQobmV3U3RhdGUudmFsdWUpICYmIG5ld1N0YXRlLnZhbHVlIHx8IGlzQXJyYXkobmV3U3RhdGUudmFsdWUpICYmIGlzRGF0ZVZhbGlkKG5ld1N0YXRlLnZhbHVlWzBdKSAmJiBuZXdTdGF0ZS52YWx1ZVswXSB8fCBzdGF0ZS52aWV3LmRhdGU7XG4gICAgICBjb25zdCBkYXRlOiBEYXRlID0gZ2V0Vmlld0RhdGUoX3ZpZXdEYXRlLCBuZXdTdGF0ZS5taW5EYXRlLCBuZXdTdGF0ZS5tYXhEYXRlKTtcbiAgICAgIG5ld1N0YXRlLnZpZXcgPSB7bW9kZSwgZGF0ZX07XG5cbiAgICAgIC8vIHVwZGF0ZSBzZWxlY3RlZCB2YWx1ZVxuICAgICAgaWYgKG5ld1N0YXRlLnZhbHVlKSB7XG4gICAgICAgIC8vIGlmIG5ldyB2YWx1ZSBpcyBhcnJheSB3ZSB3b3JrIHdpdGggZGF0ZSByYW5nZVxuICAgICAgICBpZiAoaXNBcnJheShuZXdTdGF0ZS52YWx1ZSkpIHtcbiAgICAgICAgICBuZXdTdGF0ZS5zZWxlY3RlZFJhbmdlID0gbmV3U3RhdGUudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBuZXcgdmFsdWUgaXMgYSBkYXRlIC0+IGRhdGVwaWNrZXJcbiAgICAgICAgaWYgKG5ld1N0YXRlLnZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIG5ld1N0YXRlLnNlbGVjdGVkRGF0ZSA9IG5ld1N0YXRlLnZhbHVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIC8vIGRhdGUgcmFuZ2UgcGlja2VyXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFTEVDVF9SQU5HRToge1xuICAgICAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBzZWxlY3RlZFJhbmdlOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgdmlldzogc3RhdGUudmlld1xuICAgICAgfTtcblxuICAgICAgY29uc3QgbW9kZSA9IHN0YXRlLnZpZXcubW9kZTtcbiAgICAgIGNvbnN0IF9kYXRlID0gYWN0aW9uLnBheWxvYWQgJiYgYWN0aW9uLnBheWxvYWRbMF0gfHwgc3RhdGUudmlldy5kYXRlO1xuICAgICAgY29uc3QgZGF0ZTogRGF0ZSA9IGdldFZpZXdEYXRlKF9kYXRlLCBzdGF0ZS5taW5EYXRlLCBzdGF0ZS5tYXhEYXRlKTtcbiAgICAgIG5ld1N0YXRlLnZpZXcgPSB7bW9kZSwgZGF0ZX07XG5cbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgbmV3U3RhdGUpO1xuICAgIH1cblxuICAgIGNhc2UgQnNEYXRlcGlja2VyQWN0aW9ucy5TRVRfTUlOX0RBVEU6IHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge1xuICAgICAgICBtaW5EYXRlOiBhY3Rpb24ucGF5bG9hZFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2FzZSBCc0RhdGVwaWNrZXJBY3Rpb25zLlNFVF9NQVhfREFURToge1xuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7XG4gICAgICAgIG1heERhdGU6IGFjdGlvbi5wYXlsb2FkXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjYXNlIEJzRGF0ZXBpY2tlckFjdGlvbnMuU0VUX0lTX0RJU0FCTEVEOiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogYWN0aW9uLnBheWxvYWRcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsY3VsYXRlUmVkdWNlcihzdGF0ZTogQnNEYXRlcGlja2VyU3RhdGUpOiBCc0RhdGVwaWNrZXJTdGF0ZSB7XG4gIGlmICghc3RhdGUudmlldykgcmV0dXJuIHN0YXRlO1xuXG4gIC8vIGhvdyBtYW55IGNhbGVuZGFyc1xuICBsZXQgZGlzcGxheU1vbnRoczogbnVtYmVyID0gc3RhdGUuZGlzcGxheU1vbnRocztcblxuICAvLyB1c2Ugc2VsZWN0ZWQgZGF0ZSBvbiBpbml0aWFsIHJlbmRlcmluZyBpZiBzZXRcbiAgbGV0IHZpZXdEYXRlOiBEYXRlID0gc3RhdGUudmlldy5kYXRlO1xuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdkYXknICYmIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpIHtcbiAgICBzdGF0ZS5tb250aFZpZXdPcHRpb25zLmZpcnN0RGF5T2ZXZWVrID0gZ2V0TG9jYWxlKHN0YXRlLmxvY2FsZSkuZmlyc3REYXlPZldlZWsoKTtcblxuICAgIGxldCBtb250aHNNb2RlbCA9IG5ldyBBcnJheShkaXNwbGF5TW9udGhzKTtcbiAgICBmb3IgKGxldCBtb250aEluZGV4OiBudW1iZXIgPSAwOyBtb250aEluZGV4IDwgZGlzcGxheU1vbnRoczsgbW9udGhJbmRleCsrKSB7XG4gICAgICBtb250aHNNb2RlbFttb250aEluZGV4XSA9IGNhbGNEYXlzQ2FsZW5kYXIodmlld0RhdGUsIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpO1xuICAgICAgdmlld0RhdGUgPSBzaGlmdERhdGUodmlld0RhdGUsIHttb250aDogMX0pO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHBhcmFtZXRlciBlbmFibGVkIGFuZCBjaGVjayBpZiBpdCdzIG5vdCBtb250aHMgbmF2aWdhdGlvbiBldmVudFxuICAgIGlmIChzdGF0ZS5wcmV2ZW50Q2hhbmdlVG9OZXh0TW9udGggJiYgc3RhdGUuZmxhZ2dlZE1vbnRocyAmJiBzdGF0ZS5ob3ZlcmVkRGF0ZSkge1xuICAgICAgY29uc3Qgdmlld01vbnRoOiBEYXlzQ2FsZW5kYXJNb2RlbCA9IGNhbGNEYXlzQ2FsZW5kYXIoc3RhdGUudmlldy5kYXRlLCBzdGF0ZS5tb250aFZpZXdPcHRpb25zKTtcblxuICAgICAgLy8gQ2hlY2sgaWYgdmlld2VkIHJpZ2h0IG1vbnRoIHNhbWUgYXMgaW4gZmxhZ2dlZE1vbnRocyBzdGF0ZSwgdGhlbiBvdmVycmlkZSBtb250aHMgbW9kZWwgd2l0aCBmbGFnZ2VkTW9udGhzXG4gICAgICBpZiAoc3RhdGUuZmxhZ2dlZE1vbnRocy5sZW5ndGggPj0gMikge1xuICAgICAgICBpZiAoc3RhdGUuZmxhZ2dlZE1vbnRoc1sxXS5tb250aC5nZXRNb250aCgpID09PSB2aWV3TW9udGgubW9udGguZ2V0TW9udGgoKSkge1xuICAgICAgICAgIG1vbnRoc01vZGVsID0gc3RhdGUuZmxhZ2dlZE1vbnRocy5tYXAoKGl0ZW06IERheXNDYWxlbmRhclZpZXdNb2RlbCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHN0YXRlLm1vbnRoVmlld09wdGlvbnMgPyBjYWxjRGF5c0NhbGVuZGFyKGl0ZW0ubW9udGgsIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpIDogbnVsbDtcbiAgICAgICAgICB9KS5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9udGhzTW9kZWwgPSBzdGF0ZS5mbGFnZ2VkTW9udGhzLm1hcCgoaXRlbTogRGF5c0NhbGVuZGFyVmlld01vZGVsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlLm1vbnRoVmlld09wdGlvbnMgPyBjYWxjRGF5c0NhbGVuZGFyKGl0ZW0ubW9udGgsIHN0YXRlLm1vbnRoVmlld09wdGlvbnMpIDogbnVsbDtcbiAgICAgICAgfSkuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gbnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7bW9udGhzTW9kZWx9KTtcbiAgfVxuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdtb250aCcpIHtcbiAgICBjb25zdCBtb250aHNDYWxlbmRhciA9IG5ldyBBcnJheShkaXNwbGF5TW9udGhzKTtcblxuICAgIGZvciAobGV0IGNhbGVuZGFySW5kZXg6IG51bWJlciA9IDA7IGNhbGVuZGFySW5kZXggPCBkaXNwbGF5TW9udGhzOyBjYWxlbmRhckluZGV4KyspIHtcbiAgICAgIG1vbnRoc0NhbGVuZGFyW2NhbGVuZGFySW5kZXhdID0gZm9ybWF0TW9udGhzQ2FsZW5kYXIodmlld0RhdGUsIGdldEZvcm1hdE9wdGlvbnMoc3RhdGUpKTtcbiAgICAgIHZpZXdEYXRlID0gc2hpZnREYXRlKHZpZXdEYXRlLCB7eWVhcjogMX0pO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge21vbnRoc0NhbGVuZGFyfSk7XG4gIH1cblxuICBpZiAoc3RhdGUudmlldy5tb2RlID09PSAneWVhcicpIHtcbiAgICBjb25zdCB5ZWFyc0NhbGVuZGFyTW9kZWwgPSBuZXcgQXJyYXkoZGlzcGxheU1vbnRocyk7XG5cbiAgICBmb3IgKGxldCBjYWxlbmRhckluZGV4OiBudW1iZXIgPSAwOyBjYWxlbmRhckluZGV4IDwgZGlzcGxheU1vbnRoczsgY2FsZW5kYXJJbmRleCsrKSB7XG4gICAgICB5ZWFyc0NhbGVuZGFyTW9kZWxbY2FsZW5kYXJJbmRleF0gPSBmb3JtYXRZZWFyc0NhbGVuZGFyKHZpZXdEYXRlLCBnZXRGb3JtYXRPcHRpb25zKHN0YXRlKSwgc3RhdGUubWluTW9kZSA9PT0gJ3llYXInID8gZ2V0WWVhcnNDYWxlbmRhckluaXRpYWxEYXRlKHN0YXRlLCBjYWxlbmRhckluZGV4KSA6IHVuZGVmaW5lZCwgc3RhdGUuc2VsZWN0ZWREYXRlID8gc3RhdGUuc2VsZWN0ZWREYXRlIDogbmV3IERhdGUoKSk7XG4gICAgICB2aWV3RGF0ZSA9IHNoaWZ0RGF0ZSh2aWV3RGF0ZSwge3llYXI6IHllYXJzUGVyQ2FsZW5kYXJ9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHt5ZWFyc0NhbGVuZGFyTW9kZWx9KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0UmVkdWNlcihzdGF0ZTogQnNEYXRlcGlja2VyU3RhdGUpOiBCc0RhdGVwaWNrZXJTdGF0ZSB7XG4gIGlmICghc3RhdGUudmlldykgcmV0dXJuIHN0YXRlO1xuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdkYXknICYmIHN0YXRlLm1vbnRoc01vZGVsKSB7XG4gICAgY29uc3QgZm9ybWF0dGVkTW9udGhzOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWxbXSA9IHN0YXRlLm1vbnRoc01vZGVsLm1hcCgobW9udGg6IERheXNDYWxlbmRhck1vZGVsLCBtb250aEluZGV4OiBudW1iZXIpID0+IGZvcm1hdERheXNDYWxlbmRhcihtb250aCwgZ2V0Rm9ybWF0T3B0aW9ucyhzdGF0ZSksIG1vbnRoSW5kZXgpKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwge2Zvcm1hdHRlZE1vbnRoc30pO1xuICB9XG5cbiAgLy8gaG93IG1hbnkgY2FsZW5kYXJzXG4gIGNvbnN0IGRpc3BsYXlNb250aHM6IG51bWJlciA9IHN0YXRlLmRpc3BsYXlNb250aHMgfHwgMTtcblxuICAvLyBjaGVjayBpbml0aWFsIHJlbmRlcmluZ1xuICAvLyB1c2Ugc2VsZWN0ZWQgZGF0ZSBvbiBpbml0aWFsIHJlbmRlcmluZyBpZiBzZXRcbiAgbGV0IHZpZXdEYXRlOiBEYXRlID0gc3RhdGUudmlldy5kYXRlO1xuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICdtb250aCcpIHtcbiAgICBjb25zdCBtb250aHNDYWxlbmRhciA9IG5ldyBBcnJheShkaXNwbGF5TW9udGhzKTtcbiAgICBmb3IgKGxldCBjYWxlbmRhckluZGV4OiBudW1iZXIgPSAwOyBjYWxlbmRhckluZGV4IDwgZGlzcGxheU1vbnRoczsgY2FsZW5kYXJJbmRleCsrKSB7XG4gICAgICBtb250aHNDYWxlbmRhcltjYWxlbmRhckluZGV4XSA9IGZvcm1hdE1vbnRoc0NhbGVuZGFyKHZpZXdEYXRlLCBnZXRGb3JtYXRPcHRpb25zKHN0YXRlKSk7XG4gICAgICB2aWV3RGF0ZSA9IHNoaWZ0RGF0ZSh2aWV3RGF0ZSwge3llYXI6IDF9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHttb250aHNDYWxlbmRhcn0pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ3llYXInKSB7XG4gICAgY29uc3QgeWVhcnNDYWxlbmRhck1vZGVsID0gbmV3IEFycmF5KGRpc3BsYXlNb250aHMpO1xuXG4gICAgZm9yIChsZXQgY2FsZW5kYXJJbmRleDogbnVtYmVyID0gMDsgY2FsZW5kYXJJbmRleCA8IGRpc3BsYXlNb250aHM7IGNhbGVuZGFySW5kZXgrKykge1xuICAgICAgeWVhcnNDYWxlbmRhck1vZGVsW2NhbGVuZGFySW5kZXhdID0gZm9ybWF0WWVhcnNDYWxlbmRhcih2aWV3RGF0ZSwgZ2V0Rm9ybWF0T3B0aW9ucyhzdGF0ZSksIHVuZGVmaW5lZCwgc3RhdGUuc2VsZWN0ZWREYXRlID8gc3RhdGUuc2VsZWN0ZWREYXRlIDogbmV3IERhdGUoKSk7XG4gICAgICB2aWV3RGF0ZSA9IHNoaWZ0RGF0ZSh2aWV3RGF0ZSwge3llYXI6IDE2fSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7eWVhcnNDYWxlbmRhck1vZGVsfSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cbmZ1bmN0aW9uIGZsYWdSZWR1Y2VyKHN0YXRlOiBCc0RhdGVwaWNrZXJTdGF0ZSk6IEJzRGF0ZXBpY2tlclN0YXRlIHtcbiAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgY29uc3QgZGlzcGxheU1vbnRoczogbnVtYmVyID0gaXNEaXNwbGF5T25lTW9udGgoc3RhdGUudmlldy5kYXRlLCBzdGF0ZS5taW5EYXRlLCBzdGF0ZS5tYXhEYXRlKSA/IDEgOiBzdGF0ZS5kaXNwbGF5TW9udGhzO1xuICBpZiAoc3RhdGUuZm9ybWF0dGVkTW9udGhzICYmIHN0YXRlLnZpZXcubW9kZSA9PT0gJ2RheScpIHtcbiAgICBjb25zdCBmbGFnZ2VkTW9udGhzOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWxbXSA9IHN0YXRlLmZvcm1hdHRlZE1vbnRocy5tYXAoKGZvcm1hdHRlZE1vbnRoOiBEYXlzQ2FsZW5kYXJWaWV3TW9kZWwsIG1vbnRoSW5kZXg6IG51bWJlcikgPT5cbiAgICAgIGZsYWdEYXlzQ2FsZW5kYXIoZm9ybWF0dGVkTW9udGgsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWluRGF0ZTogc3RhdGUubWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogc3RhdGUubWF4RGF0ZSxcbiAgICAgICAgaG92ZXJlZERhdGU6IHN0YXRlLmhvdmVyZWREYXRlLFxuICAgICAgICBzZWxlY3RlZERhdGU6IHN0YXRlLnNlbGVjdGVkRGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSYW5nZTogc3RhdGUuc2VsZWN0ZWRSYW5nZSxcbiAgICAgICAgZGlzcGxheU1vbnRocyxcbiAgICAgICAgbW9udGhJbmRleFxuICAgICAgfSkpO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCB7ZmxhZ2dlZE1vbnRoc30pO1xuICB9XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ21vbnRoJyAmJiBzdGF0ZS5tb250aHNDYWxlbmRhcikge1xuICAgIGNvbnN0IGZsYWdnZWRNb250aHNDYWxlbmRhcjogTW9udGhzQ2FsZW5kYXJWaWV3TW9kZWxbXSA9IHN0YXRlLm1vbnRoc0NhbGVuZGFyLm1hcCgoZm9ybWF0dGVkTW9udGg6IE1vbnRoc0NhbGVuZGFyVmlld01vZGVsLCBtb250aEluZGV4OiBudW1iZXIpID0+XG4gICAgICBmbGFnTW9udGhzQ2FsZW5kYXIoZm9ybWF0dGVkTW9udGgsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWluRGF0ZTogc3RhdGUubWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogc3RhdGUubWF4RGF0ZSxcbiAgICAgICAgaG92ZXJlZE1vbnRoOiBzdGF0ZS5ob3ZlcmVkTW9udGgsXG4gICAgICAgIHNlbGVjdGVkRGF0ZTogc3RhdGUuc2VsZWN0ZWREYXRlLFxuICAgICAgICBzZWxlY3RlZFJhbmdlOiBzdGF0ZS5zZWxlY3RlZFJhbmdlLFxuICAgICAgICBkaXNwbGF5TW9udGhzLFxuICAgICAgICBtb250aEluZGV4XG4gICAgICB9KSk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHtmbGFnZ2VkTW9udGhzQ2FsZW5kYXJ9KTtcbiAgfVxuXG4gIGlmIChzdGF0ZS52aWV3Lm1vZGUgPT09ICd5ZWFyJyAmJiBzdGF0ZS55ZWFyc0NhbGVuZGFyTW9kZWwpIHtcbiAgICBjb25zdCB5ZWFyc0NhbGVuZGFyRmxhZ2dlZDogWWVhcnNDYWxlbmRhclZpZXdNb2RlbFtdID0gc3RhdGUueWVhcnNDYWxlbmRhck1vZGVsLm1hcCgoZm9ybWF0dGVkTW9udGg6IFllYXJzQ2FsZW5kYXJWaWV3TW9kZWwsIHllYXJJbmRleDogbnVtYmVyKSA9PlxuICAgICAgZmxhZ1llYXJzQ2FsZW5kYXIoZm9ybWF0dGVkTW9udGgsIHtcbiAgICAgICAgaXNEaXNhYmxlZDogc3RhdGUuaXNEaXNhYmxlZCxcbiAgICAgICAgbWluRGF0ZTogc3RhdGUubWluRGF0ZSxcbiAgICAgICAgbWF4RGF0ZTogc3RhdGUubWF4RGF0ZSxcbiAgICAgICAgaG92ZXJlZFllYXI6IHN0YXRlLmhvdmVyZWRZZWFyLFxuICAgICAgICBzZWxlY3RlZERhdGU6IHN0YXRlLnNlbGVjdGVkRGF0ZSxcbiAgICAgICAgc2VsZWN0ZWRSYW5nZTogc3RhdGUuc2VsZWN0ZWRSYW5nZSxcbiAgICAgICAgZGlzcGxheU1vbnRocyxcbiAgICAgICAgeWVhckluZGV4XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHt5ZWFyc0NhbGVuZGFyRmxhZ2dlZH0pO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5mdW5jdGlvbiBuYXZpZ2F0ZU9mZnNldFJlZHVjZXIoc3RhdGU6IEJzRGF0ZXBpY2tlclN0YXRlLCBhY3Rpb246IEFjdGlvbik6IEJzRGF0ZXBpY2tlclN0YXRlIHtcbiAgaWYgKCFzdGF0ZS52aWV3KSByZXR1cm4gc3RhdGU7XG5cbiAgY29uc3QgZGF0ZTogRGF0ZSB8IHVuZGVmaW5lZCA9IHNoaWZ0Vmlld0RhdGUoc3RhdGUsIGFjdGlvbik7XG4gIGlmICghZGF0ZSkgcmV0dXJuIHN0YXRlO1xuXG4gIGNvbnN0IG5ld1N0YXRlOiB7IHZpZXc6IEJzRGF0ZXBpY2tlclZpZXdTdGF0ZSB9ID0ge1xuICAgIHZpZXc6IHttb2RlOiBzdGF0ZS52aWV3Lm1vZGUsIGRhdGV9XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlLCBuZXdTdGF0ZSk7XG59XG5cbmZ1bmN0aW9uIHNoaWZ0Vmlld0RhdGUoc3RhdGU6IEJzRGF0ZXBpY2tlclN0YXRlLCBhY3Rpb246IEFjdGlvbik6IERhdGUgfCB1bmRlZmluZWQge1xuICBpZiAoIXN0YXRlLnZpZXcpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgaWYgKHN0YXRlLnZpZXcubW9kZSA9PT0gJ3llYXInICYmIHN0YXRlLm1pbk1vZGUgPT09ICd5ZWFyJykge1xuICAgIGNvbnN0IGluaXRpYWxEYXRlOiBEYXRlIHwgdW5kZWZpbmVkID0gZ2V0WWVhcnNDYWxlbmRhckluaXRpYWxEYXRlKHN0YXRlLCAwKTtcblxuICAgIGlmIChpbml0aWFsRGF0ZSkge1xuICAgICAgY29uc3QgbWlkZGxlRGF0ZSA9IHNoaWZ0RGF0ZShpbml0aWFsRGF0ZSwge3llYXI6IC1pbml0aWFsWWVhclNoaWZ0fSk7XG4gICAgICByZXR1cm4gc2hpZnREYXRlKG1pZGRsZURhdGUsIGFjdGlvbi5wYXlsb2FkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2hpZnREYXRlKHN0YXJ0T2Yoc3RhdGUudmlldy5kYXRlLCAnbW9udGgnKSwgYWN0aW9uLnBheWxvYWQpO1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtYXRPcHRpb25zKHN0YXRlOiBCc0RhdGVwaWNrZXJTdGF0ZSk6IERhdGVwaWNrZXJGb3JtYXRPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICBsb2NhbGU6IHN0YXRlLmxvY2FsZSxcblxuICAgIG1vbnRoVGl0bGU6IHN0YXRlLm1vbnRoVGl0bGUsXG4gICAgeWVhclRpdGxlOiBzdGF0ZS55ZWFyVGl0bGUsXG5cbiAgICBkYXlMYWJlbDogc3RhdGUuZGF5TGFiZWwsXG4gICAgbW9udGhMYWJlbDogc3RhdGUubW9udGhMYWJlbCxcbiAgICB5ZWFyTGFiZWw6IHN0YXRlLnllYXJMYWJlbFxuICB9O1xufVxuXG4vKipcbiAqIGlmIHZpZXcgZGF0ZSBpcyBwcm92aWRlZCAoYnNWYWx1ZXxuZ01vZGVsKSBpdCBzaG91bGQgYmUgc2hvd25cbiAqIGlmIHZpZXcgZGF0ZSBpcyBub3QgcHJvdmlkZXI6XG4gKiBpZiBtaW5EYXRlPmN1cnJlbnREYXRlIChkZWZhdWx0IHZpZXcgdmFsdWUpLCBzaG93IG1pbkRhdGVcbiAqIGlmIG1heERhdGU8Y3VycmVudERhdGUoZGVmYXVsdCB2aWV3IHZhbHVlKSBzaG93IG1heERhdGVcbiAqL1xuZnVuY3Rpb24gZ2V0Vmlld0RhdGUodmlld0RhdGU6IERhdGUgfCBEYXRlW10sIG1pbkRhdGU/OiBEYXRlLCBtYXhEYXRlPzogRGF0ZSk6IERhdGUge1xuICBjb25zdCBfZGF0ZTogRGF0ZSA9IEFycmF5LmlzQXJyYXkodmlld0RhdGUpID8gdmlld0RhdGVbMF0gOiB2aWV3RGF0ZTtcblxuICBpZiAobWluRGF0ZSAmJiBpc0FmdGVyKG1pbkRhdGUsIF9kYXRlLCAnZGF5JykpIHJldHVybiBtaW5EYXRlO1xuICBpZiAobWF4RGF0ZSAmJiBpc0JlZm9yZShtYXhEYXRlLCBfZGF0ZSwgJ2RheScpKSByZXR1cm4gbWF4RGF0ZTtcblxuICByZXR1cm4gX2RhdGU7XG59XG5cbmZ1bmN0aW9uIGlzRGlzcGxheU9uZU1vbnRoKHZpZXdEYXRlOiBEYXRlLCBtaW5EYXRlPzogRGF0ZSwgbWF4RGF0ZT86IERhdGUpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgaWYgKG1heERhdGUgJiYgaXNTYW1lKG1heERhdGUsIHZpZXdEYXRlLCAnZGF5JykpIHJldHVybiB0cnVlO1xuXG4gIHJldHVybiBtaW5EYXRlICYmIG1heERhdGUgJiYgbWluRGF0ZS5nZXRNb250aCgpID09PSBtYXhEYXRlLmdldE1vbnRoKCk7XG59XG4iXX0=