mis-crystal-design-system 2.3.18 → 2.3.21

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 (494) hide show
  1. package/bundles/mis-crystal-design-system-datepicker.umd.js +13916 -0
  2. package/bundles/mis-crystal-design-system-datepicker.umd.js.map +1 -0
  3. package/bundles/mis-crystal-design-system-datepicker.umd.min.js +68 -0
  4. package/bundles/mis-crystal-design-system-datepicker.umd.min.js.map +1 -0
  5. package/bundles/mis-crystal-design-system-datepicker_v2.umd.js +13 -13
  6. package/bundles/mis-crystal-design-system-datepicker_v2.umd.js.map +1 -1
  7. package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js +2 -2
  8. package/bundles/mis-crystal-design-system-datepicker_v2.umd.min.js.map +1 -1
  9. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js +10 -1
  10. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.js.map +1 -1
  11. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js +2 -2
  12. package/bundles/mis-crystal-design-system-multi-select-dropdown.umd.min.js.map +1 -1
  13. package/datepicker/base/bs-datepicker-container.d.ts +44 -0
  14. package/datepicker/bs-datepicker-inline.component.d.ts +61 -0
  15. package/datepicker/bs-datepicker-inline.config.d.ts +3 -0
  16. package/datepicker/bs-datepicker-input.directive.d.ts +30 -0
  17. package/datepicker/bs-datepicker.component.d.ts +123 -0
  18. package/datepicker/bs-datepicker.config.d.ts +140 -0
  19. package/datepicker/bs-datepicker.module.d.ts +4 -0
  20. package/datepicker/bs-daterangepicker-inline.component.d.ts +61 -0
  21. package/datepicker/bs-daterangepicker-inline.config.d.ts +6 -0
  22. package/datepicker/bs-daterangepicker-input.directive.d.ts +30 -0
  23. package/datepicker/bs-daterangepicker.component.d.ts +115 -0
  24. package/datepicker/bs-daterangepicker.config.d.ts +4 -0
  25. package/datepicker/bs-locale.service.d.ts +10 -0
  26. package/datepicker/date-formatter.d.ts +3 -0
  27. package/datepicker/datepicker-animations.d.ts +3 -0
  28. package/datepicker/datepicker-inner.component.d.ts +75 -0
  29. package/datepicker/datepicker.component.d.ts +78 -0
  30. package/datepicker/datepicker.config.d.ts +19 -0
  31. package/datepicker/datepicker.module.d.ts +4 -0
  32. package/datepicker/daypicker.component.d.ts +14 -0
  33. package/datepicker/engine/calc-days-calendar.d.ts +2 -0
  34. package/datepicker/engine/flag-days-calendar.d.ts +17 -0
  35. package/datepicker/engine/flag-months-calendar.d.ts +12 -0
  36. package/datepicker/engine/flag-years-calendar.d.ts +12 -0
  37. package/datepicker/engine/format-days-calendar.d.ts +4 -0
  38. package/datepicker/engine/format-months-calendar.d.ts +2 -0
  39. package/datepicker/engine/format-years-calendar.d.ts +4 -0
  40. package/datepicker/engine/view-mode.d.ts +2 -0
  41. package/datepicker/index.d.ts +1 -0
  42. package/datepicker/mis-crystal-design-system-datepicker.d.ts +24 -0
  43. package/datepicker/mis-crystal-design-system-datepicker.metadata.json +1 -0
  44. package/datepicker/models/index.d.ts +102 -0
  45. package/datepicker/monthpicker.component.d.ts +11 -0
  46. package/datepicker/package.json +11 -0
  47. package/datepicker/public_api.d.ts +26 -0
  48. package/datepicker/reducer/_defaults.d.ts +2 -0
  49. package/datepicker/reducer/bs-datepicker.actions.d.ts +43 -0
  50. package/datepicker/reducer/bs-datepicker.effects.d.ts +38 -0
  51. package/datepicker/reducer/bs-datepicker.reducer.d.ts +3 -0
  52. package/datepicker/reducer/bs-datepicker.state.d.ts +43 -0
  53. package/datepicker/reducer/bs-datepicker.store.d.ts +5 -0
  54. package/datepicker/sub-components/chronos/create/check-overflow.d.ts +2 -0
  55. package/datepicker/sub-components/chronos/create/clone.d.ts +1 -0
  56. package/datepicker/sub-components/chronos/create/date-from-array.d.ts +2 -0
  57. package/datepicker/sub-components/chronos/create/from-anything.d.ts +4 -0
  58. package/datepicker/sub-components/chronos/create/from-array.d.ts +2 -0
  59. package/datepicker/sub-components/chronos/create/from-object.d.ts +2 -0
  60. package/datepicker/sub-components/chronos/create/from-string-and-array.d.ts +2 -0
  61. package/datepicker/sub-components/chronos/create/from-string-and-format.d.ts +4 -0
  62. package/datepicker/sub-components/chronos/create/from-string.d.ts +4 -0
  63. package/datepicker/sub-components/chronos/create/local.d.ts +3 -0
  64. package/datepicker/sub-components/chronos/create/parsing-flags.d.ts +2 -0
  65. package/datepicker/sub-components/chronos/create/parsing.types.d.ts +64 -0
  66. package/datepicker/sub-components/chronos/create/valid.d.ts +6 -0
  67. package/datepicker/sub-components/chronos/duration/bubble.d.ts +4 -0
  68. package/datepicker/sub-components/chronos/duration/constructor.d.ts +21 -0
  69. package/datepicker/sub-components/chronos/duration/create.d.ts +8 -0
  70. package/datepicker/sub-components/chronos/duration/humanize.d.ts +5 -0
  71. package/datepicker/sub-components/chronos/duration/valid.d.ts +2 -0
  72. package/datepicker/sub-components/chronos/format/format.d.ts +11 -0
  73. package/datepicker/sub-components/chronos/format.d.ts +5 -0
  74. package/datepicker/sub-components/chronos/i18n/ar.d.ts +2 -0
  75. package/datepicker/sub-components/chronos/i18n/bg.d.ts +2 -0
  76. package/datepicker/sub-components/chronos/i18n/ca.d.ts +2 -0
  77. package/datepicker/sub-components/chronos/i18n/cs.d.ts +2 -0
  78. package/datepicker/sub-components/chronos/i18n/da.d.ts +2 -0
  79. package/datepicker/sub-components/chronos/i18n/de.d.ts +2 -0
  80. package/datepicker/sub-components/chronos/i18n/en-gb.d.ts +2 -0
  81. package/datepicker/sub-components/chronos/i18n/es-do.d.ts +2 -0
  82. package/datepicker/sub-components/chronos/i18n/es-us.d.ts +2 -0
  83. package/datepicker/sub-components/chronos/i18n/es.d.ts +2 -0
  84. package/datepicker/sub-components/chronos/i18n/et.d.ts +2 -0
  85. package/datepicker/sub-components/chronos/i18n/fi.d.ts +2 -0
  86. package/datepicker/sub-components/chronos/i18n/fr.d.ts +2 -0
  87. package/datepicker/sub-components/chronos/i18n/gl.d.ts +2 -0
  88. package/datepicker/sub-components/chronos/i18n/he.d.ts +2 -0
  89. package/datepicker/sub-components/chronos/i18n/hi.d.ts +2 -0
  90. package/datepicker/sub-components/chronos/i18n/hr.d.ts +2 -0
  91. package/datepicker/sub-components/chronos/i18n/hu.d.ts +2 -0
  92. package/datepicker/sub-components/chronos/i18n/id.d.ts +2 -0
  93. package/datepicker/sub-components/chronos/i18n/it.d.ts +2 -0
  94. package/datepicker/sub-components/chronos/i18n/ja.d.ts +2 -0
  95. package/datepicker/sub-components/chronos/i18n/ka.d.ts +2 -0
  96. package/datepicker/sub-components/chronos/i18n/kk.d.ts +2 -0
  97. package/datepicker/sub-components/chronos/i18n/ko.d.ts +2 -0
  98. package/datepicker/sub-components/chronos/i18n/lt.d.ts +2 -0
  99. package/datepicker/sub-components/chronos/i18n/lv.d.ts +2 -0
  100. package/datepicker/sub-components/chronos/i18n/mn.d.ts +2 -0
  101. package/datepicker/sub-components/chronos/i18n/nb.d.ts +2 -0
  102. package/datepicker/sub-components/chronos/i18n/nl-be.d.ts +2 -0
  103. package/datepicker/sub-components/chronos/i18n/nl.d.ts +2 -0
  104. package/datepicker/sub-components/chronos/i18n/pl.d.ts +2 -0
  105. package/datepicker/sub-components/chronos/i18n/pt-br.d.ts +2 -0
  106. package/datepicker/sub-components/chronos/i18n/ro.d.ts +2 -0
  107. package/datepicker/sub-components/chronos/i18n/ru.d.ts +2 -0
  108. package/datepicker/sub-components/chronos/i18n/sk.d.ts +2 -0
  109. package/datepicker/sub-components/chronos/i18n/sl.d.ts +2 -0
  110. package/datepicker/sub-components/chronos/i18n/sq.d.ts +2 -0
  111. package/datepicker/sub-components/chronos/i18n/sv.d.ts +2 -0
  112. package/datepicker/sub-components/chronos/i18n/th-be.d.ts +2 -0
  113. package/datepicker/sub-components/chronos/i18n/th.d.ts +2 -0
  114. package/datepicker/sub-components/chronos/i18n/tr.d.ts +2 -0
  115. package/datepicker/sub-components/chronos/i18n/uk.d.ts +2 -0
  116. package/datepicker/sub-components/chronos/i18n/vi.d.ts +2 -0
  117. package/datepicker/sub-components/chronos/i18n/zh-cn.d.ts +2 -0
  118. package/datepicker/sub-components/chronos/index.d.ts +1 -0
  119. package/datepicker/sub-components/chronos/locale/calendar.d.ts +8 -0
  120. package/datepicker/sub-components/chronos/locale/locale.class.d.ts +143 -0
  121. package/datepicker/sub-components/chronos/locale/locale.defaults.d.ts +11 -0
  122. package/datepicker/sub-components/chronos/locale/locales.d.ts +7 -0
  123. package/datepicker/sub-components/chronos/moment/add-subtract.d.ts +5 -0
  124. package/datepicker/sub-components/chronos/moment/calendar.d.ts +15 -0
  125. package/datepicker/sub-components/chronos/moment/diff.d.ts +3 -0
  126. package/datepicker/sub-components/chronos/moment/min-max.d.ts +2 -0
  127. package/datepicker/sub-components/chronos/parse/regex.d.ts +22 -0
  128. package/datepicker/sub-components/chronos/parse/token.d.ts +5 -0
  129. package/datepicker/sub-components/chronos/public_api.d.ts +57 -0
  130. package/datepicker/sub-components/chronos/test/chain.d.ts +214 -0
  131. package/datepicker/sub-components/chronos/types.d.ts +36 -0
  132. package/datepicker/sub-components/chronos/units/aliases.d.ts +7 -0
  133. package/datepicker/sub-components/chronos/units/constants.d.ts +9 -0
  134. package/datepicker/sub-components/chronos/units/day-of-month.d.ts +1 -0
  135. package/datepicker/sub-components/chronos/units/day-of-week.d.ts +20 -0
  136. package/datepicker/sub-components/chronos/units/day-of-year.d.ts +3 -0
  137. package/datepicker/sub-components/chronos/units/hour.d.ts +1 -0
  138. package/datepicker/sub-components/chronos/units/index.d.ts +18 -0
  139. package/datepicker/sub-components/chronos/units/millisecond.d.ts +1 -0
  140. package/datepicker/sub-components/chronos/units/minute.d.ts +1 -0
  141. package/datepicker/sub-components/chronos/units/month.d.ts +2 -0
  142. package/datepicker/sub-components/chronos/units/offset.d.ts +10 -0
  143. package/datepicker/sub-components/chronos/units/priorities.d.ts +1 -0
  144. package/datepicker/sub-components/chronos/units/quarter.d.ts +3 -0
  145. package/datepicker/sub-components/chronos/units/second.d.ts +1 -0
  146. package/datepicker/sub-components/chronos/units/timestamp.d.ts +1 -0
  147. package/datepicker/sub-components/chronos/units/timezone.d.ts +3 -0
  148. package/datepicker/sub-components/chronos/units/week-calendar-utils.d.ts +9 -0
  149. package/datepicker/sub-components/chronos/units/week-year.d.ts +8 -0
  150. package/datepicker/sub-components/chronos/units/week.d.ts +6 -0
  151. package/datepicker/sub-components/chronos/units/year.d.ts +4 -0
  152. package/datepicker/sub-components/chronos/utils/abs-ceil.d.ts +1 -0
  153. package/datepicker/sub-components/chronos/utils/abs-round.d.ts +1 -0
  154. package/datepicker/sub-components/chronos/utils/compare-arrays.d.ts +1 -0
  155. package/datepicker/sub-components/chronos/utils/date-compare.d.ts +9 -0
  156. package/datepicker/sub-components/chronos/utils/date-getters.d.ts +18 -0
  157. package/datepicker/sub-components/chronos/utils/date-setters.d.ts +12 -0
  158. package/datepicker/sub-components/chronos/utils/defaults.d.ts +1 -0
  159. package/datepicker/sub-components/chronos/utils/start-end-of.d.ts +3 -0
  160. package/datepicker/sub-components/chronos/utils/type-checks.d.ts +12 -0
  161. package/datepicker/sub-components/chronos/utils/zero-fill.d.ts +1 -0
  162. package/datepicker/sub-components/chronos/utils.d.ts +2 -0
  163. package/datepicker/sub-components/component-loader/bs-component-ref.class.d.ts +5 -0
  164. package/datepicker/sub-components/component-loader/component-loader.class.d.ts +75 -0
  165. package/datepicker/sub-components/component-loader/component-loader.factory.d.ts +18 -0
  166. package/datepicker/sub-components/component-loader/content-ref.class.d.ts +7 -0
  167. package/datepicker/sub-components/component-loader/index.d.ts +1 -0
  168. package/datepicker/sub-components/component-loader/listen-options.model.d.ts +11 -0
  169. package/datepicker/sub-components/component-loader/public_api.d.ts +4 -0
  170. package/datepicker/sub-components/mini-ngrx/index.d.ts +1 -0
  171. package/datepicker/sub-components/mini-ngrx/public_api.d.ts +7 -0
  172. package/datepicker/sub-components/mini-ngrx/state.class.d.ts +8 -0
  173. package/datepicker/sub-components/mini-ngrx/store.class.d.ts +16 -0
  174. package/datepicker/sub-components/positioning/index.d.ts +1 -0
  175. package/datepicker/sub-components/positioning/models/index.d.ts +41 -0
  176. package/datepicker/sub-components/positioning/modifiers/arrow.d.ts +2 -0
  177. package/datepicker/sub-components/positioning/modifiers/flip.d.ts +2 -0
  178. package/datepicker/sub-components/positioning/modifiers/index.d.ts +5 -0
  179. package/datepicker/sub-components/positioning/modifiers/initData.d.ts +2 -0
  180. package/datepicker/sub-components/positioning/modifiers/preventOverflow.d.ts +2 -0
  181. package/datepicker/sub-components/positioning/modifiers/shift.d.ts +2 -0
  182. package/datepicker/sub-components/positioning/ng-positioning.d.ts +8 -0
  183. package/datepicker/sub-components/positioning/positioning.service.d.ts +45 -0
  184. package/datepicker/sub-components/positioning/public_api.d.ts +2 -0
  185. package/datepicker/sub-components/positioning/utils/computeAutoPlacement.d.ts +2 -0
  186. package/datepicker/sub-components/positioning/utils/findCommonOffsetParent.d.ts +1 -0
  187. package/datepicker/sub-components/positioning/utils/getBordersSize.d.ts +4 -0
  188. package/datepicker/sub-components/positioning/utils/getBoundaries.d.ts +1 -0
  189. package/datepicker/sub-components/positioning/utils/getBoundingClientRect.d.ts +2 -0
  190. package/datepicker/sub-components/positioning/utils/getClientRect.d.ts +5 -0
  191. package/datepicker/sub-components/positioning/utils/getFixedPositionOffsetParent.d.ts +4 -0
  192. package/datepicker/sub-components/positioning/utils/getOffsetParent.d.ts +1 -0
  193. package/datepicker/sub-components/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
  194. package/datepicker/sub-components/positioning/utils/getOffsets.d.ts +2 -0
  195. package/datepicker/sub-components/positioning/utils/getOppositePlacement.d.ts +4 -0
  196. package/datepicker/sub-components/positioning/utils/getOppositeVariation.d.ts +4 -0
  197. package/datepicker/sub-components/positioning/utils/getOuterSizes.d.ts +7 -0
  198. package/datepicker/sub-components/positioning/utils/getParentNode.d.ts +4 -0
  199. package/datepicker/sub-components/positioning/utils/getReferenceOffsets.d.ts +2 -0
  200. package/datepicker/sub-components/positioning/utils/getRoot.d.ts +4 -0
  201. package/datepicker/sub-components/positioning/utils/getScroll.d.ts +4 -0
  202. package/datepicker/sub-components/positioning/utils/getScrollParent.d.ts +1 -0
  203. package/datepicker/sub-components/positioning/utils/getStyleComputedProperty.d.ts +4 -0
  204. package/datepicker/sub-components/positioning/utils/getTargetOffsets.d.ts +2 -0
  205. package/datepicker/sub-components/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
  206. package/datepicker/sub-components/positioning/utils/getWindowSizes.d.ts +4 -0
  207. package/datepicker/sub-components/positioning/utils/includeScroll.d.ts +2 -0
  208. package/datepicker/sub-components/positioning/utils/index.d.ts +23 -0
  209. package/datepicker/sub-components/positioning/utils/isBrowser.d.ts +1 -0
  210. package/datepicker/sub-components/positioning/utils/isFixed.d.ts +1 -0
  211. package/datepicker/sub-components/positioning/utils/isIE.d.ts +1 -0
  212. package/datepicker/sub-components/positioning/utils/isModifierEnabled.d.ts +4 -0
  213. package/datepicker/sub-components/positioning/utils/isNumeric.d.ts +4 -0
  214. package/datepicker/sub-components/positioning/utils/isOffsetContainer.d.ts +1 -0
  215. package/datepicker/sub-components/positioning/utils/setStyles.d.ts +5 -0
  216. package/datepicker/sub-components/positioning/utils/updateContainerClass.d.ts +6 -0
  217. package/datepicker/sub-components/tooltip/index.d.ts +1 -0
  218. package/datepicker/sub-components/tooltip/public_api.d.ts +4 -0
  219. package/datepicker/sub-components/tooltip/tooltip-container.component.d.ts +14 -0
  220. package/datepicker/sub-components/tooltip/tooltip.config.d.ts +13 -0
  221. package/datepicker/sub-components/tooltip/tooltip.directive.d.ts +109 -0
  222. package/datepicker/sub-components/tooltip/tooltip.module.d.ts +4 -0
  223. package/datepicker/sub-components/utils/decorators.d.ts +1 -0
  224. package/datepicker/sub-components/utils/facade/browser.d.ts +23 -0
  225. package/datepicker/sub-components/utils/index.d.ts +1 -0
  226. package/datepicker/sub-components/utils/linked-list.class.d.ts +26 -0
  227. package/datepicker/sub-components/utils/public_api.d.ts +10 -0
  228. package/datepicker/sub-components/utils/theme-provider.d.ts +2 -0
  229. package/datepicker/sub-components/utils/trigger.class.d.ts +6 -0
  230. package/datepicker/sub-components/utils/triggers.d.ts +18 -0
  231. package/datepicker/sub-components/utils/utils.class.d.ts +4 -0
  232. package/datepicker/sub-components/utils/warn-once.d.ts +1 -0
  233. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +2 -0
  234. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +3 -0
  235. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +14 -0
  236. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +33 -0
  237. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +11 -0
  238. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +10 -0
  239. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +9 -0
  240. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +37 -0
  241. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +10 -0
  242. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +23 -0
  243. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +13 -0
  244. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +5 -0
  245. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +13 -0
  246. package/datepicker/utils/bs-calendar-utils.d.ts +10 -0
  247. package/datepicker/utils/matrix-utils.d.ts +9 -0
  248. package/datepicker/yearpicker.component.d.ts +11 -0
  249. package/datepicker_v2/mis-crystal-design-system-datepicker_v2.metadata.json +1 -1
  250. package/esm2015/datepicker/base/bs-datepicker-container.js +47 -0
  251. package/esm2015/datepicker/bs-datepicker-inline.component.js +132 -0
  252. package/esm2015/datepicker/bs-datepicker-inline.config.js +12 -0
  253. package/esm2015/datepicker/bs-datepicker-input.directive.js +159 -0
  254. package/esm2015/datepicker/bs-datepicker.component.js +238 -0
  255. package/esm2015/datepicker/bs-datepicker.config.js +85 -0
  256. package/esm2015/datepicker/bs-datepicker.module.js +101 -0
  257. package/esm2015/datepicker/bs-daterangepicker-inline.component.js +129 -0
  258. package/esm2015/datepicker/bs-daterangepicker-inline.config.js +19 -0
  259. package/esm2015/datepicker/bs-daterangepicker-input.directive.js +191 -0
  260. package/esm2015/datepicker/bs-daterangepicker.component.js +227 -0
  261. package/esm2015/datepicker/bs-daterangepicker.config.js +17 -0
  262. package/esm2015/datepicker/bs-locale.service.js +28 -0
  263. package/esm2015/datepicker/date-formatter.js +7 -0
  264. package/esm2015/datepicker/datepicker-animations.js +16 -0
  265. package/esm2015/datepicker/datepicker-inner.component.js +282 -0
  266. package/esm2015/datepicker/datepicker.component.js +140 -0
  267. package/esm2015/datepicker/datepicker.config.js +30 -0
  268. package/esm2015/datepicker/datepicker.module.js +35 -0
  269. package/esm2015/datepicker/daypicker.component.js +174 -0
  270. package/esm2015/datepicker/engine/calc-days-calendar.js +19 -0
  271. package/esm2015/datepicker/engine/flag-days-calendar.js +91 -0
  272. package/esm2015/datepicker/engine/flag-months-calendar.js +41 -0
  273. package/esm2015/datepicker/engine/flag-years-calendar.js +39 -0
  274. package/esm2015/datepicker/engine/format-days-calendar.js +29 -0
  275. package/esm2015/datepicker/engine/format-months-calendar.js +19 -0
  276. package/esm2015/datepicker/engine/format-years-calendar.js +35 -0
  277. package/esm2015/datepicker/engine/view-mode.js +4 -0
  278. package/esm2015/datepicker/index.js +2 -0
  279. package/esm2015/datepicker/mis-crystal-design-system-datepicker.js +25 -0
  280. package/esm2015/datepicker/models/index.js +9 -0
  281. package/esm2015/datepicker/monthpicker.component.js +87 -0
  282. package/esm2015/datepicker/public_api.js +26 -0
  283. package/esm2015/datepicker/reducer/_defaults.js +5 -0
  284. package/esm2015/datepicker/reducer/bs-datepicker.actions.js +132 -0
  285. package/esm2015/datepicker/reducer/bs-datepicker.effects.js +170 -0
  286. package/esm2015/datepicker/reducer/bs-datepicker.reducer.js +302 -0
  287. package/esm2015/datepicker/reducer/bs-datepicker.state.js +12 -0
  288. package/esm2015/datepicker/reducer/bs-datepicker.store.js +19 -0
  289. package/esm2015/datepicker/sub-components/chronos/create/check-overflow.js +30 -0
  290. package/esm2015/datepicker/sub-components/chronos/create/clone.js +6 -0
  291. package/esm2015/datepicker/sub-components/chronos/create/date-from-array.js +17 -0
  292. package/esm2015/datepicker/sub-components/chronos/create/from-anything.js +107 -0
  293. package/esm2015/datepicker/sub-components/chronos/create/from-array.js +136 -0
  294. package/esm2015/datepicker/sub-components/chronos/create/from-object.js +17 -0
  295. package/esm2015/datepicker/sub-components/chronos/create/from-string-and-array.js +38 -0
  296. package/esm2015/datepicker/sub-components/chronos/create/from-string-and-format.js +106 -0
  297. package/esm2015/datepicker/sub-components/chronos/create/from-string.js +227 -0
  298. package/esm2015/datepicker/sub-components/chronos/create/local.js +16 -0
  299. package/esm2015/datepicker/sub-components/chronos/create/parsing-flags.js +26 -0
  300. package/esm2015/datepicker/sub-components/chronos/create/parsing.types.js +2 -0
  301. package/esm2015/datepicker/sub-components/chronos/create/valid.js +42 -0
  302. package/esm2015/datepicker/sub-components/chronos/duration/bubble.js +47 -0
  303. package/esm2015/datepicker/sub-components/chronos/duration/constructor.js +130 -0
  304. package/esm2015/datepicker/sub-components/chronos/duration/create.js +113 -0
  305. package/esm2015/datepicker/sub-components/chronos/duration/humanize.js +80 -0
  306. package/esm2015/datepicker/sub-components/chronos/duration/valid.js +45 -0
  307. package/esm2015/datepicker/sub-components/chronos/format/format.js +51 -0
  308. package/esm2015/datepicker/sub-components/chronos/format.js +46 -0
  309. package/esm2015/datepicker/sub-components/chronos/i18n/ar.js +131 -0
  310. package/esm2015/datepicker/sub-components/chronos/i18n/bg.js +96 -0
  311. package/esm2015/datepicker/sub-components/chronos/i18n/ca.js +91 -0
  312. package/esm2015/datepicker/sub-components/chronos/i18n/cs.js +181 -0
  313. package/esm2015/datepicker/sub-components/chronos/i18n/da.js +50 -0
  314. package/esm2015/datepicker/sub-components/chronos/i18n/de.js +72 -0
  315. package/esm2015/datepicker/sub-components/chronos/i18n/en-gb.js +61 -0
  316. package/esm2015/datepicker/sub-components/chronos/i18n/es-do.js +85 -0
  317. package/esm2015/datepicker/sub-components/chronos/i18n/es-us.js +79 -0
  318. package/esm2015/datepicker/sub-components/chronos/i18n/es.js +84 -0
  319. package/esm2015/datepicker/sub-components/chronos/i18n/et.js +75 -0
  320. package/esm2015/datepicker/sub-components/chronos/i18n/fi.js +100 -0
  321. package/esm2015/datepicker/sub-components/chronos/i18n/fr.js +76 -0
  322. package/esm2015/datepicker/sub-components/chronos/i18n/gl.js +84 -0
  323. package/esm2015/datepicker/sub-components/chronos/i18n/he.js +98 -0
  324. package/esm2015/datepicker/sub-components/chronos/i18n/hi.js +124 -0
  325. package/esm2015/datepicker/sub-components/chronos/i18n/hr.js +62 -0
  326. package/esm2015/datepicker/sub-components/chronos/i18n/hu.js +104 -0
  327. package/esm2015/datepicker/sub-components/chronos/i18n/id.js +83 -0
  328. package/esm2015/datepicker/sub-components/chronos/i18n/it.js +65 -0
  329. package/esm2015/datepicker/sub-components/chronos/i18n/ja.js +75 -0
  330. package/esm2015/datepicker/sub-components/chronos/i18n/ka.js +87 -0
  331. package/esm2015/datepicker/sub-components/chronos/i18n/kk.js +76 -0
  332. package/esm2015/datepicker/sub-components/chronos/i18n/ko.js +77 -0
  333. package/esm2015/datepicker/sub-components/chronos/i18n/lt.js +116 -0
  334. package/esm2015/datepicker/sub-components/chronos/i18n/lv.js +56 -0
  335. package/esm2015/datepicker/sub-components/chronos/i18n/mn.js +99 -0
  336. package/esm2015/datepicker/sub-components/chronos/i18n/nb.js +53 -0
  337. package/esm2015/datepicker/sub-components/chronos/i18n/nl-be.js +81 -0
  338. package/esm2015/datepicker/sub-components/chronos/i18n/nl.js +80 -0
  339. package/esm2015/datepicker/sub-components/chronos/i18n/pl.js +126 -0
  340. package/esm2015/datepicker/sub-components/chronos/i18n/pt-br.js +56 -0
  341. package/esm2015/datepicker/sub-components/chronos/i18n/ro.js +66 -0
  342. package/esm2015/datepicker/sub-components/chronos/i18n/ru.js +181 -0
  343. package/esm2015/datepicker/sub-components/chronos/i18n/sk.js +157 -0
  344. package/esm2015/datepicker/sub-components/chronos/i18n/sl.js +184 -0
  345. package/esm2015/datepicker/sub-components/chronos/i18n/sq.js +54 -0
  346. package/esm2015/datepicker/sub-components/chronos/i18n/sv.js +63 -0
  347. package/esm2015/datepicker/sub-components/chronos/i18n/th-be.js +74 -0
  348. package/esm2015/datepicker/sub-components/chronos/i18n/th.js +59 -0
  349. package/esm2015/datepicker/sub-components/chronos/i18n/tr.js +82 -0
  350. package/esm2015/datepicker/sub-components/chronos/i18n/uk.js +147 -0
  351. package/esm2015/datepicker/sub-components/chronos/i18n/vi.js +74 -0
  352. package/esm2015/datepicker/sub-components/chronos/i18n/zh-cn.js +114 -0
  353. package/esm2015/datepicker/sub-components/chronos/index.js +2 -0
  354. package/esm2015/datepicker/sub-components/chronos/locale/calendar.js +9 -0
  355. package/esm2015/datepicker/sub-components/chronos/locale/locale.class.js +532 -0
  356. package/esm2015/datepicker/sub-components/chronos/locale/locale.defaults.js +40 -0
  357. package/esm2015/datepicker/sub-components/chronos/locale/locales.js +229 -0
  358. package/esm2015/datepicker/sub-components/chronos/moment/add-subtract.js +35 -0
  359. package/esm2015/datepicker/sub-components/chronos/moment/calendar.js +41 -0
  360. package/esm2015/datepicker/sub-components/chronos/moment/diff.js +70 -0
  361. package/esm2015/datepicker/sub-components/chronos/moment/min-max.js +38 -0
  362. package/esm2015/datepicker/sub-components/chronos/parse/regex.js +49 -0
  363. package/esm2015/datepicker/sub-components/chronos/parse/token.js +32 -0
  364. package/esm2015/datepicker/sub-components/chronos/public_api.js +56 -0
  365. package/esm2015/datepicker/sub-components/chronos/test/chain.js +711 -0
  366. package/esm2015/datepicker/sub-components/chronos/types.js +2 -0
  367. package/esm2015/datepicker/sub-components/chronos/units/aliases.js +35 -0
  368. package/esm2015/datepicker/sub-components/chronos/units/constants.js +11 -0
  369. package/esm2015/datepicker/sub-components/chronos/units/day-of-month.js +31 -0
  370. package/esm2015/datepicker/sub-components/chronos/units/day-of-week.js +129 -0
  371. package/esm2015/datepicker/sub-components/chronos/units/day-of-year.js +37 -0
  372. package/esm2015/datepicker/sub-components/chronos/units/hour.js +127 -0
  373. package/esm2015/datepicker/sub-components/chronos/units/index.js +19 -0
  374. package/esm2015/datepicker/sub-components/chronos/units/millisecond.js +60 -0
  375. package/esm2015/datepicker/sub-components/chronos/units/minute.js +23 -0
  376. package/esm2015/datepicker/sub-components/chronos/units/month.js +63 -0
  377. package/esm2015/datepicker/sub-components/chronos/units/offset.js +210 -0
  378. package/esm2015/datepicker/sub-components/chronos/units/priorities.js +21 -0
  379. package/esm2015/datepicker/sub-components/chronos/units/quarter.js +39 -0
  380. package/esm2015/datepicker/sub-components/chronos/units/second.js +23 -0
  381. package/esm2015/datepicker/sub-components/chronos/units/timestamp.js +28 -0
  382. package/esm2015/datepicker/sub-components/chronos/units/timezone.js +19 -0
  383. package/esm2015/datepicker/sub-components/chronos/units/week-calendar-utils.js +70 -0
  384. package/esm2015/datepicker/sub-components/chronos/units/week-year.js +101 -0
  385. package/esm2015/datepicker/sub-components/chronos/units/week.js +58 -0
  386. package/esm2015/datepicker/sub-components/chronos/units/year.js +60 -0
  387. package/esm2015/datepicker/sub-components/chronos/utils/abs-ceil.js +4 -0
  388. package/esm2015/datepicker/sub-components/chronos/utils/abs-round.js +4 -0
  389. package/esm2015/datepicker/sub-components/chronos/utils/compare-arrays.js +16 -0
  390. package/esm2015/datepicker/sub-components/chronos/utils/date-compare.js +55 -0
  391. package/esm2015/datepicker/sub-components/chronos/utils/date-getters.js +67 -0
  392. package/esm2015/datepicker/sub-components/chronos/utils/date-setters.js +75 -0
  393. package/esm2015/datepicker/sub-components/chronos/utils/defaults.js +11 -0
  394. package/esm2015/datepicker/sub-components/chronos/utils/start-end-of.js +57 -0
  395. package/esm2015/datepicker/sub-components/chronos/utils/type-checks.js +56 -0
  396. package/esm2015/datepicker/sub-components/chronos/utils/zero-fill.js +10 -0
  397. package/esm2015/datepicker/sub-components/chronos/utils.js +7 -0
  398. package/esm2015/datepicker/sub-components/component-loader/bs-component-ref.class.js +3 -0
  399. package/esm2015/datepicker/sub-components/component-loader/component-loader.class.js +272 -0
  400. package/esm2015/datepicker/sub-components/component-loader/component-loader.factory.js +32 -0
  401. package/esm2015/datepicker/sub-components/component-loader/content-ref.class.js +12 -0
  402. package/esm2015/datepicker/sub-components/component-loader/index.js +2 -0
  403. package/esm2015/datepicker/sub-components/component-loader/listen-options.model.js +2 -0
  404. package/esm2015/datepicker/sub-components/component-loader/public_api.js +5 -0
  405. package/esm2015/datepicker/sub-components/mini-ngrx/index.js +2 -0
  406. package/esm2015/datepicker/sub-components/mini-ngrx/public_api.js +3 -0
  407. package/esm2015/datepicker/sub-components/mini-ngrx/state.class.js +16 -0
  408. package/esm2015/datepicker/sub-components/mini-ngrx/store.class.js +43 -0
  409. package/esm2015/datepicker/sub-components/positioning/index.js +2 -0
  410. package/esm2015/datepicker/sub-components/positioning/models/index.js +2 -0
  411. package/esm2015/datepicker/sub-components/positioning/modifiers/arrow.js +56 -0
  412. package/esm2015/datepicker/sub-components/positioning/modifiers/flip.js +60 -0
  413. package/esm2015/datepicker/sub-components/positioning/modifiers/index.js +6 -0
  414. package/esm2015/datepicker/sub-components/positioning/modifiers/initData.js +42 -0
  415. package/esm2015/datepicker/sub-components/positioning/modifiers/preventOverflow.js +56 -0
  416. package/esm2015/datepicker/sub-components/positioning/modifiers/shift.js +22 -0
  417. package/esm2015/datepicker/sub-components/positioning/ng-positioning.js +30 -0
  418. package/esm2015/datepicker/sub-components/positioning/positioning.service.js +71 -0
  419. package/esm2015/datepicker/sub-components/positioning/public_api.js +3 -0
  420. package/esm2015/datepicker/sub-components/positioning/utils/computeAutoPlacement.js +53 -0
  421. package/esm2015/datepicker/sub-components/positioning/utils/findCommonOffsetParent.js +40 -0
  422. package/esm2015/datepicker/sub-components/positioning/utils/getBordersSize.js +10 -0
  423. package/esm2015/datepicker/sub-components/positioning/utils/getBoundaries.js +56 -0
  424. package/esm2015/datepicker/sub-components/positioning/utils/getBoundingClientRect.js +55 -0
  425. package/esm2015/datepicker/sub-components/positioning/utils/getClientRect.js +4 -0
  426. package/esm2015/datepicker/sub-components/positioning/utils/getFixedPositionOffsetParent.js +17 -0
  427. package/esm2015/datepicker/sub-components/positioning/utils/getOffsetParent.js +32 -0
  428. package/esm2015/datepicker/sub-components/positioning/utils/getOffsetRectRelativeToArbitraryNode.js +51 -0
  429. package/esm2015/datepicker/sub-components/positioning/utils/getOffsets.js +11 -0
  430. package/esm2015/datepicker/sub-components/positioning/utils/getOppositePlacement.js +8 -0
  431. package/esm2015/datepicker/sub-components/positioning/utils/getOppositeVariation.js +13 -0
  432. package/esm2015/datepicker/sub-components/positioning/utils/getOuterSizes.js +14 -0
  433. package/esm2015/datepicker/sub-components/positioning/utils/getParentNode.js +10 -0
  434. package/esm2015/datepicker/sub-components/positioning/utils/getReferenceOffsets.js +13 -0
  435. package/esm2015/datepicker/sub-components/positioning/utils/getRoot.js +10 -0
  436. package/esm2015/datepicker/sub-components/positioning/utils/getScroll.js +14 -0
  437. package/esm2015/datepicker/sub-components/positioning/utils/getScrollParent.js +26 -0
  438. package/esm2015/datepicker/sub-components/positioning/utils/getStyleComputedProperty.js +13 -0
  439. package/esm2015/datepicker/sub-components/positioning/utils/getTargetOffsets.js +30 -0
  440. package/esm2015/datepicker/sub-components/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +19 -0
  441. package/esm2015/datepicker/sub-components/positioning/utils/getWindowSizes.js +18 -0
  442. package/esm2015/datepicker/sub-components/positioning/utils/includeScroll.js +15 -0
  443. package/esm2015/datepicker/sub-components/positioning/utils/index.js +24 -0
  444. package/esm2015/datepicker/sub-components/positioning/utils/isBrowser.js +2 -0
  445. package/esm2015/datepicker/sub-components/positioning/utils/isFixed.js +16 -0
  446. package/esm2015/datepicker/sub-components/positioning/utils/isIE.js +16 -0
  447. package/esm2015/datepicker/sub-components/positioning/utils/isModifierEnabled.js +10 -0
  448. package/esm2015/datepicker/sub-components/positioning/utils/isNumeric.js +7 -0
  449. package/esm2015/datepicker/sub-components/positioning/utils/isOffsetContainer.js +9 -0
  450. package/esm2015/datepicker/sub-components/positioning/utils/setStyles.js +17 -0
  451. package/esm2015/datepicker/sub-components/positioning/utils/updateContainerClass.js +22 -0
  452. package/esm2015/datepicker/sub-components/tooltip/index.js +2 -0
  453. package/esm2015/datepicker/sub-components/tooltip/public_api.js +5 -0
  454. package/esm2015/datepicker/sub-components/tooltip/tooltip-container.component.js +63 -0
  455. package/esm2015/datepicker/sub-components/tooltip/tooltip.config.js +22 -0
  456. package/esm2015/datepicker/sub-components/tooltip/tooltip.directive.js +282 -0
  457. package/esm2015/datepicker/sub-components/tooltip/tooltip.module.js +23 -0
  458. package/esm2015/datepicker/sub-components/utils/decorators.js +25 -0
  459. package/esm2015/datepicker/sub-components/utils/facade/browser.js +24 -0
  460. package/esm2015/datepicker/sub-components/utils/index.js +2 -0
  461. package/esm2015/datepicker/sub-components/utils/linked-list.class.js +240 -0
  462. package/esm2015/datepicker/sub-components/utils/public_api.js +11 -0
  463. package/esm2015/datepicker/sub-components/utils/theme-provider.js +35 -0
  464. package/esm2015/datepicker/sub-components/utils/trigger.class.js +10 -0
  465. package/esm2015/datepicker/sub-components/utils/triggers.js +110 -0
  466. package/esm2015/datepicker/sub-components/utils/utils.class.js +21 -0
  467. package/esm2015/datepicker/sub-components/utils/warn-once.js +12 -0
  468. package/esm2015/datepicker/themes/bs/bs-calendar-layout.component.js +25 -0
  469. package/esm2015/datepicker/themes/bs/bs-current-date-view.component.js +13 -0
  470. package/esm2015/datepicker/themes/bs/bs-custom-dates-view.component.js +44 -0
  471. package/esm2015/datepicker/themes/bs/bs-datepicker-container.component.js +152 -0
  472. package/esm2015/datepicker/themes/bs/bs-datepicker-day-decorator.directive.js +47 -0
  473. package/esm2015/datepicker/themes/bs/bs-datepicker-inline-container.component.js +36 -0
  474. package/esm2015/datepicker/themes/bs/bs-datepicker-navigation-view.component.js +63 -0
  475. package/esm2015/datepicker/themes/bs/bs-daterangepicker-container.component.js +195 -0
  476. package/esm2015/datepicker/themes/bs/bs-daterangepicker-inline-container.component.js +36 -0
  477. package/esm2015/datepicker/themes/bs/bs-days-calendar-view.component.js +162 -0
  478. package/esm2015/datepicker/themes/bs/bs-months-calendar-view.component.js +60 -0
  479. package/esm2015/datepicker/themes/bs/bs-timepicker-view.component.js +34 -0
  480. package/esm2015/datepicker/themes/bs/bs-years-calendar-view.component.js +61 -0
  481. package/esm2015/datepicker/utils/bs-calendar-utils.js +43 -0
  482. package/esm2015/datepicker/utils/matrix-utils.js +14 -0
  483. package/esm2015/datepicker/yearpicker.component.js +90 -0
  484. package/esm2015/datepicker_v2/tz-dp-container/tz-dp-container.component.js +13 -13
  485. package/esm2015/multi-select-dropdown/multi-select-dropdown.component.js +10 -2
  486. package/fesm2015/mis-crystal-design-system-datepicker.js +13512 -0
  487. package/fesm2015/mis-crystal-design-system-datepicker.js.map +1 -0
  488. package/fesm2015/mis-crystal-design-system-datepicker_v2.js +12 -12
  489. package/fesm2015/mis-crystal-design-system-datepicker_v2.js.map +1 -1
  490. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js +9 -1
  491. package/fesm2015/mis-crystal-design-system-multi-select-dropdown.js.map +1 -1
  492. package/multi-select-dropdown/mis-crystal-design-system-multi-select-dropdown.metadata.json +1 -1
  493. package/multi-select-dropdown/multi-select-dropdown.component.d.ts +1 -1
  494. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Determines if the browser is Internet Explorer
3
+ */
4
+ import { isBrowser } from './isBrowser';
5
+ const isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
6
+ const isIE10 = isBrowser && !!(window.MSInputMethodContext && /MSIE 10/.test(navigator.userAgent));
7
+ export function isIE(version) {
8
+ if (version === 11) {
9
+ return isIE11;
10
+ }
11
+ if (version === 10) {
12
+ return isIE10;
13
+ }
14
+ return isIE11 || isIE10;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNJRS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvc3ViLWNvbXBvbmVudHMvcG9zaXRpb25pbmcvdXRpbHMvaXNJRS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFFLE1BQWMsQ0FBQyxvQkFBb0IsSUFBSyxRQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3ZHLE1BQU0sTUFBTSxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBRSxNQUFjLENBQUMsb0JBQW9CLElBQUksU0FBUyxDQUFDLElBQUksQ0FBRSxTQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7QUFFckgsTUFBTSxVQUFVLElBQUksQ0FBQyxPQUFnQjtJQUNuQyxJQUFJLE9BQU8sS0FBSyxFQUFFLEVBQUU7UUFDbEIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUNELElBQUksT0FBTyxLQUFLLEVBQUUsRUFBRTtRQUNsQixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERldGVybWluZXMgaWYgdGhlIGJyb3dzZXIgaXMgSW50ZXJuZXQgRXhwbG9yZXJcbiAqL1xuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnLi9pc0Jyb3dzZXInO1xuXG5jb25zdCBpc0lFMTEgPSBpc0Jyb3dzZXIgJiYgISEoKHdpbmRvdyBhcyBhbnkpLk1TSW5wdXRNZXRob2RDb250ZXh0ICYmIChkb2N1bWVudCBhcyBhbnkpLmRvY3VtZW50TW9kZSk7XG5jb25zdCBpc0lFMTAgPSBpc0Jyb3dzZXIgJiYgISEoKHdpbmRvdyBhcyBhbnkpLk1TSW5wdXRNZXRob2RDb250ZXh0ICYmIC9NU0lFIDEwLy50ZXN0KChuYXZpZ2F0b3IgYXMgYW55KS51c2VyQWdlbnQpKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzSUUodmVyc2lvbj86IG51bWJlcikge1xuICBpZiAodmVyc2lvbiA9PT0gMTEpIHtcbiAgICByZXR1cm4gaXNJRTExO1xuICB9XG4gIGlmICh2ZXJzaW9uID09PSAxMCkge1xuICAgIHJldHVybiBpc0lFMTA7XG4gIH1cblxuICByZXR1cm4gaXNJRTExIHx8IGlzSUUxMDtcbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Helper used to know if the given modifier is enabled.
3
+ */
4
+ export function isModifierEnabled(options, modifierName) {
5
+ return options
6
+ && options.modifiers
7
+ && options.modifiers[modifierName]
8
+ && options.modifiers[modifierName].enabled;
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNNb2RpZmllckVuYWJsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3Bvc2l0aW9uaW5nL3V0aWxzL2lzTW9kaWZpZXJFbmFibGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQVksRUFBRSxZQUFvQjtJQUNsRSxPQUFPLE9BQU87V0FDVCxPQUFPLENBQUMsU0FBUztXQUNqQixPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztXQUMvQixPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIZWxwZXIgdXNlZCB0byBrbm93IGlmIHRoZSBnaXZlbiBtb2RpZmllciBpcyBlbmFibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RpZmllckVuYWJsZWQob3B0aW9uczogYW55LCBtb2RpZmllck5hbWU6IHN0cmluZykge1xuICByZXR1cm4gb3B0aW9uc1xuICAgICYmIG9wdGlvbnMubW9kaWZpZXJzXG4gICAgJiYgb3B0aW9ucy5tb2RpZmllcnNbbW9kaWZpZXJOYW1lXVxuICAgICYmIG9wdGlvbnMubW9kaWZpZXJzW21vZGlmaWVyTmFtZV0uZW5hYmxlZDtcbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tells if a given input is a number
3
+ */
4
+ export function isNumeric(n) {
5
+ return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNOdW1lcmljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9zdWItY29tcG9uZW50cy9wb3NpdGlvbmluZy91dGlscy9pc051bWVyaWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLENBQU07SUFDOUIsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZWxscyBpZiBhIGdpdmVuIGlucHV0IGlzIGEgbnVtYmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc051bWVyaWMobjogYW55KSB7XG4gIHJldHVybiBuICE9PSAnJyAmJiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ import { getOffsetParent } from './getOffsetParent';
2
+ export function isOffsetContainer(element) {
3
+ const { nodeName } = element;
4
+ if (nodeName === 'BODY') {
5
+ return false;
6
+ }
7
+ return (nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element);
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNPZmZzZXRDb250YWluZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3Bvc2l0aW9uaW5nL3V0aWxzL2lzT2Zmc2V0Q29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBWTtJQUM1QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQzdCLElBQUksUUFBUSxLQUFLLE1BQU0sRUFBRTtRQUN2QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxDQUNMLFFBQVEsS0FBSyxNQUFNLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLE9BQU8sQ0FDOUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRPZmZzZXRQYXJlbnQgfSBmcm9tICcuL2dldE9mZnNldFBhcmVudCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09mZnNldENvbnRhaW5lcihlbGVtZW50OiBhbnkpIHtcbiAgY29uc3QgeyBub2RlTmFtZSB9ID0gZWxlbWVudDtcbiAgaWYgKG5vZGVOYW1lID09PSAnQk9EWScpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIG5vZGVOYW1lID09PSAnSFRNTCcgfHwgZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQpID09PSBlbGVtZW50XG4gICk7XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { isNumeric } from './isNumeric';
2
+ export function setStyles(element, styles, renderer) {
3
+ Object.keys(styles).forEach((prop) => {
4
+ let unit = '';
5
+ // add unit if the value is numeric and is one of the following
6
+ if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&
7
+ isNumeric(styles[prop])) {
8
+ unit = 'px';
9
+ }
10
+ if (renderer) {
11
+ renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);
12
+ return;
13
+ }
14
+ element.style[prop] = String(styles[prop]) + unit;
15
+ });
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0U3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9zdWItY29tcG9uZW50cy9wb3NpdGlvbmluZy91dGlscy9zZXRTdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxNQUFNLFVBQVUsU0FBUyxDQUFDLE9BQW9CLEVBQUUsTUFBVyxFQUFFLFFBQW9CO0lBQy9FLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDeEMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsK0RBQStEO1FBQy9ELElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ3pCLElBQUksR0FBRyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUM7WUFFbkUsT0FBTztTQUNSO1FBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2V0IHRoZSBzdHlsZSB0byB0aGUgZ2l2ZW4gcG9wcGVyXG4gKi9cbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpc051bWVyaWMgfSBmcm9tICcuL2lzTnVtZXJpYyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdHlsZXMoZWxlbWVudDogSFRNTEVsZW1lbnQsIHN0eWxlczogYW55LCByZW5kZXJlcj86IFJlbmRlcmVyMikge1xuICBPYmplY3Qua2V5cyhzdHlsZXMpLmZvckVhY2goKHByb3A6IGFueSkgPT4ge1xuICAgIGxldCB1bml0ID0gJyc7XG4gICAgLy8gYWRkIHVuaXQgaWYgdGhlIHZhbHVlIGlzIG51bWVyaWMgYW5kIGlzIG9uZSBvZiB0aGUgZm9sbG93aW5nXG4gICAgaWYgKFsnd2lkdGgnLCAnaGVpZ2h0JywgJ3RvcCcsICdyaWdodCcsICdib3R0b20nLCAnbGVmdCddLmluZGV4T2YocHJvcCkgIT09IC0xICYmXG4gICAgICBpc051bWVyaWMoc3R5bGVzW3Byb3BdKSkge1xuICAgICAgdW5pdCA9ICdweCc7XG4gICAgfVxuXG4gICAgaWYgKHJlbmRlcmVyKSB7XG4gICAgICByZW5kZXJlci5zZXRTdHlsZShlbGVtZW50LCBwcm9wLCBgJHtTdHJpbmcoc3R5bGVzW3Byb3BdKX0ke3VuaXR9YCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBlbGVtZW50LnN0eWxlW3Byb3BdID0gU3RyaW5nKHN0eWxlc1twcm9wXSkgKyB1bml0O1xuICB9KTtcbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ export function updateContainerClass(data, renderer) {
2
+ const target = data.instance.target;
3
+ let containerClass = target.className;
4
+ if (data.placementAuto) {
5
+ containerClass = containerClass.replace(/mis-popover-auto/g, `mis-popover-${data.placement}`);
6
+ containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${data.placement}`);
7
+ containerClass = containerClass.replace(/\sauto/g, ` ${data.placement}`);
8
+ if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {
9
+ containerClass += ' popover-auto';
10
+ }
11
+ if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {
12
+ containerClass += ' tooltip-auto';
13
+ }
14
+ }
15
+ containerClass = containerClass.replace(/left|right|top|bottom/g, `${data.placement.split(' ')[0]}`);
16
+ if (renderer) {
17
+ renderer.setAttribute(target, 'class', containerClass);
18
+ return;
19
+ }
20
+ target.className = containerClass;
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlQ29udGFpbmVyQ2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3Bvc2l0aW9uaW5nL3V0aWxzL3VwZGF0ZUNvbnRhaW5lckNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxJQUFVLEVBQUUsUUFBb0I7SUFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFFcEMsSUFBSSxjQUFjLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUV0QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDdEIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM5RixjQUFjLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLGNBQWMsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzdGLGNBQWMsSUFBSSxlQUFlLENBQUM7U0FDbkM7UUFFRCxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUssY0FBYyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM5RixjQUFjLElBQUksZUFBZSxDQUFDO1NBQ25DO0tBQ0Y7SUFFRCxjQUFjLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVyRyxJQUFJLFFBQVEsRUFBRTtRQUNaLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV2RCxPQUFPO0tBQ1I7SUFFRCxNQUFNLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVcGRhdGUgY2xhc3MgZm9yIHRoZSBnaXZlbiBwb3BwZXJcbiAqL1xuaW1wb3J0IHsgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNvbnRhaW5lckNsYXNzKGRhdGE6IERhdGEsIHJlbmRlcmVyPzogUmVuZGVyZXIyKTogdm9pZCB7XG4gIGNvbnN0IHRhcmdldCA9IGRhdGEuaW5zdGFuY2UudGFyZ2V0O1xuXG4gIGxldCBjb250YWluZXJDbGFzcyA9IHRhcmdldC5jbGFzc05hbWU7XG5cbiAgaWYgKGRhdGEucGxhY2VtZW50QXV0bykge1xuICAgIGNvbnRhaW5lckNsYXNzID0gY29udGFpbmVyQ2xhc3MucmVwbGFjZSgvbWlzLXBvcG92ZXItYXV0by9nLCBgbWlzLXBvcG92ZXItJHtkYXRhLnBsYWNlbWVudH1gKTtcbiAgICBjb250YWluZXJDbGFzcyA9IGNvbnRhaW5lckNsYXNzLnJlcGxhY2UoL2JzLXRvb2x0aXAtYXV0by9nLCBgYnMtdG9vbHRpcC0ke2RhdGEucGxhY2VtZW50fWApO1xuICAgIGNvbnRhaW5lckNsYXNzID0gY29udGFpbmVyQ2xhc3MucmVwbGFjZSgvXFxzYXV0by9nLCBgICR7ZGF0YS5wbGFjZW1lbnR9YCk7XG5cbiAgICBpZiAoY29udGFpbmVyQ2xhc3MuaW5kZXhPZigncG9wb3ZlcicpICE9PSAtMSAmJiBjb250YWluZXJDbGFzcy5pbmRleE9mKCdwb3BvdmVyLWF1dG8nKSA9PT0gLTEpIHtcbiAgICAgIGNvbnRhaW5lckNsYXNzICs9ICcgcG9wb3Zlci1hdXRvJztcbiAgICB9XG5cbiAgICBpZiAoY29udGFpbmVyQ2xhc3MuaW5kZXhPZigndG9vbHRpcCcpICE9PSAtMSAgJiYgY29udGFpbmVyQ2xhc3MuaW5kZXhPZigndG9vbHRpcC1hdXRvJykgPT09IC0xKSB7XG4gICAgICBjb250YWluZXJDbGFzcyArPSAnIHRvb2x0aXAtYXV0byc7XG4gICAgfVxuICB9XG5cbiAgY29udGFpbmVyQ2xhc3MgPSBjb250YWluZXJDbGFzcy5yZXBsYWNlKC9sZWZ0fHJpZ2h0fHRvcHxib3R0b20vZywgYCR7ZGF0YS5wbGFjZW1lbnQuc3BsaXQoJyAnKVswXX1gKTtcblxuICBpZiAocmVuZGVyZXIpIHtcbiAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUodGFyZ2V0LCAnY2xhc3MnLCBjb250YWluZXJDbGFzcyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICB0YXJnZXQuY2xhc3NOYW1lID0gY29udGFpbmVyQ2xhc3M7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public_api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3Rvb2x0aXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,5 @@
1
+ export { TooltipContainerComponent } from './tooltip-container.component';
2
+ export { TooltipDirective } from './tooltip.directive';
3
+ export { TooltipModule } from './tooltip.module';
4
+ export { TooltipConfig } from './tooltip.config';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvc3ViLWNvbXBvbmVudHMvdG9vbHRpcC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBUb29sdGlwQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJy4vdG9vbHRpcC5tb2R1bGUnO1xuZXhwb3J0IHsgVG9vbHRpcENvbmZpZyB9IGZyb20gJy4vdG9vbHRpcC5jb25maWcnO1xuIl19
@@ -0,0 +1,63 @@
1
+ import { Component, ChangeDetectionStrategy } from '@angular/core';
2
+ import { TooltipConfig } from './tooltip.config';
3
+ import { isBs3 } from '../utils';
4
+ export class TooltipContainerComponent {
5
+ constructor(config) {
6
+ Object.assign(this, config);
7
+ }
8
+ get isBs3() {
9
+ return isBs3();
10
+ }
11
+ ngAfterViewInit() {
12
+ this.classMap = { in: false, fade: false };
13
+ this.classMap[this.placement] = true;
14
+ this.classMap[`tooltip-${this.placement}`] = true;
15
+ this.classMap.in = true;
16
+ if (this.animation) {
17
+ this.classMap.fade = true;
18
+ }
19
+ if (this.containerClass) {
20
+ this.classMap[this.containerClass] = true;
21
+ }
22
+ }
23
+ }
24
+ TooltipContainerComponent.decorators = [
25
+ { type: Component, args: [{
26
+ selector: 'mis-tooltip-container',
27
+ changeDetection: ChangeDetectionStrategy.OnPush,
28
+ // tslint:disable-next-line
29
+ host: {
30
+ '[class]': '"tooltip in tooltip-" + placement + " " + "bs-tooltip-" + placement + " " + placement + " " + containerClass',
31
+ '[class.show]': '!isBs3',
32
+ '[class.bs3]': 'isBs3',
33
+ '[attr.id]': 'this.id',
34
+ role: 'tooltip'
35
+ },
36
+ template: `
37
+ <div class="tooltip-arrow arrow"></div>
38
+ <div class="tooltip-inner"><ng-content></ng-content></div>
39
+ `,
40
+ styles: [`
41
+ :host.tooltip {
42
+ display: block;
43
+ pointer-events: none;
44
+ }
45
+ :host.bs3.tooltip.top>.arrow {
46
+ margin-left: -2px;
47
+ }
48
+ :host.bs3.tooltip.bottom {
49
+ margin-top: 0px;
50
+ }
51
+ :host.bs3.bs-tooltip-left, :host.bs3.bs-tooltip-right{
52
+ margin: 1rem;
53
+ }
54
+ :host.bs3.bs-tooltip-right .arrow, :host.bs3.bs-tooltip-left .arrow {
55
+ margin: 1rem;
56
+ }
57
+ `]
58
+ },] }
59
+ ];
60
+ TooltipContainerComponent.ctorParameters = () => [
61
+ { type: TooltipConfig }
62
+ ];
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9zdWItY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULHVCQUF1QixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQXVDakMsTUFBTSxPQUFPLHlCQUF5QjtJQVdwQyxZQUFZLE1BQXFCO1FBQy9CLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFORCxJQUFJLEtBQUs7UUFDUCxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFNRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRWxELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQzNCO1FBRUQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUMzQztJQUNILENBQUM7OztZQWpFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLDJCQUEyQjtnQkFDM0IsSUFBSSxFQUFFO29CQUNKLFNBQVMsRUFDUCw4R0FBOEc7b0JBQ2hILGNBQWMsRUFBRSxRQUFRO29CQUN4QixhQUFhLEVBQUUsT0FBTztvQkFDdEIsV0FBVyxFQUFFLFNBQVM7b0JBQ3RCLElBQUksRUFBRSxTQUFTO2lCQUNoQjtnQkFxQkQsUUFBUSxFQUFFOzs7S0FHUDt5QkF0QkQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJEO2FBTUY7OztZQXZDUSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBDb25maWcgfSBmcm9tICcuL3Rvb2x0aXAuY29uZmlnJztcbmltcG9ydCB7IGlzQnMzIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtaXMtdG9vbHRpcC1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzXSc6XG4gICAgICAnXCJ0b29sdGlwIGluIHRvb2x0aXAtXCIgKyBwbGFjZW1lbnQgKyBcIiBcIiArIFwiYnMtdG9vbHRpcC1cIiArIHBsYWNlbWVudCArIFwiIFwiICsgcGxhY2VtZW50ICsgXCIgXCIgKyBjb250YWluZXJDbGFzcycsXG4gICAgJ1tjbGFzcy5zaG93XSc6ICchaXNCczMnLFxuICAgICdbY2xhc3MuYnMzXSc6ICdpc0JzMycsXG4gICAgJ1thdHRyLmlkXSc6ICd0aGlzLmlkJyxcbiAgICByb2xlOiAndG9vbHRpcCdcbiAgfSxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgIDpob3N0LnRvb2x0aXAge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG4gICAgOmhvc3QuYnMzLnRvb2x0aXAudG9wPi5hcnJvdyB7XG4gICAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICB9XG4gICAgOmhvc3QuYnMzLnRvb2x0aXAuYm90dG9tIHtcbiAgICAgIG1hcmdpbi10b3A6IDBweDtcbiAgICB9XG4gICAgOmhvc3QuYnMzLmJzLXRvb2x0aXAtbGVmdCwgOmhvc3QuYnMzLmJzLXRvb2x0aXAtcmlnaHR7XG4gICAgICBtYXJnaW46IDFyZW07XG4gICAgfVxuICAgIDpob3N0LmJzMy5icy10b29sdGlwLXJpZ2h0IC5hcnJvdywgOmhvc3QuYnMzLmJzLXRvb2x0aXAtbGVmdCAuYXJyb3cge1xuICAgICAgbWFyZ2luOiAxcmVtO1xuICAgIH1cbiAgYFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93IGFycm93XCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBUb29sdGlwQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIGNsYXNzTWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgcGxhY2VtZW50OiBzdHJpbmc7XG4gIGNvbnRhaW5lckNsYXNzOiBzdHJpbmc7XG4gIGFuaW1hdGlvbjogYm9vbGVhbjtcbiAgaWQ6IHN0cmluZztcblxuICBnZXQgaXNCczMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzQnMzKCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IFRvb2x0aXBDb25maWcpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNvbmZpZyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jbGFzc01hcCA9IHsgaW46IGZhbHNlLCBmYWRlOiBmYWxzZSB9O1xuICAgIHRoaXMuY2xhc3NNYXBbdGhpcy5wbGFjZW1lbnRdID0gdHJ1ZTtcbiAgICB0aGlzLmNsYXNzTWFwW2B0b29sdGlwLSR7dGhpcy5wbGFjZW1lbnR9YF0gPSB0cnVlO1xuXG4gICAgdGhpcy5jbGFzc01hcC5pbiA9IHRydWU7XG4gICAgaWYgKHRoaXMuYW5pbWF0aW9uKSB7XG4gICAgICB0aGlzLmNsYXNzTWFwLmZhZGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRhaW5lckNsYXNzKSB7XG4gICAgICB0aGlzLmNsYXNzTWFwW3RoaXMuY29udGFpbmVyQ2xhc3NdID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /** Default values provider for tooltip */
4
+ export class TooltipConfig {
5
+ constructor() {
6
+ /** sets disable adaptive position */
7
+ this.adaptivePosition = true;
8
+ /** tooltip placement, supported positions: 'top', 'bottom', 'left', 'right' */
9
+ this.placement = 'top';
10
+ /** array of event names which triggers tooltip opening */
11
+ this.triggers = 'hover focus';
12
+ /** delay before showing the tooltip */
13
+ this.delay = 0;
14
+ }
15
+ }
16
+ TooltipConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function TooltipConfig_Factory() { return new TooltipConfig(); }, token: TooltipConfig, providedIn: "root" });
17
+ TooltipConfig.decorators = [
18
+ { type: Injectable, args: [{
19
+ providedIn: 'root'
20
+ },] }
21
+ ];
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsMENBQTBDO0FBSTFDLE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSUUscUNBQXFDO1FBQ3JDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QiwrRUFBK0U7UUFDL0UsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQiwwREFBMEQ7UUFDMUQsYUFBUSxHQUFHLGFBQWEsQ0FBQztRQUd6Qix1Q0FBdUM7UUFDdkMsVUFBSyxHQUFHLENBQUMsQ0FBQztLQUNYOzs7O1lBZEEsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiogRGVmYXVsdCB2YWx1ZXMgcHJvdmlkZXIgZm9yIHRvb2x0aXAgKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBDb25maWcge1xuICAvKiogc2V0cyBkaXNhYmxlIGFkYXB0aXZlIHBvc2l0aW9uICovXG4gIGFkYXB0aXZlUG9zaXRpb24gPSB0cnVlO1xuICAvKiogdG9vbHRpcCBwbGFjZW1lbnQsIHN1cHBvcnRlZCBwb3NpdGlvbnM6ICd0b3AnLCAnYm90dG9tJywgJ2xlZnQnLCAncmlnaHQnICovXG4gIHBsYWNlbWVudCA9ICd0b3AnO1xuICAvKiogYXJyYXkgb2YgZXZlbnQgbmFtZXMgd2hpY2ggdHJpZ2dlcnMgdG9vbHRpcCBvcGVuaW5nICovXG4gIHRyaWdnZXJzID0gJ2hvdmVyIGZvY3VzJztcbiAgLyoqIGEgc2VsZWN0b3Igc3BlY2lmeWluZyB0aGUgZWxlbWVudCB0aGUgdG9vbHRpcCBzaG91bGQgYmUgYXBwZW5kZWQgdG8uICovXG4gIGNvbnRhaW5lcjogc3RyaW5nO1xuICAvKiogZGVsYXkgYmVmb3JlIHNob3dpbmcgdGhlIHRvb2x0aXAgKi9cbiAgZGVsYXkgPSAwO1xufVxuIl19
@@ -0,0 +1,282 @@
1
+ import { __decorate } from "tslib";
2
+ /* tslint:disable: max-file-line-count deprecation */
3
+ import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2, ViewContainerRef } from '@angular/core';
4
+ import { TooltipContainerComponent } from './tooltip-container.component';
5
+ import { TooltipConfig } from './tooltip.config';
6
+ import { ComponentLoaderFactory } from '../component-loader';
7
+ import { OnChange, warnOnce, parseTriggers } from '../utils';
8
+ import { PositioningService } from '../positioning';
9
+ import { timer } from 'rxjs';
10
+ let id = 0;
11
+ export class TooltipDirective {
12
+ constructor(_viewContainerRef, cis, config, _elementRef, _renderer, _positionService) {
13
+ this._elementRef = _elementRef;
14
+ this._renderer = _renderer;
15
+ this._positionService = _positionService;
16
+ this.tooltipId = id++;
17
+ /** Fired when tooltip content changes */
18
+ /* tslint:disable-next-line:no-any */
19
+ this.tooltipChange = new EventEmitter();
20
+ /**
21
+ * Css class for tooltip container
22
+ */
23
+ this.containerClass = '';
24
+ /** @deprecated - removed, will be added to configuration */
25
+ this.tooltipAnimation = true;
26
+ /** @deprecated */
27
+ this.tooltipFadeDuration = 150;
28
+ /** @deprecated */
29
+ this.tooltipStateChanged = new EventEmitter();
30
+ this._tooltip = cis
31
+ .createLoader(this._elementRef, _viewContainerRef, this._renderer)
32
+ .provide({ provide: TooltipConfig, useValue: config });
33
+ Object.assign(this, config);
34
+ this.onShown = this._tooltip.onShown;
35
+ this.onHidden = this._tooltip.onHidden;
36
+ }
37
+ /**
38
+ * Returns whether or not the tooltip is currently being shown
39
+ */
40
+ get isOpen() {
41
+ return this._tooltip.isShown;
42
+ }
43
+ set isOpen(value) {
44
+ if (value) {
45
+ this.show();
46
+ }
47
+ else {
48
+ this.hide();
49
+ }
50
+ }
51
+ /** @deprecated - please use `tooltip` instead */
52
+ set htmlContent(value) {
53
+ warnOnce('tooltipHtml was deprecated, please use `tooltip` instead');
54
+ this.tooltip = value;
55
+ }
56
+ /** @deprecated - please use `placement` instead */
57
+ set _placement(value) {
58
+ warnOnce('tooltipPlacement was deprecated, please use `placement` instead');
59
+ this.placement = value;
60
+ }
61
+ /** @deprecated - please use `isOpen` instead */
62
+ set _isOpen(value) {
63
+ warnOnce('tooltipIsOpen was deprecated, please use `isOpen` instead');
64
+ this.isOpen = value;
65
+ }
66
+ get _isOpen() {
67
+ warnOnce('tooltipIsOpen was deprecated, please use `isOpen` instead');
68
+ return this.isOpen;
69
+ }
70
+ /** @deprecated - please use `isDisabled` instead */
71
+ set _enable(value) {
72
+ warnOnce('tooltipEnable was deprecated, please use `isDisabled` instead');
73
+ this.isDisabled = !value;
74
+ }
75
+ get _enable() {
76
+ warnOnce('tooltipEnable was deprecated, please use `isDisabled` instead');
77
+ return this.isDisabled;
78
+ }
79
+ /** @deprecated - please use `container="body"` instead */
80
+ set _appendToBody(value) {
81
+ warnOnce('tooltipAppendToBody was deprecated, please use `container="body"` instead');
82
+ this.container = value ? 'body' : this.container;
83
+ }
84
+ get _appendToBody() {
85
+ warnOnce('tooltipAppendToBody was deprecated, please use `container="body"` instead');
86
+ return this.container === 'body';
87
+ }
88
+ /** @deprecated - will replaced with customClass */
89
+ set _popupClass(value) {
90
+ warnOnce('tooltipClass deprecated');
91
+ }
92
+ /** @deprecated - removed */
93
+ set _tooltipContext(value) {
94
+ warnOnce('tooltipContext deprecated');
95
+ }
96
+ /** @deprecated */
97
+ set _tooltipPopupDelay(value) {
98
+ warnOnce('tooltipPopupDelay is deprecated, use `delay` instead');
99
+ this.delay = value;
100
+ }
101
+ /** @deprecated - please use `triggers` instead */
102
+ get _tooltipTrigger() {
103
+ warnOnce('tooltipTrigger was deprecated, please use `triggers` instead');
104
+ return this.triggers;
105
+ }
106
+ set _tooltipTrigger(value) {
107
+ warnOnce('tooltipTrigger was deprecated, please use `triggers` instead');
108
+ this.triggers = (value || '').toString();
109
+ }
110
+ ngOnInit() {
111
+ this._tooltip.listen({
112
+ triggers: this.triggers,
113
+ show: () => this.show()
114
+ });
115
+ /* tslint:disable-next-line:no-any */
116
+ this.tooltipChange.subscribe((value) => {
117
+ if (!value) {
118
+ this._tooltip.hide();
119
+ }
120
+ });
121
+ this.onShown.subscribe(() => {
122
+ this.setAriaDescribedBy();
123
+ });
124
+ this.onHidden.subscribe(() => {
125
+ this.setAriaDescribedBy();
126
+ });
127
+ }
128
+ setAriaDescribedBy() {
129
+ this._ariaDescribedby = this.isOpen ? `tooltip-${this.tooltipId}` : null;
130
+ if (this._ariaDescribedby) {
131
+ this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ariaDescribedby);
132
+ }
133
+ else {
134
+ this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');
135
+ }
136
+ }
137
+ /**
138
+ * Toggles an element’s tooltip. This is considered a “manual” triggering of
139
+ * the tooltip.
140
+ */
141
+ toggle() {
142
+ if (this.isOpen) {
143
+ return this.hide();
144
+ }
145
+ this.show();
146
+ }
147
+ /**
148
+ * Opens an element’s tooltip. This is considered a “manual” triggering of
149
+ * the tooltip.
150
+ */
151
+ show() {
152
+ this._positionService.setOptions({
153
+ modifiers: {
154
+ flip: {
155
+ enabled: this.adaptivePosition
156
+ },
157
+ preventOverflow: {
158
+ enabled: this.adaptivePosition,
159
+ boundariesElement: this.boundariesElement || 'scrollParent'
160
+ }
161
+ }
162
+ });
163
+ if (this.isOpen ||
164
+ this.isDisabled ||
165
+ this._delayTimeoutId ||
166
+ !this.tooltip) {
167
+ return;
168
+ }
169
+ const showTooltip = () => {
170
+ if (this._delayTimeoutId) {
171
+ this._delayTimeoutId = undefined;
172
+ }
173
+ this._tooltip
174
+ .attach(TooltipContainerComponent)
175
+ .to(this.container)
176
+ .position({ attachment: this.placement })
177
+ .show({
178
+ content: this.tooltip,
179
+ placement: this.placement,
180
+ containerClass: this.containerClass,
181
+ id: `tooltip-${this.tooltipId}`
182
+ });
183
+ };
184
+ const cancelDelayedTooltipShowing = () => {
185
+ if (this._tooltipCancelShowFn) {
186
+ this._tooltipCancelShowFn();
187
+ }
188
+ };
189
+ if (this.delay) {
190
+ if (this._delaySubscription) {
191
+ this._delaySubscription.unsubscribe();
192
+ }
193
+ this._delaySubscription = timer(this.delay).subscribe(() => {
194
+ showTooltip();
195
+ cancelDelayedTooltipShowing();
196
+ });
197
+ if (this.triggers) {
198
+ parseTriggers(this.triggers)
199
+ .forEach((trigger) => {
200
+ this._tooltipCancelShowFn = this._renderer.listen(this._elementRef.nativeElement, trigger.close, () => {
201
+ this._delaySubscription.unsubscribe();
202
+ cancelDelayedTooltipShowing();
203
+ });
204
+ });
205
+ }
206
+ }
207
+ else {
208
+ showTooltip();
209
+ }
210
+ }
211
+ /**
212
+ * Closes an element’s tooltip. This is considered a “manual” triggering of
213
+ * the tooltip.
214
+ */
215
+ hide() {
216
+ if (this._delayTimeoutId) {
217
+ clearTimeout(this._delayTimeoutId);
218
+ this._delayTimeoutId = undefined;
219
+ }
220
+ if (!this._tooltip.isShown) {
221
+ return;
222
+ }
223
+ this._tooltip.instance.classMap.in = false;
224
+ setTimeout(() => {
225
+ this._tooltip.hide();
226
+ }, this.tooltipFadeDuration);
227
+ }
228
+ ngOnDestroy() {
229
+ this._tooltip.dispose();
230
+ this.tooltipChange.unsubscribe();
231
+ if (this._delaySubscription) {
232
+ this._delaySubscription.unsubscribe();
233
+ }
234
+ this.onShown.unsubscribe();
235
+ this.onHidden.unsubscribe();
236
+ }
237
+ }
238
+ TooltipDirective.decorators = [
239
+ { type: Directive, args: [{
240
+ selector: '[tooltip], [tooltipHtml]',
241
+ exportAs: 'mis-tooltip'
242
+ },] }
243
+ ];
244
+ TooltipDirective.ctorParameters = () => [
245
+ { type: ViewContainerRef },
246
+ { type: ComponentLoaderFactory },
247
+ { type: TooltipConfig },
248
+ { type: ElementRef },
249
+ { type: Renderer2 },
250
+ { type: PositioningService }
251
+ ];
252
+ TooltipDirective.propDecorators = {
253
+ adaptivePosition: [{ type: Input }],
254
+ tooltip: [{ type: Input }],
255
+ tooltipChange: [{ type: Output }],
256
+ placement: [{ type: Input }],
257
+ triggers: [{ type: Input }],
258
+ container: [{ type: Input }],
259
+ containerClass: [{ type: Input }],
260
+ boundariesElement: [{ type: Input }],
261
+ isOpen: [{ type: Input }],
262
+ isDisabled: [{ type: Input }],
263
+ delay: [{ type: Input }],
264
+ onShown: [{ type: Output }],
265
+ onHidden: [{ type: Output }],
266
+ htmlContent: [{ type: Input, args: ['tooltipHtml',] }],
267
+ _placement: [{ type: Input, args: ['tooltipPlacement',] }],
268
+ _isOpen: [{ type: Input, args: ['tooltipIsOpen',] }],
269
+ _enable: [{ type: Input, args: ['tooltipEnable',] }],
270
+ _appendToBody: [{ type: Input, args: ['tooltipAppendToBody',] }],
271
+ tooltipAnimation: [{ type: Input }],
272
+ _popupClass: [{ type: Input, args: ['tooltipClass',] }],
273
+ _tooltipContext: [{ type: Input, args: ['tooltipContext',] }],
274
+ _tooltipPopupDelay: [{ type: Input, args: ['tooltipPopupDelay',] }],
275
+ tooltipFadeDuration: [{ type: Input }],
276
+ _tooltipTrigger: [{ type: Input, args: ['tooltipTrigger',] }],
277
+ tooltipStateChanged: [{ type: Output }]
278
+ };
279
+ __decorate([
280
+ OnChange()
281
+ ], TooltipDirective.prototype, "tooltip", void 0);
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHFEQUFxRDtBQUNyRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxPQUFPLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFXLE1BQU0sVUFBVSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE9BQU8sRUFBRSxLQUFLLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRTNDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQU1YLE1BQU0sT0FBTyxnQkFBZ0I7SUFtTDNCLFlBQ0UsaUJBQW1DLEVBQ25DLEdBQTJCLEVBQzNCLE1BQXFCLEVBQ2IsV0FBdUIsRUFDdkIsU0FBb0IsRUFDcEIsZ0JBQW9DO1FBRnBDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQXhMOUMsY0FBUyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBVWpCLHlDQUF5QztRQUV6QyxxQ0FBcUM7UUFDckMsa0JBQWEsR0FBNEMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQWU1RTs7V0FFRztRQUNNLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBaUc3Qiw0REFBNEQ7UUFDbkQscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBc0JqQyxrQkFBa0I7UUFDVCx3QkFBbUIsR0FBRyxHQUFHLENBQUM7UUFlbkMsa0JBQWtCO1FBRWxCLHdCQUFtQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBa0J2RSxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUc7YUFDaEIsWUFBWSxDQUNYLElBQUksQ0FBQyxXQUFXLEVBQ2hCLGlCQUFpQixFQUNqQixJQUFJLENBQUMsU0FBUyxDQUNmO2FBQ0EsT0FBTyxDQUFDLEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUV2RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQXJLRDs7T0FFRztJQUNILElBQ0ksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjthQUFNO1lBQ0wsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBdUJELGlEQUFpRDtJQUNqRCxJQUVJLFdBQVcsQ0FBQyxLQUFnQztRQUM5QyxRQUFRLENBQUMsMERBQTBELENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsbURBQW1EO0lBQ25ELElBQ0ksVUFBVSxDQUFDLEtBQWE7UUFDMUIsUUFBUSxDQUFDLGlFQUFpRSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxJQUNJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLFFBQVEsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxRQUFRLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUV0RSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxJQUNJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLFFBQVEsQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksT0FBTztRQUNULFFBQVEsQ0FBQywrREFBK0QsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsMERBQTBEO0lBQzFELElBQ0ksYUFBYSxDQUFDLEtBQWM7UUFDOUIsUUFBUSxDQUNOLDJFQUEyRSxDQUM1RSxDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsUUFBUSxDQUNOLDJFQUEyRSxDQUM1RSxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBS0QsbURBQW1EO0lBQ25ELElBQ0ksV0FBVyxDQUFDLEtBQWE7UUFDM0IsUUFBUSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixJQUVJLGVBQWUsQ0FBQyxLQUFVO1FBQzVCLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsSUFDSSxrQkFBa0IsQ0FBQyxLQUFhO1FBQ2xDLFFBQVEsQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFLRCxtREFBbUQ7SUFDbkQsSUFDSSxlQUFlO1FBQ2pCLFFBQVEsQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBRXpFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxlQUFlLENBQUMsS0FBd0I7UUFDMUMsUUFBUSxDQUFDLDhEQUE4RCxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBbUNELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNuQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXpFLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3hHO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3BGO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUMvQixTQUFTLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2lCQUMvQjtnQkFDRCxlQUFlLEVBQUU7b0JBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7b0JBQzlCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxjQUFjO2lCQUM1RDthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFDRSxJQUFJLENBQUMsTUFBTTtZQUNYLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxDQUFDLGVBQWU7WUFDcEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUNiO1lBQ0EsT0FBTztTQUNSO1FBRUQsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7YUFDbEM7WUFFRCxJQUFJLENBQUMsUUFBUTtpQkFDVixNQUFNLENBQUMseUJBQXlCLENBQUM7aUJBQ2pDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUNsQixRQUFRLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDO2lCQUN0QyxJQUFJLENBQUM7Z0JBQ0osT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDbkMsRUFBRSxFQUFFLFdBQVcsSUFBSSxDQUFDLFNBQVMsRUFBRTthQUNoQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFDRixNQUFNLDJCQUEyQixHQUFHLEdBQUcsRUFBRTtZQUN2QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDN0I7UUFDSCxDQUFDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3ZDO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDekQsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsMkJBQTJCLEVBQUUsQ0FBQztZQUNoQyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7cUJBQ3pCLE9BQU8sQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDOUIsT0FBTyxDQUFDLEtBQUssRUFDYixHQUFHLEVBQUU7d0JBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUN0QywyQkFBMkIsRUFBRSxDQUFDO29CQUNoQyxDQUFDLENBQ0YsQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0Y7YUFBTTtZQUNMLFdBQVcsRUFBRSxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSTtRQUNGLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQzFCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzNDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7O1lBaFdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxRQUFRLEVBQUUsYUFBYTthQUN4Qjs7O1lBakJDLGdCQUFnQjtZQU1RLHNCQUFzQjtZQUZ2QyxhQUFhO1lBWnBCLFVBQVU7WUFNVixTQUFTO1lBVUYsa0JBQWtCOzs7K0JBYXhCLEtBQUs7c0JBS0wsS0FBSzs0QkFJTCxNQUFNO3dCQU9OLEtBQUs7dUJBS0wsS0FBSzt3QkFJTCxLQUFLOzZCQUlMLEtBQUs7Z0NBQ0wsS0FBSztxQkFJTCxLQUFLO3lCQWdCTCxLQUFLO29CQUtMLEtBQUs7c0JBTUwsTUFBTTt1QkFLTixNQUFNOzBCQUdOLEtBQUssU0FBQyxhQUFhO3lCQVFuQixLQUFLLFNBQUMsa0JBQWtCO3NCQU94QixLQUFLLFNBQUMsZUFBZTtzQkFhckIsS0FBSyxTQUFDLGVBQWU7NEJBYXJCLEtBQUssU0FBQyxxQkFBcUI7K0JBaUIzQixLQUFLOzBCQUdMLEtBQUssU0FBQyxjQUFjOzhCQU1wQixLQUFLLFNBQUMsZ0JBQWdCO2lDQU90QixLQUFLLFNBQUMsbUJBQW1CO2tDQU96QixLQUFLOzhCQUdMLEtBQUssU0FBQyxnQkFBZ0I7a0NBYXRCLE1BQU07O0FBL0pQO0lBSEMsUUFBUSxFQUFFO2lEQUd3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOiBtYXgtZmlsZS1saW5lLWNvdW50IGRlcHJlY2F0aW9uICovXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRvb2x0aXBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3Rvb2x0aXAtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi90b29sdGlwLmNvbmZpZyc7XG5cbmltcG9ydCB7IENvbXBvbmVudExvYWRlciwgQ29tcG9uZW50TG9hZGVyRmFjdG9yeSB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgT25DaGFuZ2UsIHdhcm5PbmNlLCBwYXJzZVRyaWdnZXJzLCBUcmlnZ2VyIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnLi4vcG9zaXRpb25pbmcnO1xuXG5pbXBvcnQgeyB0aW1lciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmxldCBpZCA9IDA7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b29sdGlwXSwgW3Rvb2x0aXBIdG1sXScsXG4gIGV4cG9ydEFzOiAnbWlzLXRvb2x0aXAnXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHRvb2x0aXBJZCA9IGlkKys7XG4gIC8qKiBzZXRzIGRpc2FibGUgYWRhcHRpdmUgcG9zaXRpb24gKi9cbiAgQElucHV0KCkgYWRhcHRpdmVQb3NpdGlvbjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENvbnRlbnQgdG8gYmUgZGlzcGxheWVkIGFzIHRvb2x0aXAuXG4gICAqL1xuICBAT25DaGFuZ2UoKVxuICBASW5wdXQoKVxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gIHRvb2x0aXA6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKiBGaXJlZCB3aGVuIHRvb2x0aXAgY29udGVudCBjaGFuZ2VzICovXG4gIEBPdXRwdXQoKVxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gIHRvb2x0aXBDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogUGxhY2VtZW50IG9mIGEgdG9vbHRpcC4gQWNjZXB0czogXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwicmlnaHRcIlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgZXZlbnRzIHRoYXQgc2hvdWxkIHRyaWdnZXIuIFN1cHBvcnRzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2ZcbiAgICogZXZlbnQgbmFtZXMuXG4gICAqL1xuICBASW5wdXQoKSB0cmlnZ2Vyczogc3RyaW5nO1xuICAvKipcbiAgICogQSBzZWxlY3RvciBzcGVjaWZ5aW5nIHRoZSBlbGVtZW50IHRoZSB0b29sdGlwIHNob3VsZCBiZSBhcHBlbmRlZCB0by5cbiAgICovXG4gIEBJbnB1dCgpIGNvbnRhaW5lcjogc3RyaW5nO1xuICAvKipcbiAgICogQ3NzIGNsYXNzIGZvciB0b29sdGlwIGNvbnRhaW5lclxuICAgKi9cbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3MgPSAnJztcbiAgQElucHV0KCkgYm91bmRhcmllc0VsZW1lbnQ6ICgndmlld3BvcnQnIHwgJ3Njcm9sbFBhcmVudCcgfCAnd2luZG93Jyk7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSB0b29sdGlwIGlzIGN1cnJlbnRseSBiZWluZyBzaG93blxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbHRpcC5pc1Nob3duO1xuICB9XG5cbiAgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zaG93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gZGlzYWJsZSB0b29sdGlwXG4gICAqL1xuICBASW5wdXQoKSBpc0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWxheSBiZWZvcmUgc2hvd2luZyB0aGUgdG9vbHRpcFxuICAgKi9cbiAgQElucHV0KCkgZGVsYXk6IG51bWJlcjtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgdG9vbHRpcCBpcyBzaG93blxuICAgKi9cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xuICBAT3V0cHV0KCkgb25TaG93bjogRXZlbnRFbWl0dGVyPGFueT47XG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSB0b29sdGlwIGlzIGhpZGRlblxuICAgKi9cbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xuICBAT3V0cHV0KCkgb25IaWRkZW46IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgYHRvb2x0aXBgIGluc3RlYWQgKi9cbiAgQElucHV0KCd0b29sdGlwSHRtbCcpXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgc2V0IGh0bWxDb250ZW50KHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgd2Fybk9uY2UoJ3Rvb2x0aXBIdG1sIHdhcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGB0b29sdGlwYCBpbnN0ZWFkJyk7XG4gICAgdGhpcy50b29sdGlwID0gdmFsdWU7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIGBwbGFjZW1lbnRgIGluc3RlYWQgKi9cbiAgQElucHV0KCd0b29sdGlwUGxhY2VtZW50JylcbiAgc2V0IF9wbGFjZW1lbnQodmFsdWU6IHN0cmluZykge1xuICAgIHdhcm5PbmNlKCd0b29sdGlwUGxhY2VtZW50IHdhcyBkZXByZWNhdGVkLCBwbGVhc2UgdXNlIGBwbGFjZW1lbnRgIGluc3RlYWQnKTtcbiAgICB0aGlzLnBsYWNlbWVudCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIC0gcGxlYXNlIHVzZSBgaXNPcGVuYCBpbnN0ZWFkICovXG4gIEBJbnB1dCgndG9vbHRpcElzT3BlbicpXG4gIHNldCBfaXNPcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgd2Fybk9uY2UoJ3Rvb2x0aXBJc09wZW4gd2FzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYGlzT3BlbmAgaW5zdGVhZCcpO1xuICAgIHRoaXMuaXNPcGVuID0gdmFsdWU7XG4gIH1cblxuICBnZXQgX2lzT3BlbigpOiBib29sZWFuIHtcbiAgICB3YXJuT25jZSgndG9vbHRpcElzT3BlbiB3YXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBgaXNPcGVuYCBpbnN0ZWFkJyk7XG5cbiAgICByZXR1cm4gdGhpcy5pc09wZW47XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgLSBwbGVhc2UgdXNlIGBpc0Rpc2FibGVkYCBpbnN0ZWFkICovXG4gIEBJbnB1dCgndG9vbHRpcEVuYWJsZScpXG4gIHNldCBfZW5hYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgd2Fybk9uY2UoJ3Rvb2x0aXBFbmFibGUgd2FzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYGlzRGlzYWJsZWRgIGluc3RlYWQnKTtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSAhdmFsdWU7XG4gIH1cblxuICBnZXQgX2VuYWJsZSgpOiBib29sZWFuIHtcbiAgICB3YXJuT25jZSgndG9vbHRpcEVuYWJsZSB3YXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBgaXNEaXNhYmxlZGAgaW5zdGVhZCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHBsZWFzZSB1c2UgYGNvbnRhaW5lcj1cImJvZHlcImAgaW5zdGVhZCAqL1xuICBASW5wdXQoJ3Rvb2x0aXBBcHBlbmRUb0JvZHknKVxuICBzZXQgX2FwcGVuZFRvQm9keSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHdhcm5PbmNlKFxuICAgICAgJ3Rvb2x0aXBBcHBlbmRUb0JvZHkgd2FzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYGNvbnRhaW5lcj1cImJvZHlcImAgaW5zdGVhZCdcbiAgICApO1xuICAgIHRoaXMuY29udGFpbmVyID0gdmFsdWUgPyAnYm9keScgOiB0aGlzLmNvbnRhaW5lcjtcbiAgfVxuXG4gIGdldCBfYXBwZW5kVG9Cb2R5KCk6IGJvb2xlYW4ge1xuICAgIHdhcm5PbmNlKFxuICAgICAgJ3Rvb2x0aXBBcHBlbmRUb0JvZHkgd2FzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYGNvbnRhaW5lcj1cImJvZHlcImAgaW5zdGVhZCdcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyID09PSAnYm9keSc7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgLSByZW1vdmVkLCB3aWxsIGJlIGFkZGVkIHRvIGNvbmZpZ3VyYXRpb24gKi9cbiAgQElucHV0KCkgdG9vbHRpcEFuaW1hdGlvbiA9IHRydWU7XG5cbiAgLyoqIEBkZXByZWNhdGVkIC0gd2lsbCByZXBsYWNlZCB3aXRoIGN1c3RvbUNsYXNzICovXG4gIEBJbnB1dCgndG9vbHRpcENsYXNzJylcbiAgc2V0IF9wb3B1cENsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB3YXJuT25jZSgndG9vbHRpcENsYXNzIGRlcHJlY2F0ZWQnKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAtIHJlbW92ZWQgKi9cbiAgQElucHV0KCd0b29sdGlwQ29udGV4dCcpXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgc2V0IF90b29sdGlwQ29udGV4dCh2YWx1ZTogYW55KSB7XG4gICAgd2Fybk9uY2UoJ3Rvb2x0aXBDb250ZXh0IGRlcHJlY2F0ZWQnKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBASW5wdXQoJ3Rvb2x0aXBQb3B1cERlbGF5JylcbiAgc2V0IF90b29sdGlwUG9wdXBEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgd2Fybk9uY2UoJ3Rvb2x0aXBQb3B1cERlbGF5IGlzIGRlcHJlY2F0ZWQsIHVzZSBgZGVsYXlgIGluc3RlYWQnKTtcbiAgICB0aGlzLmRlbGF5ID0gdmFsdWU7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgQElucHV0KCkgdG9vbHRpcEZhZGVEdXJhdGlvbiA9IDE1MDtcblxuICAvKiogQGRlcHJlY2F0ZWQgLSAgcGxlYXNlIHVzZSBgdHJpZ2dlcnNgIGluc3RlYWQgKi9cbiAgQElucHV0KCd0b29sdGlwVHJpZ2dlcicpXG4gIGdldCBfdG9vbHRpcFRyaWdnZXIoKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICAgIHdhcm5PbmNlKCd0b29sdGlwVHJpZ2dlciB3YXMgZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBgdHJpZ2dlcnNgIGluc3RlYWQnKTtcblxuICAgIHJldHVybiB0aGlzLnRyaWdnZXJzO1xuICB9XG5cbiAgc2V0IF90b29sdGlwVHJpZ2dlcih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB3YXJuT25jZSgndG9vbHRpcFRyaWdnZXIgd2FzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYHRyaWdnZXJzYCBpbnN0ZWFkJyk7XG4gICAgdGhpcy50cmlnZ2VycyA9ICh2YWx1ZSB8fCAnJykudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCAqL1xuICBAT3V0cHV0KClcbiAgdG9vbHRpcFN0YXRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgcHJvdGVjdGVkIF9kZWxheVRpbWVvdXRJZDogbnVtYmVyIHwgYW55O1xuICBwcm90ZWN0ZWQgX3Rvb2x0aXBDYW5jZWxTaG93Rm46IEZ1bmN0aW9uO1xuXG4gIHByaXZhdGUgX3Rvb2x0aXA6IENvbXBvbmVudExvYWRlcjxUb29sdGlwQ29udGFpbmVyQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBfZGVsYXlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfYXJpYURlc2NyaWJlZGJ5OiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIGNpczogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSxcbiAgICBjb25maWc6IFRvb2x0aXBDb25maWcsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX3Bvc2l0aW9uU2VydmljZTogUG9zaXRpb25pbmdTZXJ2aWNlXG4gICkge1xuXG4gICAgdGhpcy5fdG9vbHRpcCA9IGNpc1xuICAgICAgLmNyZWF0ZUxvYWRlcjxUb29sdGlwQ29udGFpbmVyQ29tcG9uZW50PihcbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZixcbiAgICAgICAgX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyXG4gICAgICApXG4gICAgICAucHJvdmlkZSh7cHJvdmlkZTogVG9vbHRpcENvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ30pO1xuXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBjb25maWcpO1xuICAgIHRoaXMub25TaG93biA9IHRoaXMuX3Rvb2x0aXAub25TaG93bjtcbiAgICB0aGlzLm9uSGlkZGVuID0gdGhpcy5fdG9vbHRpcC5vbkhpZGRlbjtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3Rvb2x0aXAubGlzdGVuKHtcbiAgICAgIHRyaWdnZXJzOiB0aGlzLnRyaWdnZXJzLFxuICAgICAgc2hvdzogKCkgPT4gdGhpcy5zaG93KClcbiAgICB9KTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgdGhpcy50b29sdGlwQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB0aGlzLl90b29sdGlwLmhpZGUoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMub25TaG93bi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRBcmlhRGVzY3JpYmVkQnkoKTtcbiAgICB9KTtcblxuICAgIHRoaXMub25IaWRkZW4uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0QXJpYURlc2NyaWJlZEJ5KCk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRBcmlhRGVzY3JpYmVkQnkoKTogdm9pZCB7XG4gICAgdGhpcy5fYXJpYURlc2NyaWJlZGJ5ID0gdGhpcy5pc09wZW4gPyBgdG9vbHRpcC0ke3RoaXMudG9vbHRpcElkfWAgOiBudWxsO1xuXG4gICAgaWYgKHRoaXMuX2FyaWFEZXNjcmliZWRieSkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2FyaWEtZGVzY3JpYmVkYnknLCB0aGlzLl9hcmlhRGVzY3JpYmVkYnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYXJpYS1kZXNjcmliZWRieScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIGFuIGVsZW1lbnTigJlzIHRvb2x0aXAuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nIG9mXG4gICAqIHRoZSB0b29sdGlwLlxuICAgKi9cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgcmV0dXJuIHRoaXMuaGlkZSgpO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGFuIGVsZW1lbnTigJlzIHRvb2x0aXAuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nIG9mXG4gICAqIHRoZSB0b29sdGlwLlxuICAgKi9cbiAgc2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLl9wb3NpdGlvblNlcnZpY2Uuc2V0T3B0aW9ucyh7XG4gICAgICBtb2RpZmllcnM6IHtcbiAgICAgICAgZmxpcDoge1xuICAgICAgICAgIGVuYWJsZWQ6IHRoaXMuYWRhcHRpdmVQb3NpdGlvblxuICAgICAgICB9LFxuICAgICAgICBwcmV2ZW50T3ZlcmZsb3c6IHtcbiAgICAgICAgICBlbmFibGVkOiB0aGlzLmFkYXB0aXZlUG9zaXRpb24sXG4gICAgICAgICAgYm91bmRhcmllc0VsZW1lbnQ6IHRoaXMuYm91bmRhcmllc0VsZW1lbnQgfHwgJ3Njcm9sbFBhcmVudCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5pc09wZW4gfHxcbiAgICAgIHRoaXMuaXNEaXNhYmxlZCB8fFxuICAgICAgdGhpcy5fZGVsYXlUaW1lb3V0SWQgfHxcbiAgICAgICF0aGlzLnRvb2x0aXBcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzaG93VG9vbHRpcCA9ICgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9kZWxheVRpbWVvdXRJZCkge1xuICAgICAgICB0aGlzLl9kZWxheVRpbWVvdXRJZCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdG9vbHRpcFxuICAgICAgICAuYXR0YWNoKFRvb2x0aXBDb250YWluZXJDb21wb25lbnQpXG4gICAgICAgIC50byh0aGlzLmNvbnRhaW5lcilcbiAgICAgICAgLnBvc2l0aW9uKHthdHRhY2htZW50OiB0aGlzLnBsYWNlbWVudH0pXG4gICAgICAgIC5zaG93KHtcbiAgICAgICAgICBjb250ZW50OiB0aGlzLnRvb2x0aXAsXG4gICAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgICAgICBjb250YWluZXJDbGFzczogdGhpcy5jb250YWluZXJDbGFzcyxcbiAgICAgICAgICBpZDogYHRvb2x0aXAtJHt0aGlzLnRvb2x0aXBJZH1gXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgY2FuY2VsRGVsYXllZFRvb2x0aXBTaG93aW5nID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX3Rvb2x0aXBDYW5jZWxTaG93Rm4pIHtcbiAgICAgICAgdGhpcy5fdG9vbHRpcENhbmNlbFNob3dGbigpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5kZWxheSkge1xuICAgICAgaWYgKHRoaXMuX2RlbGF5U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMuX2RlbGF5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2RlbGF5U3Vic2NyaXB0aW9uID0gdGltZXIodGhpcy5kZWxheSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgc2hvd1Rvb2x0aXAoKTtcbiAgICAgICAgY2FuY2VsRGVsYXllZFRvb2x0aXBTaG93aW5nKCk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMudHJpZ2dlcnMpIHtcbiAgICAgICAgcGFyc2VUcmlnZ2Vycyh0aGlzLnRyaWdnZXJzKVxuICAgICAgICAgIC5mb3JFYWNoKCh0cmlnZ2VyOiBUcmlnZ2VyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90b29sdGlwQ2FuY2VsU2hvd0ZuID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgIHRyaWdnZXIuY2xvc2UsXG4gICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIGNhbmNlbERlbGF5ZWRUb29sdGlwU2hvd2luZygpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzaG93VG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYW4gZWxlbWVudOKAmXMgdG9vbHRpcC4gVGhpcyBpcyBjb25zaWRlcmVkIGEg4oCcbWFudWFs4oCdIHRyaWdnZXJpbmcgb2ZcbiAgICogdGhlIHRvb2x0aXAuXG4gICAqL1xuICBoaWRlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kZWxheVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2RlbGF5VGltZW91dElkKTtcbiAgICAgIHRoaXMuX2RlbGF5VGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fdG9vbHRpcC5pc1Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdG9vbHRpcC5pbnN0YW5jZS5jbGFzc01hcC5pbiA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5fdG9vbHRpcC5oaWRlKCk7XG4gICAgfSwgdGhpcy50b29sdGlwRmFkZUR1cmF0aW9uKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3Rvb2x0aXAuZGlzcG9zZSgpO1xuICAgIHRoaXMudG9vbHRpcENoYW5nZS51bnN1YnNjcmliZSgpO1xuICAgIGlmICh0aGlzLl9kZWxheVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fZGVsYXlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgdGhpcy5vblNob3duLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vbkhpZGRlbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { TooltipContainerComponent } from './tooltip-container.component';
4
+ import { TooltipDirective } from './tooltip.directive';
5
+ import { ComponentLoaderFactory } from '../component-loader';
6
+ import { PositioningService } from '../positioning';
7
+ export class TooltipModule {
8
+ static forRoot() {
9
+ return {
10
+ ngModule: TooltipModule,
11
+ providers: [ComponentLoaderFactory, PositioningService]
12
+ };
13
+ }
14
+ }
15
+ TooltipModule.decorators = [
16
+ { type: NgModule, args: [{
17
+ imports: [CommonModule],
18
+ declarations: [TooltipDirective, TooltipContainerComponent],
19
+ exports: [TooltipDirective],
20
+ entryComponents: [TooltipContainerComponent]
21
+ },] }
22
+ ];
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXBELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDO1NBQ3hELENBQUM7SUFDSixDQUFDOzs7WUFaRixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx5QkFBeUIsQ0FBQztnQkFDM0QsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzNCLGVBQWUsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4vdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50TG9hZGVyRmFjdG9yeSB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXInO1xuaW1wb3J0IHsgUG9zaXRpb25pbmdTZXJ2aWNlIH0gZnJvbSAnLi4vcG9zaXRpb25pbmcnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbVG9vbHRpcERpcmVjdGl2ZSwgVG9vbHRpcENvbnRhaW5lckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtUb29sdGlwRGlyZWN0aXZlXSxcbiAgZW50cnlDb21wb25lbnRzOiBbVG9vbHRpcENvbnRhaW5lckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VG9vbHRpcE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVG9vbHRpcE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW0NvbXBvbmVudExvYWRlckZhY3RvcnksIFBvc2l0aW9uaW5nU2VydmljZV1cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,25 @@
1
+ /*tslint:disable:no-invalid-this */
2
+ /* tslint:disable-next-line: no-any */
3
+ export function OnChange(defaultValue) {
4
+ const sufix = 'Change';
5
+ /* tslint:disable-next-line: no-any */
6
+ return function OnChangeHandler(target, propertyKey) {
7
+ const _key = ` __${propertyKey}Value`;
8
+ Object.defineProperty(target, propertyKey, {
9
+ /* tslint:disable-next-line: no-any */
10
+ get() {
11
+ return this[_key];
12
+ },
13
+ /* tslint:disable-next-line: no-any */
14
+ set(value) {
15
+ const prevValue = this[_key];
16
+ this[_key] = value;
17
+ if (prevValue !== value && this[propertyKey + sufix]) {
18
+ this[propertyKey + sufix].emit(value);
19
+ }
20
+ }
21
+ });
22
+ };
23
+ }
24
+ /* tslint:enable */
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvc3ViLWNvbXBvbmVudHMvdXRpbHMvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFDbkMsc0NBQXNDO0FBQ3RDLE1BQU0sVUFBVSxRQUFRLENBQUMsWUFBa0I7SUFDekMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDO0lBRXZCLHNDQUFzQztJQUN0QyxPQUFPLFNBQVMsZUFBZSxDQUFDLE1BQVcsRUFBRSxXQUFtQjtRQUM5RCxNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN6QyxzQ0FBc0M7WUFDdEMsR0FBRztnQkFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixDQUFDO1lBQ0Qsc0NBQXNDO1lBQ3RDLEdBQUcsQ0FBQyxLQUFVO2dCQUNaLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDbkIsSUFBSSxTQUFTLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLEVBQUU7b0JBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN2QztZQUNILENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDO0FBQ0QsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLyp0c2xpbnQ6ZGlzYWJsZTpuby1pbnZhbGlkLXRoaXMgKi9cbi8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55ICovXG5leHBvcnQgZnVuY3Rpb24gT25DaGFuZ2UoZGVmYXVsdFZhbHVlPzogYW55KTogYW55IHtcbiAgY29uc3Qgc3VmaXggPSAnQ2hhbmdlJztcblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICByZXR1cm4gZnVuY3Rpb24gT25DaGFuZ2VIYW5kbGVyKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgX2tleSA9IGAgX18ke3Byb3BlcnR5S2V5fVZhbHVlYDtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSwge1xuICAgICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkgKi9cbiAgICAgIGdldCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpc1tfa2V5XTtcbiAgICAgIH0sXG4gICAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSAqL1xuICAgICAgc2V0KHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcHJldlZhbHVlID0gdGhpc1tfa2V5XTtcbiAgICAgICAgdGhpc1tfa2V5XSA9IHZhbHVlO1xuICAgICAgICBpZiAocHJldlZhbHVlICE9PSB2YWx1ZSAmJiB0aGlzW3Byb3BlcnR5S2V5ICsgc3VmaXhdKSB7XG4gICAgICAgICAgdGhpc1twcm9wZXJ0eUtleSArIHN1Zml4XS5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuLyogdHNsaW50OmVuYWJsZSAqL1xuIl19
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright Google Inc. All Rights Reserved.
4
+ *
5
+ * Use of this source code is governed by an MIT-style license that can be
6
+ * found in the LICENSE file at https://angular.io/license
7
+ */
8
+ /**
9
+ * JS version of browser APIs. This library can only run in the browser.
10
+ */
11
+ const win = (typeof window !== 'undefined' && window) || {};
12
+ export { win as window };
13
+ export const document = win.document;
14
+ export const location = win.location;
15
+ export const gc = win.gc ? () => win.gc() : () => null;
16
+ export const performance = win.performance ? win.performance : null;
17
+ export const Event = win.Event;
18
+ export const MouseEvent = win.MouseEvent;
19
+ export const KeyboardEvent = win.KeyboardEvent;
20
+ export const EventTarget = win.EventTarget;
21
+ export const History = win.History;
22
+ export const Location = win.Location;
23
+ export const EventListener = win.EventListener;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvc3ViLWNvbXBvbmVudHMvdXRpbHMvZmFjYWRlL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7O0dBRUc7QUFDSCxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFTLENBQUM7QUFFbkUsT0FBTyxFQUFFLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUNyQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUNyQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDNUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztBQUMzQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztBQUNyQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBKUyB2ZXJzaW9uIG9mIGJyb3dzZXIgQVBJcy4gVGhpcyBsaWJyYXJ5IGNhbiBvbmx5IHJ1biBpbiB0aGUgYnJvd3Nlci5cbiAqL1xuY29uc3Qgd2luID0gKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdykgfHwge30gYXMgYW55O1xuXG5leHBvcnQgeyB3aW4gYXMgd2luZG93IH07XG5leHBvcnQgY29uc3QgZG9jdW1lbnQgPSB3aW4uZG9jdW1lbnQ7XG5leHBvcnQgY29uc3QgbG9jYXRpb24gPSB3aW4ubG9jYXRpb247XG5leHBvcnQgY29uc3QgZ2MgPSB3aW4uZ2MgPyAoKSA9PiB3aW4uZ2MoKSA6ICgpOiBhbnkgPT4gbnVsbDtcbmV4cG9ydCBjb25zdCBwZXJmb3JtYW5jZSA9IHdpbi5wZXJmb3JtYW5jZSA/IHdpbi5wZXJmb3JtYW5jZSA6IG51bGw7XG5leHBvcnQgY29uc3QgRXZlbnQgPSB3aW4uRXZlbnQ7XG5leHBvcnQgY29uc3QgTW91c2VFdmVudCA9IHdpbi5Nb3VzZUV2ZW50O1xuZXhwb3J0IGNvbnN0IEtleWJvYXJkRXZlbnQgPSB3aW4uS2V5Ym9hcmRFdmVudDtcbmV4cG9ydCBjb25zdCBFdmVudFRhcmdldCA9IHdpbi5FdmVudFRhcmdldDtcbmV4cG9ydCBjb25zdCBIaXN0b3J5ID0gd2luLkhpc3Rvcnk7XG5leHBvcnQgY29uc3QgTG9jYXRpb24gPSB3aW4uTG9jYXRpb247XG5leHBvcnQgY29uc3QgRXZlbnRMaXN0ZW5lciA9IHdpbi5FdmVudExpc3RlbmVyO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public_api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL3N1Yi1jb21wb25lbnRzL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==