@pepperi-addons/ngx-lib 0.3.15-beta.19 → 0.3.15-beta.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 (695) hide show
  1. package/address/address.component.d.ts +27 -27
  2. package/address/address.module.d.ts +2 -2
  3. package/address/pepperi-addons-ngx-lib-address.d.ts +4 -4
  4. package/address/public-api.d.ts +2 -2
  5. package/attachment/attachment.component.d.ts +82 -82
  6. package/attachment/attachment.module.d.ts +2 -2
  7. package/attachment/pepperi-addons-ngx-lib-attachment.d.ts +4 -4
  8. package/attachment/public-api.d.ts +2 -2
  9. package/bread-crumbs/bread-crumbs.component.d.ts +23 -23
  10. package/bread-crumbs/bread-crumbs.model.d.ts +11 -11
  11. package/bread-crumbs/bread-crumbs.module.d.ts +5 -5
  12. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.d.ts +4 -4
  13. package/bread-crumbs/public-api.d.ts +3 -3
  14. package/bundles/pepperi-addons-ngx-lib-address.umd.js +124 -124
  15. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +247 -247
  16. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +121 -121
  17. package/bundles/pepperi-addons-ngx-lib-button.umd.js +158 -158
  18. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js +788 -788
  19. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +192 -192
  20. package/bundles/pepperi-addons-ngx-lib-color.umd.js +299 -299
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js +667 -667
  22. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +184 -184
  23. package/bundles/pepperi-addons-ngx-lib-draggable-items.umd.js +151 -151
  24. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +57 -57
  25. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +260 -260
  26. package/bundles/pepperi-addons-ngx-lib-form.umd.js +3249 -3249
  27. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +87 -87
  28. package/bundles/pepperi-addons-ngx-lib-icon.umd.js +681 -681
  29. package/bundles/pepperi-addons-ngx-lib-image.umd.js +322 -322
  30. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +422 -422
  31. package/bundles/pepperi-addons-ngx-lib-link.umd.js +388 -388
  32. package/bundles/pepperi-addons-ngx-lib-list.umd.js +3191 -3191
  33. package/bundles/pepperi-addons-ngx-lib-menu.umd.js +646 -646
  34. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +60 -60
  35. package/bundles/pepperi-addons-ngx-lib-profile-data-views-list.umd.js +543 -543
  36. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +925 -925
  37. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +1181 -1170
  38. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -1
  39. package/bundles/pepperi-addons-ngx-lib-remote-loader.umd.js +652 -652
  40. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +275 -275
  41. package/bundles/pepperi-addons-ngx-lib-search.umd.js +326 -326
  42. package/bundles/pepperi-addons-ngx-lib-select.umd.js +575 -575
  43. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +79 -79
  44. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +163 -163
  45. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +286 -286
  46. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +113 -113
  47. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +124 -124
  48. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +1974 -1938
  49. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-snack-bar.umd.js +148 -148
  51. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +211 -211
  52. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +80 -80
  53. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +533 -533
  54. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +129 -129
  55. package/bundles/pepperi-addons-ngx-lib.umd.js +4819 -4773
  56. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  57. package/button/button.component.d.ts +99 -99
  58. package/button/button.model.d.ts +14 -14
  59. package/button/button.module.d.ts +2 -2
  60. package/button/pepperi-addons-ngx-lib-button.d.ts +4 -4
  61. package/button/public-api.d.ts +3 -3
  62. package/carousel/carousel-item.directive.d.ts +9 -9
  63. package/carousel/carousel.component.d.ts +145 -145
  64. package/carousel/carousel.module.d.ts +2 -2
  65. package/carousel/pepperi-addons-ngx-lib-carousel.d.ts +4 -4
  66. package/carousel/public-api.d.ts +3 -3
  67. package/checkbox/checkbox.component.d.ts +47 -47
  68. package/checkbox/checkbox.module.d.ts +5 -5
  69. package/checkbox/pepperi-addons-ngx-lib-checkbox.d.ts +4 -4
  70. package/checkbox/public-api.d.ts +2 -2
  71. package/color/color-picker.component.d.ts +53 -53
  72. package/color/color.component.d.ts +26 -26
  73. package/color/color.model.d.ts +1 -1
  74. package/color/color.module.d.ts +5 -5
  75. package/color/pepperi-addons-ngx-lib-color.d.ts +5 -5
  76. package/color/public-api.d.ts +3 -3
  77. package/core/clipboard/clipboard.directive.d.ts +2 -2
  78. package/core/clipboard/clipboard.service.d.ts +2 -2
  79. package/core/clipboard/index.d.ts +1 -1
  80. package/core/clipboard/public-api.d.ts +2 -2
  81. package/core/common/directives/auto-width.directive.d.ts +16 -16
  82. package/core/common/directives/button-blur.directive.d.ts +6 -6
  83. package/core/common/directives/button-loader.directive.d.ts +23 -23
  84. package/core/common/directives/data-qa.directive.d.ts +8 -8
  85. package/core/common/directives/index.d.ts +1 -1
  86. package/core/common/directives/menu-blur.directive.d.ts +7 -7
  87. package/core/common/directives/prevent-multi-click.directive.d.ts +4 -4
  88. package/core/common/directives/print.directive.d.ts +72 -72
  89. package/core/common/directives/public-api.d.ts +7 -7
  90. package/core/common/index.d.ts +1 -1
  91. package/core/common/model/index.d.ts +1 -1
  92. package/core/common/model/papi.model.d.ts +2 -2
  93. package/core/common/model/public-api.d.ts +3 -3
  94. package/core/common/model/utilities.model.d.ts +5 -5
  95. package/core/common/model/wapi.model.d.ts +200 -200
  96. package/core/common/pipes/common-pipes.d.ts +36 -36
  97. package/core/common/pipes/date-ago.pipe.d.ts +8 -0
  98. package/core/common/pipes/index.d.ts +1 -1
  99. package/core/common/pipes/public-api.d.ts +2 -1
  100. package/core/common/public-api.d.ts +4 -4
  101. package/core/common/services/addon.service.d.ts +38 -38
  102. package/core/common/services/color.service.d.ts +48 -48
  103. package/core/common/services/cookie.service.d.ts +50 -50
  104. package/core/common/services/data-convertor.service.d.ts +41 -41
  105. package/core/common/services/file.service.d.ts +24 -24
  106. package/core/common/services/index.d.ts +1 -1
  107. package/core/common/services/jwt-helper.service.d.ts +10 -10
  108. package/core/common/services/public-api.d.ts +11 -11
  109. package/core/common/services/session.service.d.ts +15 -15
  110. package/core/common/services/translate.service.d.ts +9 -9
  111. package/core/common/services/utilities.service.d.ts +17 -17
  112. package/core/common/services/validator.service.d.ts +28 -28
  113. package/core/common/services/window-scrolling.service.d.ts +7 -7
  114. package/core/customization/customization.model.d.ts +264 -264
  115. package/core/customization/customization.service.d.ts +156 -156
  116. package/core/customization/index.d.ts +1 -1
  117. package/core/customization/public-api.d.ts +2 -2
  118. package/core/http/index.d.ts +1 -1
  119. package/core/http/interceptors/error.interceptor.d.ts +5 -5
  120. package/core/http/interceptors/index.d.ts +11 -11
  121. package/core/http/interceptors/loader.interceptor.d.ts +8 -8
  122. package/core/http/interceptors/profiler.interceptor.d.ts +5 -5
  123. package/core/http/public-api.d.ts +2 -2
  124. package/core/http/services/http.service.d.ts +25 -25
  125. package/core/http/services/loader.service.d.ts +10 -10
  126. package/core/index.d.ts +1 -1
  127. package/core/layout/index.d.ts +1 -1
  128. package/core/layout/layout.service.d.ts +33 -33
  129. package/core/layout/public-api.d.ts +2 -2
  130. package/core/layout/rtl.directive.d.ts +16 -16
  131. package/core/portal/attach.directive.d.ts +10 -10
  132. package/core/portal/index.d.ts +1 -1
  133. package/core/portal/portal.service.d.ts +9 -9
  134. package/core/portal/public-api.d.ts +3 -3
  135. package/core/portal/target.directive.d.ts +9 -9
  136. package/core/public-api.d.ts +7 -7
  137. package/core/scroll-to/index.d.ts +1 -1
  138. package/core/scroll-to/public-api.d.ts +1 -1
  139. package/core/scroll-to/scroll-to.service.d.ts +8 -8
  140. package/date/date.component.d.ts +66 -66
  141. package/date/date.model.d.ts +26 -26
  142. package/date/date.module.d.ts +5 -5
  143. package/date/pepperi-addons-ngx-lib-date.d.ts +5 -5
  144. package/date/public-api.d.ts +2 -2
  145. package/dialog/default-dialog.component.d.ts +9 -9
  146. package/dialog/dialog.component.d.ts +10 -10
  147. package/dialog/dialog.model.d.ts +27 -27
  148. package/dialog/dialog.module.d.ts +5 -5
  149. package/dialog/dialog.service.d.ts +24 -24
  150. package/dialog/pepperi-addons-ngx-lib-dialog.d.ts +5 -5
  151. package/dialog/public-api.d.ts +4 -4
  152. package/draggable-items/draggable-item/draggable-item.component.d.ts +8 -8
  153. package/draggable-items/draggable-items.component.d.ts +33 -33
  154. package/draggable-items/draggable-items.model.d.ts +7 -7
  155. package/draggable-items/draggable-items.module.d.ts +5 -5
  156. package/draggable-items/pepperi-addons-ngx-lib-draggable-items.d.ts +4 -4
  157. package/draggable-items/public-api.d.ts +4 -4
  158. package/esm2015/address/address.component.js +96 -96
  159. package/esm2015/address/address.module.js +30 -30
  160. package/esm2015/address/pepperi-addons-ngx-lib-address.js +4 -4
  161. package/esm2015/address/public-api.js +5 -5
  162. package/esm2015/attachment/attachment.component.js +208 -208
  163. package/esm2015/attachment/attachment.module.js +28 -28
  164. package/esm2015/attachment/pepperi-addons-ngx-lib-attachment.js +4 -4
  165. package/esm2015/attachment/public-api.js +5 -5
  166. package/esm2015/bread-crumbs/bread-crumbs.component.js +78 -78
  167. package/esm2015/bread-crumbs/bread-crumbs.model.js +6 -6
  168. package/esm2015/bread-crumbs/bread-crumbs.module.js +34 -34
  169. package/esm2015/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.js +4 -4
  170. package/esm2015/bread-crumbs/public-api.js +6 -6
  171. package/esm2015/button/button.component.js +127 -127
  172. package/esm2015/button/button.model.js +5 -5
  173. package/esm2015/button/button.module.js +26 -26
  174. package/esm2015/button/pepperi-addons-ngx-lib-button.js +4 -4
  175. package/esm2015/button/public-api.js +6 -6
  176. package/esm2015/carousel/carousel-item.directive.js +26 -26
  177. package/esm2015/carousel/carousel.component.js +699 -699
  178. package/esm2015/carousel/carousel.module.js +11 -11
  179. package/esm2015/carousel/pepperi-addons-ngx-lib-carousel.js +4 -4
  180. package/esm2015/carousel/public-api.js +7 -7
  181. package/esm2015/checkbox/checkbox.component.js +151 -151
  182. package/esm2015/checkbox/checkbox.module.js +39 -39
  183. package/esm2015/checkbox/pepperi-addons-ngx-lib-checkbox.js +4 -4
  184. package/esm2015/checkbox/public-api.js +5 -5
  185. package/esm2015/color/color-picker.component.js +197 -197
  186. package/esm2015/color/color.component.js +74 -74
  187. package/esm2015/color/color.model.js +1 -1
  188. package/esm2015/color/color.module.js +57 -57
  189. package/esm2015/color/pepperi-addons-ngx-lib-color.js +5 -5
  190. package/esm2015/color/public-api.js +6 -6
  191. package/esm2015/core/clipboard/clipboard.directive.js +19 -19
  192. package/esm2015/core/clipboard/clipboard.service.js +11 -11
  193. package/esm2015/core/clipboard/index.js +4 -4
  194. package/esm2015/core/clipboard/public-api.js +5 -5
  195. package/esm2015/core/common/directives/auto-width.directive.js +77 -77
  196. package/esm2015/core/common/directives/button-blur.directive.js +22 -22
  197. package/esm2015/core/common/directives/button-loader.directive.js +102 -102
  198. package/esm2015/core/common/directives/data-qa.directive.js +22 -22
  199. package/esm2015/core/common/directives/index.js +4 -4
  200. package/esm2015/core/common/directives/menu-blur.directive.js +28 -28
  201. package/esm2015/core/common/directives/prevent-multi-click.directive.js +21 -21
  202. package/esm2015/core/common/directives/print.directive.js +134 -134
  203. package/esm2015/core/common/directives/public-api.js +11 -11
  204. package/esm2015/core/common/index.js +4 -4
  205. package/esm2015/core/common/model/index.js +4 -4
  206. package/esm2015/core/common/model/papi.model.js +2 -2
  207. package/esm2015/core/common/model/public-api.js +6 -6
  208. package/esm2015/core/common/model/utilities.model.js +56 -56
  209. package/esm2015/core/common/model/wapi.model.js +155 -155
  210. package/esm2015/core/common/pipes/common-pipes.js +141 -141
  211. package/esm2015/core/common/pipes/date-ago.pipe.js +45 -0
  212. package/esm2015/core/common/pipes/index.js +4 -4
  213. package/esm2015/core/common/pipes/public-api.js +6 -5
  214. package/esm2015/core/common/public-api.js +7 -7
  215. package/esm2015/core/common/services/addon.service.js +160 -160
  216. package/esm2015/core/common/services/color.service.js +356 -356
  217. package/esm2015/core/common/services/cookie.service.js +147 -147
  218. package/esm2015/core/common/services/data-convertor.service.js +117 -117
  219. package/esm2015/core/common/services/file.service.js +211 -211
  220. package/esm2015/core/common/services/index.js +4 -4
  221. package/esm2015/core/common/services/jwt-helper.service.js +103 -103
  222. package/esm2015/core/common/services/public-api.js +14 -14
  223. package/esm2015/core/common/services/session.service.js +72 -72
  224. package/esm2015/core/common/services/translate.service.js +47 -47
  225. package/esm2015/core/common/services/utilities.service.js +125 -125
  226. package/esm2015/core/common/services/validator.service.js +272 -272
  227. package/esm2015/core/common/services/window-scrolling.service.js +30 -30
  228. package/esm2015/core/customization/customization.model.js +289 -289
  229. package/esm2015/core/customization/customization.service.js +777 -777
  230. package/esm2015/core/customization/index.js +4 -4
  231. package/esm2015/core/customization/public-api.js +5 -5
  232. package/esm2015/core/http/index.js +4 -4
  233. package/esm2015/core/http/interceptors/error.interceptor.js +23 -23
  234. package/esm2015/core/http/interceptors/index.js +23 -23
  235. package/esm2015/core/http/interceptors/loader.interceptor.js +32 -32
  236. package/esm2015/core/http/interceptors/profiler.interceptor.js +28 -28
  237. package/esm2015/core/http/public-api.js +5 -5
  238. package/esm2015/core/http/services/http.service.js +160 -160
  239. package/esm2015/core/http/services/loader.service.js +48 -48
  240. package/esm2015/core/index.js +4 -4
  241. package/esm2015/core/layout/index.js +4 -4
  242. package/esm2015/core/layout/layout.service.js +168 -168
  243. package/esm2015/core/layout/public-api.js +5 -5
  244. package/esm2015/core/layout/rtl.directive.js +46 -46
  245. package/esm2015/core/portal/attach.directive.js +26 -26
  246. package/esm2015/core/portal/index.js +4 -4
  247. package/esm2015/core/portal/portal.service.js +34 -34
  248. package/esm2015/core/portal/public-api.js +6 -6
  249. package/esm2015/core/portal/target.directive.js +23 -23
  250. package/esm2015/core/public-api.js +10 -10
  251. package/esm2015/core/scroll-to/index.js +4 -4
  252. package/esm2015/core/scroll-to/public-api.js +5 -5
  253. package/esm2015/core/scroll-to/scroll-to.service.js +81 -81
  254. package/esm2015/date/date.component.js +251 -251
  255. package/esm2015/date/date.model.js +44 -44
  256. package/esm2015/date/date.module.js +50 -50
  257. package/esm2015/date/pepperi-addons-ngx-lib-date.js +5 -5
  258. package/esm2015/date/public-api.js +5 -5
  259. package/esm2015/dialog/default-dialog.component.js +31 -31
  260. package/esm2015/dialog/dialog.component.js +28 -28
  261. package/esm2015/dialog/dialog.model.js +21 -21
  262. package/esm2015/dialog/dialog.module.js +39 -39
  263. package/esm2015/dialog/dialog.service.js +76 -76
  264. package/esm2015/dialog/pepperi-addons-ngx-lib-dialog.js +5 -5
  265. package/esm2015/dialog/public-api.js +7 -7
  266. package/esm2015/draggable-items/draggable-item/draggable-item.component.js +24 -24
  267. package/esm2015/draggable-items/draggable-items.component.js +91 -91
  268. package/esm2015/draggable-items/draggable-items.model.js +1 -1
  269. package/esm2015/draggable-items/draggable-items.module.js +42 -42
  270. package/esm2015/draggable-items/pepperi-addons-ngx-lib-draggable-items.js +4 -4
  271. package/esm2015/draggable-items/public-api.js +7 -7
  272. package/esm2015/field-title/field-title.component.js +31 -31
  273. package/esm2015/field-title/field-title.module.js +31 -31
  274. package/esm2015/field-title/pepperi-addons-ngx-lib-field-title.js +4 -4
  275. package/esm2015/field-title/public-api.js +5 -5
  276. package/esm2015/files-uploader/files-uploader.component.js +220 -220
  277. package/esm2015/files-uploader/files-uploader.module.js +49 -49
  278. package/esm2015/files-uploader/pepperi-addons-ngx-lib-files-uploader.js +4 -4
  279. package/esm2015/files-uploader/public-api.js +5 -5
  280. package/esm2015/form/field-generator.component.js +121 -121
  281. package/esm2015/form/form.component.js +1196 -1196
  282. package/esm2015/form/form.model.js +1 -1
  283. package/esm2015/form/form.module.js +107 -107
  284. package/esm2015/form/indicators.component.js +20 -20
  285. package/esm2015/form/internal-button.component.js +165 -165
  286. package/esm2015/form/internal-carusel.component.js +115 -115
  287. package/esm2015/form/internal-carusel.service.js +31 -31
  288. package/esm2015/form/internal-list.component.js +494 -494
  289. package/esm2015/form/internal-menu.component.js +54 -54
  290. package/esm2015/form/internal-page.component.js +350 -350
  291. package/esm2015/form/internal-page.service.js +120 -120
  292. package/esm2015/form/pepperi-addons-ngx-lib-form.js +13 -13
  293. package/esm2015/form/public-api.js +6 -6
  294. package/esm2015/group-buttons/group-buttons.component.js +57 -57
  295. package/esm2015/group-buttons/group-buttons.module.js +37 -37
  296. package/esm2015/group-buttons/pepperi-addons-ngx-lib-group-buttons.js +4 -4
  297. package/esm2015/group-buttons/public-api.js +5 -5
  298. package/esm2015/icon/icon-generated-all.model.js +100 -100
  299. package/esm2015/icon/icon-generated.model.js +389 -389
  300. package/esm2015/icon/icon-registry.service.js +22 -22
  301. package/esm2015/icon/icon.component.js +124 -124
  302. package/esm2015/icon/icon.module.js +14 -14
  303. package/esm2015/icon/icon.service.js +31 -31
  304. package/esm2015/icon/pepperi-addons-ngx-lib-icon.js +4 -4
  305. package/esm2015/icon/public-api.js +10 -10
  306. package/esm2015/image/image.component.js +228 -228
  307. package/esm2015/image/image.module.js +48 -48
  308. package/esm2015/image/image.service.js +54 -54
  309. package/esm2015/image/pepperi-addons-ngx-lib-image.js +4 -4
  310. package/esm2015/image/public-api.js +6 -6
  311. package/esm2015/images-filmstrip/images-filmstrip.component.js +372 -372
  312. package/esm2015/images-filmstrip/images-filmstrip.module.js +70 -70
  313. package/esm2015/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.js +4 -4
  314. package/esm2015/images-filmstrip/public-api.js +5 -5
  315. package/esm2015/link/link.component.js +315 -315
  316. package/esm2015/link/link.module.js +50 -50
  317. package/esm2015/link/link.pipes.js +13 -13
  318. package/esm2015/link/pepperi-addons-ngx-lib-link.js +5 -5
  319. package/esm2015/link/public-api.js +5 -5
  320. package/esm2015/list/list-actions.component.js +35 -35
  321. package/esm2015/list/list-carousel.component.js +94 -94
  322. package/esm2015/list/list-chooser.component.js +57 -57
  323. package/esm2015/list/list-pager.component.js +112 -112
  324. package/esm2015/list/list-sorting.component.js +54 -54
  325. package/esm2015/list/list-total.component.js +23 -23
  326. package/esm2015/list/list-views.component.js +71 -71
  327. package/esm2015/list/list.component.js +1127 -1127
  328. package/esm2015/list/list.model.js +3 -3
  329. package/esm2015/list/list.module.js +87 -87
  330. package/esm2015/list/list.pipes.js +39 -39
  331. package/esm2015/list/pepperi-addons-ngx-lib-list.js +6 -6
  332. package/esm2015/list/public-api.js +14 -14
  333. package/esm2015/list/virtual-scroller.js +1018 -1018
  334. package/esm2015/menu/menu-item.component.js +102 -102
  335. package/esm2015/menu/menu.component.js +173 -173
  336. package/esm2015/menu/menu.model.js +18 -18
  337. package/esm2015/menu/menu.module.js +39 -39
  338. package/esm2015/menu/pepperi-addons-ngx-lib-menu.js +5 -5
  339. package/esm2015/menu/public-api.js +6 -6
  340. package/esm2015/ngx-lib.module.js +79 -77
  341. package/esm2015/page-layout/page-layout.component.js +41 -41
  342. package/esm2015/page-layout/page-layout.module.js +20 -20
  343. package/esm2015/page-layout/pepperi-addons-ngx-lib-page-layout.js +4 -4
  344. package/esm2015/page-layout/public-api.js +5 -5
  345. package/esm2015/pepperi-addons-ngx-lib.js +8 -8
  346. package/esm2015/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.js +4 -4
  347. package/esm2015/profile-data-views-list/profile-data-view/profile-data-view.component.js +38 -38
  348. package/esm2015/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.js +59 -59
  349. package/esm2015/profile-data-views-list/profile-data-views-list.component.js +86 -86
  350. package/esm2015/profile-data-views-list/profile-data-views-list.model.js +1 -1
  351. package/esm2015/profile-data-views-list/profile-data-views-list.module.js +56 -56
  352. package/esm2015/profile-data-views-list/public-api.js +8 -8
  353. package/esm2015/public-api.js +5 -5
  354. package/esm2015/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.js +6 -6
  355. package/esm2015/quantity-selector/public-api.js +5 -5
  356. package/esm2015/quantity-selector/quantity-selector-validation.directive.js +43 -43
  357. package/esm2015/quantity-selector/quantity-selector.component.js +467 -467
  358. package/esm2015/quantity-selector/quantity-selector.module.js +52 -52
  359. package/esm2015/quantity-selector/quantity-selector.pipes.js +18 -18
  360. package/esm2015/query-builder/common/model/field.js +1 -1
  361. package/esm2015/query-builder/common/model/filter.js +1 -1
  362. package/esm2015/query-builder/common/model/legacy.js +2 -2
  363. package/esm2015/query-builder/common/model/operator-unit.js +41 -41
  364. package/esm2015/query-builder/common/model/operator.js +266 -255
  365. package/esm2015/query-builder/common/model/structure.js +1 -1
  366. package/esm2015/query-builder/common/model/type-map.js +27 -27
  367. package/esm2015/query-builder/common/model/type.js +5 -5
  368. package/esm2015/query-builder/common/services/output-query.service.js +112 -112
  369. package/esm2015/query-builder/common/services/query-structure.service.js +229 -229
  370. package/esm2015/query-builder/common/services/type-convertor.service.js +39 -39
  371. package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +9 -9
  372. package/esm2015/query-builder/public-api.js +8 -8
  373. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +118 -118
  374. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +63 -63
  375. package/esm2015/query-builder/query-builder.component.js +107 -107
  376. package/esm2015/query-builder/query-builder.module.js +34 -34
  377. package/esm2015/query-builder/query-builder.service.js +102 -102
  378. package/esm2015/remote-loader/addon-block-loader.component.js +68 -68
  379. package/esm2015/remote-loader/pepperi-addons-ngx-lib-remote-loader.js +4 -4
  380. package/esm2015/remote-loader/public-api.js +8 -8
  381. package/esm2015/remote-loader/remote-loader.component.js +114 -114
  382. package/esm2015/remote-loader/remote-loader.model.js +1 -1
  383. package/esm2015/remote-loader/remote-loader.module.js +35 -35
  384. package/esm2015/remote-loader/remote-loader.service.js +111 -111
  385. package/esm2015/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.js +4 -4
  386. package/esm2015/rich-html-textarea/public-api.js +5 -5
  387. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +219 -219
  388. package/esm2015/rich-html-textarea/rich-html-textarea.module.js +56 -56
  389. package/esm2015/search/pepperi-addons-ngx-lib-search.js +4 -4
  390. package/esm2015/search/public-api.js +6 -6
  391. package/esm2015/search/search.component.js +273 -273
  392. package/esm2015/search/search.model.js +1 -1
  393. package/esm2015/search/search.module.js +44 -44
  394. package/esm2015/select/pepperi-addons-ngx-lib-select.js +4 -4
  395. package/esm2015/select/public-api.js +5 -5
  396. package/esm2015/select/select.component.js +211 -211
  397. package/esm2015/select/select.module.js +42 -42
  398. package/esm2015/separator/pepperi-addons-ngx-lib-separator.js +4 -4
  399. package/esm2015/separator/public-api.js +5 -5
  400. package/esm2015/separator/separator.component.js +62 -62
  401. package/esm2015/separator/separator.module.js +12 -12
  402. package/esm2015/side-bar/pepperi-addons-ngx-lib-side-bar.js +4 -4
  403. package/esm2015/side-bar/public-api.js +6 -6
  404. package/esm2015/side-bar/side-bar.component.js +130 -130
  405. package/esm2015/side-bar/side-bar.model.js +1 -1
  406. package/esm2015/side-bar/side-bar.module.js +33 -33
  407. package/esm2015/signature/pepperi-addons-ngx-lib-signature.js +4 -4
  408. package/esm2015/signature/public-api.js +5 -5
  409. package/esm2015/signature/signature.component.js +233 -233
  410. package/esm2015/signature/signature.module.js +54 -54
  411. package/esm2015/size-detector/pepperi-addons-ngx-lib-size-detector.js +4 -4
  412. package/esm2015/size-detector/public-api.js +5 -5
  413. package/esm2015/size-detector/size-detector.component.js +88 -88
  414. package/esm2015/size-detector/size-detector.module.js +21 -21
  415. package/esm2015/slider/pepperi-addons-ngx-lib-slider.js +4 -4
  416. package/esm2015/slider/public-api.js +5 -5
  417. package/esm2015/slider/slider.component.js +95 -95
  418. package/esm2015/slider/slider.module.js +24 -24
  419. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +70 -70
  420. package/esm2015/smart-filters/common/filter-actions.component.js +25 -25
  421. package/esm2015/smart-filters/common/model/base-filter-component.js +291 -291
  422. package/esm2015/smart-filters/common/model/creator.js +75 -75
  423. package/esm2015/smart-filters/common/model/field.js +116 -116
  424. package/esm2015/smart-filters/common/model/filter.js +1 -1
  425. package/esm2015/smart-filters/common/model/operator.js +271 -282
  426. package/esm2015/smart-filters/common/model/type.js +2 -2
  427. package/esm2015/smart-filters/date-filter/date-filter.component.js +164 -156
  428. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +191 -153
  429. package/esm2015/smart-filters/number-filter/number-filter.component.js +109 -109
  430. package/esm2015/smart-filters/pepperi-addons-ngx-lib-smart-filters.js +4 -4
  431. package/esm2015/smart-filters/public-api.js +18 -18
  432. package/esm2015/smart-filters/smart-filters.component.js +130 -130
  433. package/esm2015/smart-filters/smart-filters.module.js +90 -90
  434. package/esm2015/smart-filters/text-filter/text-filter.component.js +86 -86
  435. package/esm2015/snack-bar/default-snack-bar.component.js +27 -27
  436. package/esm2015/snack-bar/pepperi-addons-ngx-lib-snack-bar.js +5 -5
  437. package/esm2015/snack-bar/public-api.js +7 -7
  438. package/esm2015/snack-bar/snack-bar.component.js +25 -25
  439. package/esm2015/snack-bar/snack-bar.model.js +6 -6
  440. package/esm2015/snack-bar/snack-bar.module.js +41 -41
  441. package/esm2015/snack-bar/snack-bar.service.js +62 -62
  442. package/esm2015/textarea/pepperi-addons-ngx-lib-textarea.js +4 -4
  443. package/esm2015/textarea/public-api.js +5 -5
  444. package/esm2015/textarea/textarea.component.js +160 -160
  445. package/esm2015/textarea/textarea.module.js +50 -50
  446. package/esm2015/textbox/pepperi-addons-ngx-lib-textbox.js +5 -5
  447. package/esm2015/textbox/public-api.js +5 -5
  448. package/esm2015/textbox/textbox-validation.directive.js +85 -85
  449. package/esm2015/textbox/textbox.component.js +391 -391
  450. package/esm2015/textbox/textbox.module.js +44 -44
  451. package/esm2015/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.js +4 -4
  452. package/esm2015/textbox-icon/public-api.js +5 -5
  453. package/esm2015/textbox-icon/textbox-icon.component.js +40 -40
  454. package/esm2015/textbox-icon/textbox-icon.module.js +46 -46
  455. package/esm2015/top-bar/pepperi-addons-ngx-lib-top-bar.js +4 -4
  456. package/esm2015/top-bar/public-api.js +6 -6
  457. package/esm2015/top-bar/top-bar.component.js +98 -98
  458. package/esm2015/top-bar/top-bar.model.js +1 -1
  459. package/esm2015/top-bar/top-bar.module.js +40 -40
  460. package/fesm2015/pepperi-addons-ngx-lib-address.js +116 -116
  461. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +227 -227
  462. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +109 -109
  463. package/fesm2015/pepperi-addons-ngx-lib-button.js +149 -149
  464. package/fesm2015/pepperi-addons-ngx-lib-carousel.js +731 -731
  465. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +178 -178
  466. package/fesm2015/pepperi-addons-ngx-lib-color.js +295 -295
  467. package/fesm2015/pepperi-addons-ngx-lib-date.js +320 -320
  468. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +170 -170
  469. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.js +143 -143
  470. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +55 -55
  471. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +252 -252
  472. package/fesm2015/pepperi-addons-ngx-lib-form.js +2693 -2693
  473. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +84 -84
  474. package/fesm2015/pepperi-addons-ngx-lib-icon.js +662 -662
  475. package/fesm2015/pepperi-addons-ngx-lib-image.js +306 -306
  476. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +409 -409
  477. package/fesm2015/pepperi-addons-ngx-lib-link.js +358 -358
  478. package/fesm2015/pepperi-addons-ngx-lib-list.js +2661 -2661
  479. package/fesm2015/pepperi-addons-ngx-lib-menu.js +314 -314
  480. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +55 -55
  481. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.js +219 -219
  482. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +556 -556
  483. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +1087 -1076
  484. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -1
  485. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.js +303 -303
  486. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +256 -256
  487. package/fesm2015/pepperi-addons-ngx-lib-search.js +301 -301
  488. package/fesm2015/pepperi-addons-ngx-lib-select.js +241 -241
  489. package/fesm2015/pepperi-addons-ngx-lib-separator.js +71 -71
  490. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +154 -154
  491. package/fesm2015/pepperi-addons-ngx-lib-signature.js +270 -270
  492. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +103 -103
  493. package/fesm2015/pepperi-addons-ngx-lib-slider.js +112 -112
  494. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +1539 -1504
  495. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  496. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.js +137 -137
  497. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +194 -194
  498. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +78 -78
  499. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +501 -501
  500. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +125 -125
  501. package/fesm2015/pepperi-addons-ngx-lib.js +4178 -4134
  502. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  503. package/field-title/field-title.component.d.ts +11 -11
  504. package/field-title/field-title.module.d.ts +5 -5
  505. package/field-title/pepperi-addons-ngx-lib-field-title.d.ts +4 -4
  506. package/field-title/public-api.d.ts +2 -2
  507. package/files-uploader/files-uploader.component.d.ts +53 -53
  508. package/files-uploader/files-uploader.module.d.ts +5 -5
  509. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.d.ts +4 -4
  510. package/files-uploader/public-api.d.ts +2 -2
  511. package/form/field-generator.component.d.ts +36 -36
  512. package/form/form.component.d.ts +90 -90
  513. package/form/form.model.d.ts +20 -20
  514. package/form/form.module.d.ts +5 -5
  515. package/form/indicators.component.d.ts +7 -7
  516. package/form/internal-button.component.d.ts +39 -39
  517. package/form/internal-carusel.component.d.ts +38 -38
  518. package/form/internal-carusel.service.d.ts +7 -7
  519. package/form/internal-list.component.d.ts +92 -92
  520. package/form/internal-menu.component.d.ts +16 -16
  521. package/form/internal-page.component.d.ts +72 -72
  522. package/form/internal-page.service.d.ts +19 -19
  523. package/form/pepperi-addons-ngx-lib-form.d.ts +13 -13
  524. package/form/public-api.d.ts +3 -3
  525. package/group-buttons/group-buttons.component.d.ts +20 -20
  526. package/group-buttons/group-buttons.module.d.ts +5 -5
  527. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.d.ts +4 -4
  528. package/group-buttons/public-api.d.ts +2 -2
  529. package/icon/icon-generated-all.model.d.ts +99 -99
  530. package/icon/icon-generated.model.d.ts +394 -394
  531. package/icon/icon-registry.service.d.ts +6 -6
  532. package/icon/icon.component.d.ts +46 -46
  533. package/icon/icon.module.d.ts +2 -2
  534. package/icon/icon.service.d.ts +10 -10
  535. package/icon/pepperi-addons-ngx-lib-icon.d.ts +4 -4
  536. package/icon/public-api.d.ts +6 -6
  537. package/image/image.component.d.ts +63 -63
  538. package/image/image.module.d.ts +5 -5
  539. package/image/image.service.d.ts +11 -11
  540. package/image/pepperi-addons-ngx-lib-image.d.ts +4 -4
  541. package/image/public-api.d.ts +3 -3
  542. package/images-filmstrip/images-filmstrip.component.d.ts +84 -84
  543. package/images-filmstrip/images-filmstrip.module.d.ts +5 -5
  544. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.d.ts +4 -4
  545. package/images-filmstrip/public-api.d.ts +2 -2
  546. package/link/link.component.d.ts +131 -131
  547. package/link/link.module.d.ts +5 -5
  548. package/link/link.pipes.d.ts +4 -4
  549. package/link/pepperi-addons-ngx-lib-link.d.ts +5 -5
  550. package/link/public-api.d.ts +2 -2
  551. package/list/list-actions.component.d.ts +14 -14
  552. package/list/list-carousel.component.d.ts +36 -36
  553. package/list/list-chooser.component.d.ts +25 -25
  554. package/list/list-pager.component.d.ts +35 -35
  555. package/list/list-sorting.component.d.ts +26 -26
  556. package/list/list-total.component.d.ts +7 -7
  557. package/list/list-views.component.d.ts +31 -31
  558. package/list/list.component.d.ts +161 -161
  559. package/list/list.model.d.ts +31 -31
  560. package/list/list.module.d.ts +5 -5
  561. package/list/list.pipes.d.ts +11 -11
  562. package/list/pepperi-addons-ngx-lib-list.d.ts +6 -6
  563. package/list/public-api.d.ts +10 -10
  564. package/list/virtual-scroller.d.ts +176 -176
  565. package/menu/menu-item.component.d.ts +25 -25
  566. package/menu/menu.component.d.ts +43 -43
  567. package/menu/menu.model.d.ts +25 -25
  568. package/menu/menu.module.d.ts +5 -5
  569. package/menu/pepperi-addons-ngx-lib-menu.d.ts +5 -5
  570. package/menu/public-api.d.ts +3 -3
  571. package/ngx-lib.module.d.ts +2 -2
  572. package/package.json +1 -1
  573. package/page-layout/page-layout.component.d.ts +16 -16
  574. package/page-layout/page-layout.module.d.ts +2 -2
  575. package/page-layout/pepperi-addons-ngx-lib-page-layout.d.ts +4 -4
  576. package/page-layout/public-api.d.ts +2 -2
  577. package/pepperi-addons-ngx-lib.d.ts +8 -8
  578. package/pepperi-addons-ngx-lib.metadata.json +1 -1
  579. package/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.d.ts +4 -4
  580. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +15 -15
  581. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +21 -21
  582. package/profile-data-views-list/profile-data-views-list.component.d.ts +32 -32
  583. package/profile-data-views-list/profile-data-views-list.model.d.ts +18 -18
  584. package/profile-data-views-list/profile-data-views-list.module.d.ts +5 -5
  585. package/profile-data-views-list/public-api.d.ts +5 -5
  586. package/public-api.d.ts +2 -2
  587. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.d.ts +6 -6
  588. package/quantity-selector/public-api.d.ts +2 -2
  589. package/quantity-selector/quantity-selector-validation.directive.d.ts +13 -13
  590. package/quantity-selector/quantity-selector.component.d.ts +98 -98
  591. package/quantity-selector/quantity-selector.module.d.ts +5 -5
  592. package/quantity-selector/quantity-selector.pipes.d.ts +4 -4
  593. package/query-builder/common/model/field.d.ts +8 -8
  594. package/query-builder/common/model/filter.d.ts +6 -6
  595. package/query-builder/common/model/legacy.d.ts +29 -29
  596. package/query-builder/common/model/operator-unit.d.ts +13 -13
  597. package/query-builder/common/model/operator.d.ts +21 -21
  598. package/query-builder/common/model/structure.d.ts +4 -4
  599. package/query-builder/common/model/type-map.d.ts +12 -12
  600. package/query-builder/common/model/type.d.ts +4 -4
  601. package/query-builder/common/services/output-query.service.d.ts +44 -44
  602. package/query-builder/common/services/query-structure.service.d.ts +78 -78
  603. package/query-builder/common/services/type-convertor.service.d.ts +10 -10
  604. package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +9 -9
  605. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -1
  606. package/query-builder/public-api.d.ts +5 -5
  607. package/query-builder/query-builder-item/query-builder-item.component.d.ts +38 -38
  608. package/query-builder/query-builder-section/query-builder-section.component.d.ts +27 -27
  609. package/query-builder/query-builder.component.d.ts +36 -36
  610. package/query-builder/query-builder.module.d.ts +2 -2
  611. package/query-builder/query-builder.service.d.ts +27 -27
  612. package/remote-loader/addon-block-loader.component.d.ts +25 -25
  613. package/remote-loader/pepperi-addons-ngx-lib-remote-loader.d.ts +4 -4
  614. package/remote-loader/public-api.d.ts +5 -5
  615. package/remote-loader/remote-loader.component.d.ts +24 -24
  616. package/remote-loader/remote-loader.model.d.ts +34 -34
  617. package/remote-loader/remote-loader.module.d.ts +2 -2
  618. package/remote-loader/remote-loader.service.d.ts +23 -23
  619. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.d.ts +4 -4
  620. package/rich-html-textarea/public-api.d.ts +2 -2
  621. package/rich-html-textarea/rich-html-textarea.component.d.ts +75 -75
  622. package/rich-html-textarea/rich-html-textarea.module.d.ts +5 -5
  623. package/search/pepperi-addons-ngx-lib-search.d.ts +4 -4
  624. package/search/public-api.d.ts +3 -3
  625. package/search/search.component.d.ts +61 -61
  626. package/search/search.model.d.ts +14 -14
  627. package/search/search.module.d.ts +5 -5
  628. package/select/pepperi-addons-ngx-lib-select.d.ts +4 -4
  629. package/select/public-api.d.ts +2 -2
  630. package/select/select.component.d.ts +50 -50
  631. package/select/select.module.d.ts +5 -5
  632. package/separator/pepperi-addons-ngx-lib-separator.d.ts +4 -4
  633. package/separator/public-api.d.ts +2 -2
  634. package/separator/separator.component.d.ts +19 -19
  635. package/separator/separator.module.d.ts +2 -2
  636. package/side-bar/pepperi-addons-ngx-lib-side-bar.d.ts +4 -4
  637. package/side-bar/public-api.d.ts +3 -3
  638. package/side-bar/side-bar.component.d.ts +38 -38
  639. package/side-bar/side-bar.model.d.ts +4 -4
  640. package/side-bar/side-bar.module.d.ts +5 -5
  641. package/signature/pepperi-addons-ngx-lib-signature.d.ts +4 -4
  642. package/signature/public-api.d.ts +2 -2
  643. package/signature/signature.component.d.ts +65 -65
  644. package/signature/signature.module.d.ts +5 -5
  645. package/size-detector/pepperi-addons-ngx-lib-size-detector.d.ts +4 -4
  646. package/size-detector/public-api.d.ts +2 -2
  647. package/size-detector/size-detector.component.d.ts +26 -26
  648. package/size-detector/size-detector.module.d.ts +2 -2
  649. package/slider/pepperi-addons-ngx-lib-slider.d.ts +4 -4
  650. package/slider/public-api.d.ts +2 -2
  651. package/slider/slider.component.d.ts +36 -36
  652. package/slider/slider.module.d.ts +2 -2
  653. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +25 -26
  654. package/smart-filters/common/filter-actions.component.d.ts +9 -9
  655. package/smart-filters/common/model/base-filter-component.d.ts +70 -70
  656. package/smart-filters/common/model/creator.d.ts +6 -6
  657. package/smart-filters/common/model/field.d.ts +69 -69
  658. package/smart-filters/common/model/filter.d.ts +11 -11
  659. package/smart-filters/common/model/operator.d.ts +51 -50
  660. package/smart-filters/common/model/type.d.ts +4 -4
  661. package/smart-filters/date-filter/date-filter.component.d.ts +56 -54
  662. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +53 -39
  663. package/smart-filters/number-filter/number-filter.component.d.ts +48 -47
  664. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.d.ts +4 -4
  665. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  666. package/smart-filters/public-api.d.ts +14 -14
  667. package/smart-filters/smart-filters.component.d.ts +32 -32
  668. package/smart-filters/smart-filters.module.d.ts +5 -5
  669. package/smart-filters/text-filter/text-filter.component.d.ts +25 -26
  670. package/snack-bar/default-snack-bar.component.d.ts +10 -10
  671. package/snack-bar/pepperi-addons-ngx-lib-snack-bar.d.ts +5 -5
  672. package/snack-bar/public-api.d.ts +4 -4
  673. package/snack-bar/snack-bar.component.d.ts +9 -9
  674. package/snack-bar/snack-bar.model.d.ts +8 -8
  675. package/snack-bar/snack-bar.module.d.ts +5 -5
  676. package/snack-bar/snack-bar.service.d.ts +21 -21
  677. package/src/assets/i18n/en.ngx-lib.json +16 -1
  678. package/textarea/pepperi-addons-ngx-lib-textarea.d.ts +4 -4
  679. package/textarea/public-api.d.ts +2 -2
  680. package/textarea/textarea.component.d.ts +51 -51
  681. package/textarea/textarea.module.d.ts +5 -5
  682. package/textbox/pepperi-addons-ngx-lib-textbox.d.ts +5 -5
  683. package/textbox/public-api.d.ts +2 -2
  684. package/textbox/textbox-validation.directive.d.ts +18 -18
  685. package/textbox/textbox.component.d.ts +134 -134
  686. package/textbox/textbox.module.d.ts +5 -5
  687. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.d.ts +4 -4
  688. package/textbox-icon/public-api.d.ts +2 -2
  689. package/textbox-icon/textbox-icon.component.d.ts +10 -10
  690. package/textbox-icon/textbox-icon.module.d.ts +5 -5
  691. package/top-bar/pepperi-addons-ngx-lib-top-bar.d.ts +4 -4
  692. package/top-bar/public-api.d.ts +3 -3
  693. package/top-bar/top-bar.component.d.ts +36 -36
  694. package/top-bar/top-bar.model.d.ts +4 -4
  695. package/top-bar/top-bar.module.d.ts +5 -5
@@ -1,701 +1,701 @@
1
1
  import { Directive, ElementRef, Inject, HostBinding, Input, EventEmitter, Component, Renderer2, ViewChild, ContentChildren, Output, HostListener, NgModule } from '@angular/core';
2
2
  import { DOCUMENT } from '@angular/common';
3
3
 
4
- class PepCarouselItemDirective {
5
- constructor(elementRef) {
6
- this.display = 'inline-block';
7
- this._dragDisabled = false;
8
- this._elementRef = elementRef;
9
- }
10
- get dragDisabled() {
11
- return this._dragDisabled;
12
- }
13
- set dragDisabled(value) {
14
- this._dragDisabled = value;
15
- }
16
- }
17
- PepCarouselItemDirective.decorators = [
18
- { type: Directive, args: [{
19
- selector: '[pepCarouselItem]',
20
- },] }
21
- ];
22
- PepCarouselItemDirective.ctorParameters = () => [
23
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
24
- ];
25
- PepCarouselItemDirective.propDecorators = {
26
- display: [{ type: HostBinding, args: ['style.display',] }],
27
- dragDisabled: [{ type: Input, args: ['dragDisabled',] }]
4
+ class PepCarouselItemDirective {
5
+ constructor(elementRef) {
6
+ this.display = 'inline-block';
7
+ this._dragDisabled = false;
8
+ this._elementRef = elementRef;
9
+ }
10
+ get dragDisabled() {
11
+ return this._dragDisabled;
12
+ }
13
+ set dragDisabled(value) {
14
+ this._dragDisabled = value;
15
+ }
16
+ }
17
+ PepCarouselItemDirective.decorators = [
18
+ { type: Directive, args: [{
19
+ selector: '[pepCarouselItem]',
20
+ },] }
21
+ ];
22
+ PepCarouselItemDirective.ctorParameters = () => [
23
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
24
+ ];
25
+ PepCarouselItemDirective.propDecorators = {
26
+ display: [{ type: HostBinding, args: ['style.display',] }],
27
+ dragDisabled: [{ type: Input, args: ['dragDisabled',] }]
28
28
  };
29
29
 
30
- class PepCarouselComponent {
31
- constructor(_elementRef, _renderer, _document) {
32
- this._elementRef = _elementRef;
33
- this._renderer = _renderer;
34
- this._document = _document;
35
- this._index = 0;
36
- this._scrollbarHidden = false;
37
- this._disabled = false;
38
- this._xDisabled = false;
39
- this._xWheelEnabled = false;
40
- this._yDisabled = false;
41
- this._dragDisabled = false;
42
- this._snapDisabled = false;
43
- this._snapOffset = 0;
44
- this._snapDuration = 500;
45
- this._isDragging = false;
46
- /**
47
- * Is the user currently pressing the element
48
- */
49
- this.isPressed = false;
50
- /**
51
- * Is the user currently scrolling the element
52
- */
53
- this.isScrolling = false;
54
- /**
55
- * The x coordinates on the element
56
- */
57
- this.downX = 0;
58
- /**
59
- * The y coordinates on the element
60
- */
61
- this.downY = 0;
62
- this.displayType = 'block';
63
- this.elWidth = null;
64
- this.elHeight = null;
65
- this._pointerEvents = 'auto';
66
- this.scrollbarWidth = null;
67
- this.isAnimating = false;
68
- this.prevChildrenLength = 0;
69
- this.indexBound = 0;
70
- this.dsInitialized = new EventEmitter();
71
- this.indexChanged = new EventEmitter();
72
- this.reachesLeftBound = new EventEmitter();
73
- this.reachesRightBound = new EventEmitter();
74
- this.snapAnimationFinished = new EventEmitter();
75
- this.dragStart = new EventEmitter();
76
- this.dragEnd = new EventEmitter();
77
- this.scrollbarWidth = `${this.getScrollbarWidth()}px`;
78
- }
79
- /**
80
- * Is the user currently dragging the element
81
- */
82
- get isDragging() {
83
- return this._isDragging;
84
- }
85
- get currIndex() {
86
- return this._index;
87
- }
88
- set currIndex(value) {
89
- if (value !== this._index) {
90
- this._index = value;
91
- this.indexChanged.emit(value);
92
- }
93
- }
94
- /**
95
- * Whether the scrollbar is hidden
96
- */
97
- get scrollbarHidden() {
98
- return this._scrollbarHidden;
99
- }
100
- set scrollbarHidden(value) {
101
- this._scrollbarHidden = value;
102
- }
103
- /**
104
- * Whether horizontally and vertically draging and scrolling is be disabled
105
- */
106
- get disabled() {
107
- return this._disabled;
108
- }
109
- set disabled(value) {
110
- this._disabled = value;
111
- }
112
- /**
113
- * Whether horizontally dragging and scrolling is be disabled
114
- */
115
- get xDisabled() {
116
- return this._xDisabled;
117
- }
118
- set xDisabled(value) {
119
- this._xDisabled = value;
120
- }
121
- /**
122
- * Whether vertically dragging and scrolling events is disabled
123
- */
124
- get yDisabled() {
125
- return this._yDisabled;
126
- }
127
- set yDisabled(value) {
128
- this._yDisabled = value;
129
- }
130
- /**
131
- * Whether scrolling horizontally with mouse wheel is enabled
132
- */
133
- get xWheelEnabled() {
134
- return this._xWheelEnabled;
135
- }
136
- set xWheelEnabled(value) {
137
- this._xWheelEnabled = value;
138
- }
139
- get dragDisabled() {
140
- return this._dragDisabled;
141
- }
142
- set dragDisabled(value) {
143
- this._dragDisabled = value;
144
- }
145
- get snapDisabled() {
146
- return this._snapDisabled;
147
- }
148
- set snapDisabled(value) {
149
- this._snapDisabled = value;
150
- }
151
- get snapOffset() {
152
- return this._snapOffset;
153
- }
154
- set snapOffset(value) {
155
- this._snapOffset = value;
156
- }
157
- get snapDuration() {
158
- return this._snapDuration;
159
- }
160
- set snapDuration(value) {
161
- this._snapDuration = value;
162
- }
163
- ngOnChanges() {
164
- this.setScrollBar();
165
- if (this.xDisabled || this.disabled || this._scrollbarHidden) {
166
- this.disableScroll('x');
167
- }
168
- else {
169
- this.enableScroll('x');
170
- }
171
- if (this.yDisabled || this.disabled) {
172
- this.disableScroll('y');
173
- }
174
- else {
175
- this.enableScroll('y');
176
- }
177
- }
178
- ngAfterViewInit() {
179
- // auto assign computed css
180
- this._renderer.setAttribute(this._contentRef.nativeElement, 'drag-scroll', 'true');
181
- this.displayType =
182
- typeof window !== 'undefined'
183
- ? window.getComputedStyle(this._elementRef.nativeElement)
184
- .display
185
- : 'block';
186
- this._renderer.setStyle(this._contentRef.nativeElement, 'display', this.displayType);
187
- this._renderer.setStyle(this._contentRef.nativeElement, 'whiteSpace', 'noWrap');
188
- // store ele width height for later user
189
- this.markElDimension();
190
- this._renderer.setStyle(this._contentRef.nativeElement, 'width', this.elWidth);
191
- this._renderer.setStyle(this._contentRef.nativeElement, 'height', this.elHeight);
192
- if (this.wrapper) {
193
- this.checkScrollbar();
194
- }
195
- this._onMouseDownListener = this._renderer.listen(this._contentRef.nativeElement, 'mousedown', this.onMouseDownHandler.bind(this));
196
- this._onScrollListener = this._renderer.listen(this._contentRef.nativeElement, 'scroll', this.onScrollHandler.bind(this));
197
- // prevent Firefox from dragging images
198
- this._onDragStartListener = this._renderer.listen('document', 'dragstart', (e) => {
199
- e.preventDefault();
200
- });
201
- this.checkNavStatus();
202
- this.dsInitialized.emit();
203
- this.adjustMarginToLastChild();
204
- }
205
- ngAfterViewChecked() {
206
- // avoid extra checks
207
- if (this._children.length !== this.prevChildrenLength) {
208
- this.markElDimension();
209
- this.checkScrollbar();
210
- this.prevChildrenLength = this._children.length;
211
- this.checkNavStatus();
212
- }
213
- }
214
- ngOnDestroy() {
215
- this._renderer.setAttribute(this._contentRef.nativeElement, 'drag-scroll', 'false');
216
- if (this._onMouseDownListener) {
217
- this._onMouseDownListener = this._onMouseDownListener();
218
- }
219
- if (this._onScrollListener) {
220
- this._onScrollListener = this._onScrollListener();
221
- }
222
- if (this._onDragStartListener) {
223
- this._onDragStartListener = this._onDragStartListener();
224
- }
225
- }
226
- onMouseMoveHandler(event) {
227
- this.onMouseMove(event);
228
- }
229
- onMouseMove(event) {
230
- if (this.isPressed && !this.disabled) {
231
- // Workaround for prevent scroll stuck if browser lost focus
232
- // MouseEvent.buttons not support by Safari
233
- if (!event.buttons && !event.which) {
234
- return this.onMouseUpHandler(event);
235
- }
236
- this._pointerEvents = 'none';
237
- this._setIsDragging(true);
238
- // Drag X
239
- if (!this.xDisabled && !this.dragDisabled) {
240
- const clientX = event.clientX;
241
- this._contentRef.nativeElement.scrollLeft =
242
- this._contentRef.nativeElement.scrollLeft -
243
- clientX +
244
- this.downX;
245
- this.downX = clientX;
246
- }
247
- // Drag Y
248
- if (!this.yDisabled && !this.dragDisabled) {
249
- const clientY = event.clientY;
250
- this._contentRef.nativeElement.scrollTop =
251
- this._contentRef.nativeElement.scrollTop -
252
- clientY +
253
- this.downY;
254
- this.downY = clientY;
255
- }
256
- }
257
- }
258
- onMouseDownHandler(event) {
259
- const carouselItem = this.locateCarouselItem(event.target);
260
- if (carouselItem && carouselItem.dragDisabled) {
261
- return;
262
- }
263
- const isTouchEvent = event.type === 'touchstart';
264
- this._startGlobalListening(isTouchEvent);
265
- this.isPressed = true;
266
- const mouseEvent = event;
267
- this.downX = mouseEvent.clientX;
268
- this.downY = mouseEvent.clientY;
269
- clearTimeout(this.scrollToTimer);
270
- }
271
- onScrollHandler() {
272
- this.checkNavStatus();
273
- if (!this.isPressed && !this.isAnimating && !this.snapDisabled) {
274
- this.isScrolling = true;
275
- clearTimeout(this.scrollTimer);
276
- this.scrollTimer = setTimeout(() => {
277
- this.isScrolling = false;
278
- this.locateCurrentIndex(true);
279
- }, 500);
280
- }
281
- else {
282
- this.locateCurrentIndex();
283
- }
284
- }
285
- onMouseUpHandler(event) {
286
- if (this.isPressed) {
287
- this.isPressed = false;
288
- this._pointerEvents = 'auto';
289
- this._setIsDragging(false);
290
- if (!this.snapDisabled) {
291
- this.locateCurrentIndex(true);
292
- }
293
- else {
294
- this.locateCurrentIndex();
295
- }
296
- this._stopGlobalListening();
297
- }
298
- }
299
- /*
300
- * Nav button
301
- */
302
- moveLeft() {
303
- if (this.currIndex !== 0 || this.snapDisabled) {
304
- this.currIndex--;
305
- clearTimeout(this.scrollToTimer);
306
- this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);
307
- }
308
- }
309
- moveRight() {
310
- const container = this.wrapper || this.parentNode;
311
- const containerWidth = container ? container.clientWidth : 0;
312
- if (!this.isScrollReachesRightEnd() &&
313
- this.currIndex <
314
- this.maximumIndex(containerWidth, this._children.toArray())) {
315
- this.currIndex++;
316
- clearTimeout(this.scrollToTimer);
317
- this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);
318
- }
319
- }
320
- moveTo(index) {
321
- const container = this.wrapper || this.parentNode;
322
- const containerWidth = container ? container.clientWidth : 0;
323
- if (index >= 0 &&
324
- index !== this.currIndex &&
325
- this.currIndex <=
326
- this.maximumIndex(containerWidth, this._children.toArray())) {
327
- this.currIndex = Math.min(index, this.maximumIndex(containerWidth, this._children.toArray()));
328
- clearTimeout(this.scrollToTimer);
329
- this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);
330
- }
331
- }
332
- checkNavStatus() {
333
- setTimeout(() => {
334
- const onlyOneItem = Boolean(this._children.length <= 1);
335
- const containerIsLargerThanContent = Boolean(this._contentRef.nativeElement.scrollWidth <=
336
- this._contentRef.nativeElement.clientWidth);
337
- if (onlyOneItem || containerIsLargerThanContent) {
338
- // only one element
339
- this.reachesLeftBound.emit(true);
340
- this.reachesRightBound.emit(true);
341
- }
342
- else if (this.isScrollReachesRightEnd()) {
343
- // reached right end
344
- this.reachesLeftBound.emit(false);
345
- this.reachesRightBound.emit(true);
346
- }
347
- else if (this._contentRef.nativeElement.scrollLeft === 0 &&
348
- this._contentRef.nativeElement.scrollWidth >
349
- this._contentRef.nativeElement.clientWidth) {
350
- // reached left end
351
- this.reachesLeftBound.emit(true);
352
- this.reachesRightBound.emit(false);
353
- }
354
- else {
355
- // in the middle
356
- this.reachesLeftBound.emit(false);
357
- this.reachesRightBound.emit(false);
358
- }
359
- }, 0);
360
- }
361
- onWheel(event) {
362
- if (this._xWheelEnabled) {
363
- event.preventDefault();
364
- if (this._snapDisabled) {
365
- this._contentRef.nativeElement.scrollBy(event.deltaY, 0);
366
- }
367
- else {
368
- if (event.deltaY < 0) {
369
- this.moveLeft();
370
- }
371
- else if (event.deltaY > 0) {
372
- this.moveRight();
373
- }
374
- }
375
- }
376
- }
377
- onWindowResize() {
378
- this.refreshWrapperDimensions();
379
- this.checkNavStatus();
380
- }
381
- _setIsDragging(value) {
382
- if (this._isDragging === value) {
383
- return;
384
- }
385
- this._isDragging = value;
386
- value ? this.dragStart.emit() : this.dragEnd.emit();
387
- }
388
- _startGlobalListening(isTouchEvent) {
389
- if (!this._onMouseMoveListener) {
390
- const eventName = isTouchEvent ? 'touchmove' : 'mousemove';
391
- this._onMouseMoveListener = this._renderer.listen('document', eventName, this.onMouseMoveHandler.bind(this));
392
- }
393
- if (!this._onMouseUpListener) {
394
- const eventName = isTouchEvent ? 'touchend' : 'mouseup';
395
- this._onMouseUpListener = this._renderer.listen('document', eventName, this.onMouseUpHandler.bind(this));
396
- }
397
- }
398
- _stopGlobalListening() {
399
- if (this._onMouseMoveListener) {
400
- this._onMouseMoveListener = this._onMouseMoveListener();
401
- }
402
- if (this._onMouseUpListener) {
403
- this._onMouseUpListener = this._onMouseUpListener();
404
- }
405
- }
406
- disableScroll(axis) {
407
- this._renderer.setStyle(this._contentRef.nativeElement, `overflow-${axis}`, 'hidden');
408
- }
409
- enableScroll(axis) {
410
- this._renderer.setStyle(this._contentRef.nativeElement, `overflow-${axis}`, 'auto');
411
- }
412
- hideScrollbar() {
413
- if (this._contentRef.nativeElement.style.display !== 'none' &&
414
- !this.wrapper) {
415
- this.parentNode = this._contentRef.nativeElement.parentNode;
416
- // create container element
417
- this.wrapper = this._renderer.createElement('div');
418
- this._renderer.addClass(this.wrapper, 'carousel-wrapper');
419
- // this._renderer.setAttribute(this.wrapper, 'class', 'carousel-wrapper');
420
- // this._renderer.addClass(this.wrapper, 'carousel-container');
421
- this.refreshWrapperDimensions();
422
- this._renderer.setStyle(this.wrapper, 'overflow', 'hidden');
423
- this._renderer.setStyle(this._contentRef.nativeElement, 'width', `calc(100% + ${this.scrollbarWidth})`);
424
- this._renderer.setStyle(this._contentRef.nativeElement, 'height', `calc(100% + ${this.scrollbarWidth})`);
425
- // Append container element to component element.
426
- this._renderer.appendChild(this._elementRef.nativeElement, this.wrapper);
427
- // Append content element to container element.
428
- this._renderer.appendChild(this.wrapper, this._contentRef.nativeElement);
429
- this.adjustMarginToLastChild();
430
- }
431
- }
432
- showScrollbar() {
433
- if (this.wrapper) {
434
- this._renderer.setStyle(this._contentRef.nativeElement, 'width', '100%');
435
- this._renderer.setStyle(this._contentRef.nativeElement, 'height', this.wrapper.style.height);
436
- if (this.parentNode !== null) {
437
- this.parentNode.removeChild(this.wrapper);
438
- this.parentNode.appendChild(this._contentRef.nativeElement);
439
- }
440
- this.wrapper = null;
441
- this.adjustMarginToLastChild();
442
- }
443
- }
444
- checkScrollbar() {
445
- if (this._contentRef.nativeElement.scrollWidth <=
446
- this._contentRef.nativeElement.clientWidth) {
447
- this._renderer.setStyle(this._contentRef.nativeElement, 'height', '100%');
448
- }
449
- else {
450
- this._renderer.setStyle(this._contentRef.nativeElement, 'height', `calc(100% + ${this.scrollbarWidth})`);
451
- }
452
- if (this._contentRef.nativeElement.scrollHeight <=
453
- this._contentRef.nativeElement.clientHeight) {
454
- this._renderer.setStyle(this._contentRef.nativeElement, 'width', '100%');
455
- }
456
- else {
457
- this._renderer.setStyle(this._contentRef.nativeElement, 'width', `calc(100% + ${this.scrollbarWidth})`);
458
- }
459
- }
460
- setScrollBar() {
461
- if (this.scrollbarHidden) {
462
- this.hideScrollbar();
463
- }
464
- else {
465
- this.showScrollbar();
466
- }
467
- }
468
- getScrollbarWidth() {
469
- /**
470
- * Browser Scrollbar Widths (2016)
471
- * OSX (Chrome, Safari, Firefox) - 15px
472
- * Windows XP (IE7, Chrome, Firefox) - 17px
473
- * Windows 7 (IE10, IE11, Chrome, Firefox) - 17px
474
- * Windows 8.1 (IE11, Chrome, Firefox) - 17px
475
- * Windows 10 (IE11, Chrome, Firefox) - 17px
476
- * Windows 10 (Edge 12/13) - 12px
477
- */
478
- const outer = this._renderer.createElement('div');
479
- this._renderer.setStyle(outer, 'visibility', 'hidden');
480
- this._renderer.setStyle(outer, 'width', '100px');
481
- this._renderer.setStyle(outer, 'msOverflowStyle', 'scrollbar'); // needed for WinJS apps
482
- // document.body.appendChild(outer);
483
- this._renderer.appendChild(this._document.body, outer);
484
- // this._renderer.appendChild(this._renderer.selectRootElement('body'), outer);
485
- const widthNoScroll = outer.offsetWidth;
486
- // force scrollbars
487
- this._renderer.setStyle(outer, 'overflow', 'scroll');
488
- // add innerdiv
489
- const inner = this._renderer.createElement('div');
490
- this._renderer.setStyle(inner, 'width', '100%');
491
- this._renderer.appendChild(outer, inner);
492
- const widthWithScroll = inner.offsetWidth;
493
- // remove divs
494
- this._renderer.removeChild(this._document.body, outer);
495
- /**
496
- * Scrollbar width will be 0 on Mac OS with the
497
- * default "Only show scrollbars when scrolling" setting (Yosemite and up).
498
- * setting default width to 20;
499
- */
500
- return widthNoScroll - widthWithScroll || 20;
501
- }
502
- refreshWrapperDimensions() {
503
- if (this.wrapper) {
504
- const height = this._elementRef.nativeElement.style.height ||
505
- this._elementRef.nativeElement.offsetHeight;
506
- this._renderer.setStyle(this.wrapper, 'width', '100%');
507
- this._renderer.setStyle(this.wrapper, 'height', height === 0 ? 'auto' : height + 'px');
508
- }
509
- }
510
- /*
511
- * The below solution is heavily inspired from
512
- * https://gist.github.com/andjosh/6764939
513
- */
514
- scrollTo(element, to, duration) {
515
- this.isAnimating = true;
516
- const start = element.scrollLeft, change = to - start - this.snapOffset, increment = 20;
517
- let currentTime = 0;
518
- // t = current time
519
- // b = start value
520
- // c = change in value
521
- // d = duration
522
- const easeInOutQuad = (t, b, c, d) => {
523
- t /= d / 2;
524
- if (t < 1) {
525
- return (c / 2) * t * t + b;
526
- }
527
- t--;
528
- return (-c / 2) * (t * (t - 2) - 1) + b;
529
- };
530
- const animateScroll = () => {
531
- currentTime += increment;
532
- element.scrollLeft = easeInOutQuad(currentTime, start, change, duration);
533
- if (currentTime < duration) {
534
- this.scrollToTimer = setTimeout(animateScroll, increment);
535
- }
536
- else {
537
- // run one more frame to make sure the animation is fully finished
538
- setTimeout(() => {
539
- this.isAnimating = false;
540
- this.snapAnimationFinished.emit(this.currIndex);
541
- }, increment);
542
- }
543
- };
544
- animateScroll();
545
- }
546
- locateCurrentIndex(snap) {
547
- this.currentChildWidth((currentChildWidth, nextChildrenWidth, childrenWidth, idx, stop) => {
548
- if (this._contentRef.nativeElement.scrollLeft >=
549
- childrenWidth &&
550
- this._contentRef.nativeElement.scrollLeft <=
551
- nextChildrenWidth) {
552
- if (nextChildrenWidth -
553
- this._contentRef.nativeElement.scrollLeft >
554
- currentChildWidth / 2 &&
555
- !this.isScrollReachesRightEnd()) {
556
- // roll back scrolling
557
- if (!this.isAnimating) {
558
- this.currIndex = idx;
559
- }
560
- if (snap) {
561
- this.scrollTo(this._contentRef.nativeElement, childrenWidth, this.snapDuration);
562
- }
563
- }
564
- else if (this._contentRef.nativeElement.scrollLeft !== 0) {
565
- // forward scrolling
566
- if (!this.isAnimating) {
567
- this.currIndex = idx + 1;
568
- }
569
- if (snap) {
570
- this.scrollTo(this._contentRef.nativeElement, childrenWidth + currentChildWidth, this.snapDuration);
571
- }
572
- }
573
- stop();
574
- }
575
- else if (idx + 1 === this._children.length - 1) {
576
- // reaches last index
577
- if (!this.isAnimating) {
578
- this.currIndex = idx + 1;
579
- }
580
- stop();
581
- }
582
- });
583
- }
584
- currentChildWidth(cb) {
585
- let childrenWidth = 0;
586
- let shouldBreak = false;
587
- const breakFunc = function () {
588
- shouldBreak = true;
589
- };
590
- const childrenArr = this._children.toArray();
591
- for (let i = 0; i < childrenArr.length; i++) {
592
- if (i === childrenArr.length - 1) {
593
- break;
594
- }
595
- if (shouldBreak) {
596
- break;
597
- }
598
- const nextChildrenWidth = childrenWidth +
599
- childrenArr[i + 1]._elementRef.nativeElement.clientWidth;
600
- const currentClildWidth = childrenArr[i]._elementRef.nativeElement.clientWidth;
601
- cb(currentClildWidth, nextChildrenWidth, childrenWidth, i, breakFunc);
602
- childrenWidth += currentClildWidth;
603
- }
604
- }
605
- toChildrenLocation() {
606
- let to = 0;
607
- const childrenArr = this._children.toArray();
608
- for (let i = 0; i < this.currIndex; i++) {
609
- to += childrenArr[i]._elementRef.nativeElement.clientWidth;
610
- }
611
- return to;
612
- }
613
- locateCarouselItem(element) {
614
- let item = null;
615
- const childrenArr = this._children.toArray();
616
- for (let i = 0; i < childrenArr.length; i++) {
617
- if (element === childrenArr[i]._elementRef.nativeElement) {
618
- item = childrenArr[i];
619
- }
620
- }
621
- return item;
622
- }
623
- markElDimension() {
624
- if (this.wrapper) {
625
- this.elWidth = this.wrapper.style.width;
626
- this.elHeight = this.wrapper.style.height;
627
- }
628
- else {
629
- this.elWidth =
630
- this._elementRef.nativeElement.style.width ||
631
- this._elementRef.nativeElement.offsetWidth + 'px';
632
- this.elHeight =
633
- this._elementRef.nativeElement.style.height ||
634
- this._elementRef.nativeElement.offsetHeight + 'px';
635
- }
636
- const container = this.wrapper || this.parentNode;
637
- const containerWidth = container ? container.clientWidth : 0;
638
- if (this._children.length > 1) {
639
- this.indexBound = this.maximumIndex(containerWidth, this._children.toArray());
640
- }
641
- }
642
- maximumIndex(containerWidth, childrenElements) {
643
- let count = 0;
644
- let childrenWidth = 0;
645
- for (let i = 0; i <= childrenElements.length; i++) {
646
- // last N element
647
- const carouselItemDirective = childrenElements[childrenElements.length - 1 - i];
648
- if (!carouselItemDirective) {
649
- break;
650
- }
651
- else {
652
- const nativeElement = carouselItemDirective._elementRef.nativeElement;
653
- let itemWidth = nativeElement.clientWidth;
654
- if (itemWidth === 0 && nativeElement.firstElementChild) {
655
- itemWidth =
656
- carouselItemDirective._elementRef.nativeElement
657
- .firstElementChild.clientWidth;
658
- }
659
- childrenWidth += itemWidth;
660
- if (childrenWidth < containerWidth) {
661
- count++;
662
- }
663
- else {
664
- break;
665
- }
666
- }
667
- }
668
- return childrenElements.length - count;
669
- }
670
- isScrollReachesRightEnd() {
671
- const scrollLeftPos = this._contentRef.nativeElement.scrollLeft +
672
- this._contentRef.nativeElement.offsetWidth;
673
- return scrollLeftPos >= this._contentRef.nativeElement.scrollWidth;
674
- }
675
- /**
676
- * adds a margin right style to the last child element which will resolve the issue
677
- * of last item gets cutoff.
678
- */
679
- adjustMarginToLastChild() {
680
- // if (this._children && this._children.length > 0 && this.hideScrollbar) {
681
- // const childrenArr = this._children.toArray();
682
- // const lastItem = childrenArr[childrenArr.length - 1]._elementRef.nativeElement;
683
- // if (this.wrapper && childrenArr.length > 1) {
684
- // this._renderer.setStyle(lastItem, 'margin-right', this.scrollbarWidth);
685
- // } else {
686
- // this._renderer.setStyle(lastItem, 'margin-right', 0);
687
- // }
688
- // }
689
- }
690
- }
691
- PepCarouselComponent.decorators = [
692
- { type: Component, args: [{
693
- selector: 'pep-carousel',
30
+ class PepCarouselComponent {
31
+ constructor(_elementRef, _renderer, _document) {
32
+ this._elementRef = _elementRef;
33
+ this._renderer = _renderer;
34
+ this._document = _document;
35
+ this._index = 0;
36
+ this._scrollbarHidden = false;
37
+ this._disabled = false;
38
+ this._xDisabled = false;
39
+ this._xWheelEnabled = false;
40
+ this._yDisabled = false;
41
+ this._dragDisabled = false;
42
+ this._snapDisabled = false;
43
+ this._snapOffset = 0;
44
+ this._snapDuration = 500;
45
+ this._isDragging = false;
46
+ /**
47
+ * Is the user currently pressing the element
48
+ */
49
+ this.isPressed = false;
50
+ /**
51
+ * Is the user currently scrolling the element
52
+ */
53
+ this.isScrolling = false;
54
+ /**
55
+ * The x coordinates on the element
56
+ */
57
+ this.downX = 0;
58
+ /**
59
+ * The y coordinates on the element
60
+ */
61
+ this.downY = 0;
62
+ this.displayType = 'block';
63
+ this.elWidth = null;
64
+ this.elHeight = null;
65
+ this._pointerEvents = 'auto';
66
+ this.scrollbarWidth = null;
67
+ this.isAnimating = false;
68
+ this.prevChildrenLength = 0;
69
+ this.indexBound = 0;
70
+ this.dsInitialized = new EventEmitter();
71
+ this.indexChanged = new EventEmitter();
72
+ this.reachesLeftBound = new EventEmitter();
73
+ this.reachesRightBound = new EventEmitter();
74
+ this.snapAnimationFinished = new EventEmitter();
75
+ this.dragStart = new EventEmitter();
76
+ this.dragEnd = new EventEmitter();
77
+ this.scrollbarWidth = `${this.getScrollbarWidth()}px`;
78
+ }
79
+ /**
80
+ * Is the user currently dragging the element
81
+ */
82
+ get isDragging() {
83
+ return this._isDragging;
84
+ }
85
+ get currIndex() {
86
+ return this._index;
87
+ }
88
+ set currIndex(value) {
89
+ if (value !== this._index) {
90
+ this._index = value;
91
+ this.indexChanged.emit(value);
92
+ }
93
+ }
94
+ /**
95
+ * Whether the scrollbar is hidden
96
+ */
97
+ get scrollbarHidden() {
98
+ return this._scrollbarHidden;
99
+ }
100
+ set scrollbarHidden(value) {
101
+ this._scrollbarHidden = value;
102
+ }
103
+ /**
104
+ * Whether horizontally and vertically draging and scrolling is be disabled
105
+ */
106
+ get disabled() {
107
+ return this._disabled;
108
+ }
109
+ set disabled(value) {
110
+ this._disabled = value;
111
+ }
112
+ /**
113
+ * Whether horizontally dragging and scrolling is be disabled
114
+ */
115
+ get xDisabled() {
116
+ return this._xDisabled;
117
+ }
118
+ set xDisabled(value) {
119
+ this._xDisabled = value;
120
+ }
121
+ /**
122
+ * Whether vertically dragging and scrolling events is disabled
123
+ */
124
+ get yDisabled() {
125
+ return this._yDisabled;
126
+ }
127
+ set yDisabled(value) {
128
+ this._yDisabled = value;
129
+ }
130
+ /**
131
+ * Whether scrolling horizontally with mouse wheel is enabled
132
+ */
133
+ get xWheelEnabled() {
134
+ return this._xWheelEnabled;
135
+ }
136
+ set xWheelEnabled(value) {
137
+ this._xWheelEnabled = value;
138
+ }
139
+ get dragDisabled() {
140
+ return this._dragDisabled;
141
+ }
142
+ set dragDisabled(value) {
143
+ this._dragDisabled = value;
144
+ }
145
+ get snapDisabled() {
146
+ return this._snapDisabled;
147
+ }
148
+ set snapDisabled(value) {
149
+ this._snapDisabled = value;
150
+ }
151
+ get snapOffset() {
152
+ return this._snapOffset;
153
+ }
154
+ set snapOffset(value) {
155
+ this._snapOffset = value;
156
+ }
157
+ get snapDuration() {
158
+ return this._snapDuration;
159
+ }
160
+ set snapDuration(value) {
161
+ this._snapDuration = value;
162
+ }
163
+ ngOnChanges() {
164
+ this.setScrollBar();
165
+ if (this.xDisabled || this.disabled || this._scrollbarHidden) {
166
+ this.disableScroll('x');
167
+ }
168
+ else {
169
+ this.enableScroll('x');
170
+ }
171
+ if (this.yDisabled || this.disabled) {
172
+ this.disableScroll('y');
173
+ }
174
+ else {
175
+ this.enableScroll('y');
176
+ }
177
+ }
178
+ ngAfterViewInit() {
179
+ // auto assign computed css
180
+ this._renderer.setAttribute(this._contentRef.nativeElement, 'drag-scroll', 'true');
181
+ this.displayType =
182
+ typeof window !== 'undefined'
183
+ ? window.getComputedStyle(this._elementRef.nativeElement)
184
+ .display
185
+ : 'block';
186
+ this._renderer.setStyle(this._contentRef.nativeElement, 'display', this.displayType);
187
+ this._renderer.setStyle(this._contentRef.nativeElement, 'whiteSpace', 'noWrap');
188
+ // store ele width height for later user
189
+ this.markElDimension();
190
+ this._renderer.setStyle(this._contentRef.nativeElement, 'width', this.elWidth);
191
+ this._renderer.setStyle(this._contentRef.nativeElement, 'height', this.elHeight);
192
+ if (this.wrapper) {
193
+ this.checkScrollbar();
194
+ }
195
+ this._onMouseDownListener = this._renderer.listen(this._contentRef.nativeElement, 'mousedown', this.onMouseDownHandler.bind(this));
196
+ this._onScrollListener = this._renderer.listen(this._contentRef.nativeElement, 'scroll', this.onScrollHandler.bind(this));
197
+ // prevent Firefox from dragging images
198
+ this._onDragStartListener = this._renderer.listen('document', 'dragstart', (e) => {
199
+ e.preventDefault();
200
+ });
201
+ this.checkNavStatus();
202
+ this.dsInitialized.emit();
203
+ this.adjustMarginToLastChild();
204
+ }
205
+ ngAfterViewChecked() {
206
+ // avoid extra checks
207
+ if (this._children.length !== this.prevChildrenLength) {
208
+ this.markElDimension();
209
+ this.checkScrollbar();
210
+ this.prevChildrenLength = this._children.length;
211
+ this.checkNavStatus();
212
+ }
213
+ }
214
+ ngOnDestroy() {
215
+ this._renderer.setAttribute(this._contentRef.nativeElement, 'drag-scroll', 'false');
216
+ if (this._onMouseDownListener) {
217
+ this._onMouseDownListener = this._onMouseDownListener();
218
+ }
219
+ if (this._onScrollListener) {
220
+ this._onScrollListener = this._onScrollListener();
221
+ }
222
+ if (this._onDragStartListener) {
223
+ this._onDragStartListener = this._onDragStartListener();
224
+ }
225
+ }
226
+ onMouseMoveHandler(event) {
227
+ this.onMouseMove(event);
228
+ }
229
+ onMouseMove(event) {
230
+ if (this.isPressed && !this.disabled) {
231
+ // Workaround for prevent scroll stuck if browser lost focus
232
+ // MouseEvent.buttons not support by Safari
233
+ if (!event.buttons && !event.which) {
234
+ return this.onMouseUpHandler(event);
235
+ }
236
+ this._pointerEvents = 'none';
237
+ this._setIsDragging(true);
238
+ // Drag X
239
+ if (!this.xDisabled && !this.dragDisabled) {
240
+ const clientX = event.clientX;
241
+ this._contentRef.nativeElement.scrollLeft =
242
+ this._contentRef.nativeElement.scrollLeft -
243
+ clientX +
244
+ this.downX;
245
+ this.downX = clientX;
246
+ }
247
+ // Drag Y
248
+ if (!this.yDisabled && !this.dragDisabled) {
249
+ const clientY = event.clientY;
250
+ this._contentRef.nativeElement.scrollTop =
251
+ this._contentRef.nativeElement.scrollTop -
252
+ clientY +
253
+ this.downY;
254
+ this.downY = clientY;
255
+ }
256
+ }
257
+ }
258
+ onMouseDownHandler(event) {
259
+ const carouselItem = this.locateCarouselItem(event.target);
260
+ if (carouselItem && carouselItem.dragDisabled) {
261
+ return;
262
+ }
263
+ const isTouchEvent = event.type === 'touchstart';
264
+ this._startGlobalListening(isTouchEvent);
265
+ this.isPressed = true;
266
+ const mouseEvent = event;
267
+ this.downX = mouseEvent.clientX;
268
+ this.downY = mouseEvent.clientY;
269
+ clearTimeout(this.scrollToTimer);
270
+ }
271
+ onScrollHandler() {
272
+ this.checkNavStatus();
273
+ if (!this.isPressed && !this.isAnimating && !this.snapDisabled) {
274
+ this.isScrolling = true;
275
+ clearTimeout(this.scrollTimer);
276
+ this.scrollTimer = setTimeout(() => {
277
+ this.isScrolling = false;
278
+ this.locateCurrentIndex(true);
279
+ }, 500);
280
+ }
281
+ else {
282
+ this.locateCurrentIndex();
283
+ }
284
+ }
285
+ onMouseUpHandler(event) {
286
+ if (this.isPressed) {
287
+ this.isPressed = false;
288
+ this._pointerEvents = 'auto';
289
+ this._setIsDragging(false);
290
+ if (!this.snapDisabled) {
291
+ this.locateCurrentIndex(true);
292
+ }
293
+ else {
294
+ this.locateCurrentIndex();
295
+ }
296
+ this._stopGlobalListening();
297
+ }
298
+ }
299
+ /*
300
+ * Nav button
301
+ */
302
+ moveLeft() {
303
+ if (this.currIndex !== 0 || this.snapDisabled) {
304
+ this.currIndex--;
305
+ clearTimeout(this.scrollToTimer);
306
+ this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);
307
+ }
308
+ }
309
+ moveRight() {
310
+ const container = this.wrapper || this.parentNode;
311
+ const containerWidth = container ? container.clientWidth : 0;
312
+ if (!this.isScrollReachesRightEnd() &&
313
+ this.currIndex <
314
+ this.maximumIndex(containerWidth, this._children.toArray())) {
315
+ this.currIndex++;
316
+ clearTimeout(this.scrollToTimer);
317
+ this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);
318
+ }
319
+ }
320
+ moveTo(index) {
321
+ const container = this.wrapper || this.parentNode;
322
+ const containerWidth = container ? container.clientWidth : 0;
323
+ if (index >= 0 &&
324
+ index !== this.currIndex &&
325
+ this.currIndex <=
326
+ this.maximumIndex(containerWidth, this._children.toArray())) {
327
+ this.currIndex = Math.min(index, this.maximumIndex(containerWidth, this._children.toArray()));
328
+ clearTimeout(this.scrollToTimer);
329
+ this.scrollTo(this._contentRef.nativeElement, this.toChildrenLocation(), this.snapDuration);
330
+ }
331
+ }
332
+ checkNavStatus() {
333
+ setTimeout(() => {
334
+ const onlyOneItem = Boolean(this._children.length <= 1);
335
+ const containerIsLargerThanContent = Boolean(this._contentRef.nativeElement.scrollWidth <=
336
+ this._contentRef.nativeElement.clientWidth);
337
+ if (onlyOneItem || containerIsLargerThanContent) {
338
+ // only one element
339
+ this.reachesLeftBound.emit(true);
340
+ this.reachesRightBound.emit(true);
341
+ }
342
+ else if (this.isScrollReachesRightEnd()) {
343
+ // reached right end
344
+ this.reachesLeftBound.emit(false);
345
+ this.reachesRightBound.emit(true);
346
+ }
347
+ else if (this._contentRef.nativeElement.scrollLeft === 0 &&
348
+ this._contentRef.nativeElement.scrollWidth >
349
+ this._contentRef.nativeElement.clientWidth) {
350
+ // reached left end
351
+ this.reachesLeftBound.emit(true);
352
+ this.reachesRightBound.emit(false);
353
+ }
354
+ else {
355
+ // in the middle
356
+ this.reachesLeftBound.emit(false);
357
+ this.reachesRightBound.emit(false);
358
+ }
359
+ }, 0);
360
+ }
361
+ onWheel(event) {
362
+ if (this._xWheelEnabled) {
363
+ event.preventDefault();
364
+ if (this._snapDisabled) {
365
+ this._contentRef.nativeElement.scrollBy(event.deltaY, 0);
366
+ }
367
+ else {
368
+ if (event.deltaY < 0) {
369
+ this.moveLeft();
370
+ }
371
+ else if (event.deltaY > 0) {
372
+ this.moveRight();
373
+ }
374
+ }
375
+ }
376
+ }
377
+ onWindowResize() {
378
+ this.refreshWrapperDimensions();
379
+ this.checkNavStatus();
380
+ }
381
+ _setIsDragging(value) {
382
+ if (this._isDragging === value) {
383
+ return;
384
+ }
385
+ this._isDragging = value;
386
+ value ? this.dragStart.emit() : this.dragEnd.emit();
387
+ }
388
+ _startGlobalListening(isTouchEvent) {
389
+ if (!this._onMouseMoveListener) {
390
+ const eventName = isTouchEvent ? 'touchmove' : 'mousemove';
391
+ this._onMouseMoveListener = this._renderer.listen('document', eventName, this.onMouseMoveHandler.bind(this));
392
+ }
393
+ if (!this._onMouseUpListener) {
394
+ const eventName = isTouchEvent ? 'touchend' : 'mouseup';
395
+ this._onMouseUpListener = this._renderer.listen('document', eventName, this.onMouseUpHandler.bind(this));
396
+ }
397
+ }
398
+ _stopGlobalListening() {
399
+ if (this._onMouseMoveListener) {
400
+ this._onMouseMoveListener = this._onMouseMoveListener();
401
+ }
402
+ if (this._onMouseUpListener) {
403
+ this._onMouseUpListener = this._onMouseUpListener();
404
+ }
405
+ }
406
+ disableScroll(axis) {
407
+ this._renderer.setStyle(this._contentRef.nativeElement, `overflow-${axis}`, 'hidden');
408
+ }
409
+ enableScroll(axis) {
410
+ this._renderer.setStyle(this._contentRef.nativeElement, `overflow-${axis}`, 'auto');
411
+ }
412
+ hideScrollbar() {
413
+ if (this._contentRef.nativeElement.style.display !== 'none' &&
414
+ !this.wrapper) {
415
+ this.parentNode = this._contentRef.nativeElement.parentNode;
416
+ // create container element
417
+ this.wrapper = this._renderer.createElement('div');
418
+ this._renderer.addClass(this.wrapper, 'carousel-wrapper');
419
+ // this._renderer.setAttribute(this.wrapper, 'class', 'carousel-wrapper');
420
+ // this._renderer.addClass(this.wrapper, 'carousel-container');
421
+ this.refreshWrapperDimensions();
422
+ this._renderer.setStyle(this.wrapper, 'overflow', 'hidden');
423
+ this._renderer.setStyle(this._contentRef.nativeElement, 'width', `calc(100% + ${this.scrollbarWidth})`);
424
+ this._renderer.setStyle(this._contentRef.nativeElement, 'height', `calc(100% + ${this.scrollbarWidth})`);
425
+ // Append container element to component element.
426
+ this._renderer.appendChild(this._elementRef.nativeElement, this.wrapper);
427
+ // Append content element to container element.
428
+ this._renderer.appendChild(this.wrapper, this._contentRef.nativeElement);
429
+ this.adjustMarginToLastChild();
430
+ }
431
+ }
432
+ showScrollbar() {
433
+ if (this.wrapper) {
434
+ this._renderer.setStyle(this._contentRef.nativeElement, 'width', '100%');
435
+ this._renderer.setStyle(this._contentRef.nativeElement, 'height', this.wrapper.style.height);
436
+ if (this.parentNode !== null) {
437
+ this.parentNode.removeChild(this.wrapper);
438
+ this.parentNode.appendChild(this._contentRef.nativeElement);
439
+ }
440
+ this.wrapper = null;
441
+ this.adjustMarginToLastChild();
442
+ }
443
+ }
444
+ checkScrollbar() {
445
+ if (this._contentRef.nativeElement.scrollWidth <=
446
+ this._contentRef.nativeElement.clientWidth) {
447
+ this._renderer.setStyle(this._contentRef.nativeElement, 'height', '100%');
448
+ }
449
+ else {
450
+ this._renderer.setStyle(this._contentRef.nativeElement, 'height', `calc(100% + ${this.scrollbarWidth})`);
451
+ }
452
+ if (this._contentRef.nativeElement.scrollHeight <=
453
+ this._contentRef.nativeElement.clientHeight) {
454
+ this._renderer.setStyle(this._contentRef.nativeElement, 'width', '100%');
455
+ }
456
+ else {
457
+ this._renderer.setStyle(this._contentRef.nativeElement, 'width', `calc(100% + ${this.scrollbarWidth})`);
458
+ }
459
+ }
460
+ setScrollBar() {
461
+ if (this.scrollbarHidden) {
462
+ this.hideScrollbar();
463
+ }
464
+ else {
465
+ this.showScrollbar();
466
+ }
467
+ }
468
+ getScrollbarWidth() {
469
+ /**
470
+ * Browser Scrollbar Widths (2016)
471
+ * OSX (Chrome, Safari, Firefox) - 15px
472
+ * Windows XP (IE7, Chrome, Firefox) - 17px
473
+ * Windows 7 (IE10, IE11, Chrome, Firefox) - 17px
474
+ * Windows 8.1 (IE11, Chrome, Firefox) - 17px
475
+ * Windows 10 (IE11, Chrome, Firefox) - 17px
476
+ * Windows 10 (Edge 12/13) - 12px
477
+ */
478
+ const outer = this._renderer.createElement('div');
479
+ this._renderer.setStyle(outer, 'visibility', 'hidden');
480
+ this._renderer.setStyle(outer, 'width', '100px');
481
+ this._renderer.setStyle(outer, 'msOverflowStyle', 'scrollbar'); // needed for WinJS apps
482
+ // document.body.appendChild(outer);
483
+ this._renderer.appendChild(this._document.body, outer);
484
+ // this._renderer.appendChild(this._renderer.selectRootElement('body'), outer);
485
+ const widthNoScroll = outer.offsetWidth;
486
+ // force scrollbars
487
+ this._renderer.setStyle(outer, 'overflow', 'scroll');
488
+ // add innerdiv
489
+ const inner = this._renderer.createElement('div');
490
+ this._renderer.setStyle(inner, 'width', '100%');
491
+ this._renderer.appendChild(outer, inner);
492
+ const widthWithScroll = inner.offsetWidth;
493
+ // remove divs
494
+ this._renderer.removeChild(this._document.body, outer);
495
+ /**
496
+ * Scrollbar width will be 0 on Mac OS with the
497
+ * default "Only show scrollbars when scrolling" setting (Yosemite and up).
498
+ * setting default width to 20;
499
+ */
500
+ return widthNoScroll - widthWithScroll || 20;
501
+ }
502
+ refreshWrapperDimensions() {
503
+ if (this.wrapper) {
504
+ const height = this._elementRef.nativeElement.style.height ||
505
+ this._elementRef.nativeElement.offsetHeight;
506
+ this._renderer.setStyle(this.wrapper, 'width', '100%');
507
+ this._renderer.setStyle(this.wrapper, 'height', height === 0 ? 'auto' : height + 'px');
508
+ }
509
+ }
510
+ /*
511
+ * The below solution is heavily inspired from
512
+ * https://gist.github.com/andjosh/6764939
513
+ */
514
+ scrollTo(element, to, duration) {
515
+ this.isAnimating = true;
516
+ const start = element.scrollLeft, change = to - start - this.snapOffset, increment = 20;
517
+ let currentTime = 0;
518
+ // t = current time
519
+ // b = start value
520
+ // c = change in value
521
+ // d = duration
522
+ const easeInOutQuad = (t, b, c, d) => {
523
+ t /= d / 2;
524
+ if (t < 1) {
525
+ return (c / 2) * t * t + b;
526
+ }
527
+ t--;
528
+ return (-c / 2) * (t * (t - 2) - 1) + b;
529
+ };
530
+ const animateScroll = () => {
531
+ currentTime += increment;
532
+ element.scrollLeft = easeInOutQuad(currentTime, start, change, duration);
533
+ if (currentTime < duration) {
534
+ this.scrollToTimer = setTimeout(animateScroll, increment);
535
+ }
536
+ else {
537
+ // run one more frame to make sure the animation is fully finished
538
+ setTimeout(() => {
539
+ this.isAnimating = false;
540
+ this.snapAnimationFinished.emit(this.currIndex);
541
+ }, increment);
542
+ }
543
+ };
544
+ animateScroll();
545
+ }
546
+ locateCurrentIndex(snap) {
547
+ this.currentChildWidth((currentChildWidth, nextChildrenWidth, childrenWidth, idx, stop) => {
548
+ if (this._contentRef.nativeElement.scrollLeft >=
549
+ childrenWidth &&
550
+ this._contentRef.nativeElement.scrollLeft <=
551
+ nextChildrenWidth) {
552
+ if (nextChildrenWidth -
553
+ this._contentRef.nativeElement.scrollLeft >
554
+ currentChildWidth / 2 &&
555
+ !this.isScrollReachesRightEnd()) {
556
+ // roll back scrolling
557
+ if (!this.isAnimating) {
558
+ this.currIndex = idx;
559
+ }
560
+ if (snap) {
561
+ this.scrollTo(this._contentRef.nativeElement, childrenWidth, this.snapDuration);
562
+ }
563
+ }
564
+ else if (this._contentRef.nativeElement.scrollLeft !== 0) {
565
+ // forward scrolling
566
+ if (!this.isAnimating) {
567
+ this.currIndex = idx + 1;
568
+ }
569
+ if (snap) {
570
+ this.scrollTo(this._contentRef.nativeElement, childrenWidth + currentChildWidth, this.snapDuration);
571
+ }
572
+ }
573
+ stop();
574
+ }
575
+ else if (idx + 1 === this._children.length - 1) {
576
+ // reaches last index
577
+ if (!this.isAnimating) {
578
+ this.currIndex = idx + 1;
579
+ }
580
+ stop();
581
+ }
582
+ });
583
+ }
584
+ currentChildWidth(cb) {
585
+ let childrenWidth = 0;
586
+ let shouldBreak = false;
587
+ const breakFunc = function () {
588
+ shouldBreak = true;
589
+ };
590
+ const childrenArr = this._children.toArray();
591
+ for (let i = 0; i < childrenArr.length; i++) {
592
+ if (i === childrenArr.length - 1) {
593
+ break;
594
+ }
595
+ if (shouldBreak) {
596
+ break;
597
+ }
598
+ const nextChildrenWidth = childrenWidth +
599
+ childrenArr[i + 1]._elementRef.nativeElement.clientWidth;
600
+ const currentClildWidth = childrenArr[i]._elementRef.nativeElement.clientWidth;
601
+ cb(currentClildWidth, nextChildrenWidth, childrenWidth, i, breakFunc);
602
+ childrenWidth += currentClildWidth;
603
+ }
604
+ }
605
+ toChildrenLocation() {
606
+ let to = 0;
607
+ const childrenArr = this._children.toArray();
608
+ for (let i = 0; i < this.currIndex; i++) {
609
+ to += childrenArr[i]._elementRef.nativeElement.clientWidth;
610
+ }
611
+ return to;
612
+ }
613
+ locateCarouselItem(element) {
614
+ let item = null;
615
+ const childrenArr = this._children.toArray();
616
+ for (let i = 0; i < childrenArr.length; i++) {
617
+ if (element === childrenArr[i]._elementRef.nativeElement) {
618
+ item = childrenArr[i];
619
+ }
620
+ }
621
+ return item;
622
+ }
623
+ markElDimension() {
624
+ if (this.wrapper) {
625
+ this.elWidth = this.wrapper.style.width;
626
+ this.elHeight = this.wrapper.style.height;
627
+ }
628
+ else {
629
+ this.elWidth =
630
+ this._elementRef.nativeElement.style.width ||
631
+ this._elementRef.nativeElement.offsetWidth + 'px';
632
+ this.elHeight =
633
+ this._elementRef.nativeElement.style.height ||
634
+ this._elementRef.nativeElement.offsetHeight + 'px';
635
+ }
636
+ const container = this.wrapper || this.parentNode;
637
+ const containerWidth = container ? container.clientWidth : 0;
638
+ if (this._children.length > 1) {
639
+ this.indexBound = this.maximumIndex(containerWidth, this._children.toArray());
640
+ }
641
+ }
642
+ maximumIndex(containerWidth, childrenElements) {
643
+ let count = 0;
644
+ let childrenWidth = 0;
645
+ for (let i = 0; i <= childrenElements.length; i++) {
646
+ // last N element
647
+ const carouselItemDirective = childrenElements[childrenElements.length - 1 - i];
648
+ if (!carouselItemDirective) {
649
+ break;
650
+ }
651
+ else {
652
+ const nativeElement = carouselItemDirective._elementRef.nativeElement;
653
+ let itemWidth = nativeElement.clientWidth;
654
+ if (itemWidth === 0 && nativeElement.firstElementChild) {
655
+ itemWidth =
656
+ carouselItemDirective._elementRef.nativeElement
657
+ .firstElementChild.clientWidth;
658
+ }
659
+ childrenWidth += itemWidth;
660
+ if (childrenWidth < containerWidth) {
661
+ count++;
662
+ }
663
+ else {
664
+ break;
665
+ }
666
+ }
667
+ }
668
+ return childrenElements.length - count;
669
+ }
670
+ isScrollReachesRightEnd() {
671
+ const scrollLeftPos = this._contentRef.nativeElement.scrollLeft +
672
+ this._contentRef.nativeElement.offsetWidth;
673
+ return scrollLeftPos >= this._contentRef.nativeElement.scrollWidth;
674
+ }
675
+ /**
676
+ * adds a margin right style to the last child element which will resolve the issue
677
+ * of last item gets cutoff.
678
+ */
679
+ adjustMarginToLastChild() {
680
+ // if (this._children && this._children.length > 0 && this.hideScrollbar) {
681
+ // const childrenArr = this._children.toArray();
682
+ // const lastItem = childrenArr[childrenArr.length - 1]._elementRef.nativeElement;
683
+ // if (this.wrapper && childrenArr.length > 1) {
684
+ // this._renderer.setStyle(lastItem, 'margin-right', this.scrollbarWidth);
685
+ // } else {
686
+ // this._renderer.setStyle(lastItem, 'margin-right', 0);
687
+ // }
688
+ // }
689
+ }
690
+ }
691
+ PepCarouselComponent.decorators = [
692
+ { type: Component, args: [{
693
+ selector: 'pep-carousel',
694
694
  template: `
695
695
  <div class="carousel-content" #contentRef>
696
696
  <ng-content></ng-content>
697
697
  </div>
698
- `,
698
+ `,
699
699
  styles: [`
700
700
  :host {
701
701
  overflow: hidden;
@@ -706,54 +706,54 @@ PepCarouselComponent.decorators = [
706
706
  overflow: auto;
707
707
  white-space: nowrap;
708
708
  }
709
- `]
710
- },] }
711
- ];
712
- PepCarouselComponent.ctorParameters = () => [
713
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
714
- { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
715
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
716
- ];
717
- PepCarouselComponent.propDecorators = {
718
- _contentRef: [{ type: ViewChild, args: ['contentRef', { static: true },] }],
719
- _children: [{ type: ContentChildren, args: [PepCarouselItemDirective, { descendants: true },] }],
720
- _pointerEvents: [{ type: HostBinding, args: ['style.pointer-events',] }],
721
- dsInitialized: [{ type: Output }],
722
- indexChanged: [{ type: Output }],
723
- reachesLeftBound: [{ type: Output }],
724
- reachesRightBound: [{ type: Output }],
725
- snapAnimationFinished: [{ type: Output }],
726
- dragStart: [{ type: Output }],
727
- dragEnd: [{ type: Output }],
728
- scrollbarHidden: [{ type: Input, args: ['scrollbarHidden',] }],
729
- disabled: [{ type: Input, args: ['disabled',] }],
730
- xDisabled: [{ type: Input, args: ['xDisabled',] }],
731
- yDisabled: [{ type: Input, args: ['yDisabled',] }],
732
- xWheelEnabled: [{ type: Input, args: ['xWheelEnabled',] }],
733
- dragDisabled: [{ type: Input, args: ['dragDisabled',] }],
734
- snapDisabled: [{ type: Input, args: ['snapDisabled',] }],
735
- snapOffset: [{ type: Input, args: ['snapOffset',] }],
736
- snapDuration: [{ type: Input, args: ['snapDuration',] }],
737
- onWheel: [{ type: HostListener, args: ['wheel', ['$event'],] }],
738
- onWindowResize: [{ type: HostListener, args: ['window:resize',] }]
709
+ `]
710
+ },] }
711
+ ];
712
+ PepCarouselComponent.ctorParameters = () => [
713
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
714
+ { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
715
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
716
+ ];
717
+ PepCarouselComponent.propDecorators = {
718
+ _contentRef: [{ type: ViewChild, args: ['contentRef', { static: true },] }],
719
+ _children: [{ type: ContentChildren, args: [PepCarouselItemDirective, { descendants: true },] }],
720
+ _pointerEvents: [{ type: HostBinding, args: ['style.pointer-events',] }],
721
+ dsInitialized: [{ type: Output }],
722
+ indexChanged: [{ type: Output }],
723
+ reachesLeftBound: [{ type: Output }],
724
+ reachesRightBound: [{ type: Output }],
725
+ snapAnimationFinished: [{ type: Output }],
726
+ dragStart: [{ type: Output }],
727
+ dragEnd: [{ type: Output }],
728
+ scrollbarHidden: [{ type: Input, args: ['scrollbarHidden',] }],
729
+ disabled: [{ type: Input, args: ['disabled',] }],
730
+ xDisabled: [{ type: Input, args: ['xDisabled',] }],
731
+ yDisabled: [{ type: Input, args: ['yDisabled',] }],
732
+ xWheelEnabled: [{ type: Input, args: ['xWheelEnabled',] }],
733
+ dragDisabled: [{ type: Input, args: ['dragDisabled',] }],
734
+ snapDisabled: [{ type: Input, args: ['snapDisabled',] }],
735
+ snapOffset: [{ type: Input, args: ['snapOffset',] }],
736
+ snapDuration: [{ type: Input, args: ['snapDuration',] }],
737
+ onWheel: [{ type: HostListener, args: ['wheel', ['$event'],] }],
738
+ onWindowResize: [{ type: HostListener, args: ['window:resize',] }]
739
739
  };
740
740
 
741
- class PepCarouselModule {
742
- }
743
- PepCarouselModule.decorators = [
744
- { type: NgModule, args: [{
745
- exports: [PepCarouselComponent, PepCarouselItemDirective],
746
- declarations: [PepCarouselComponent, PepCarouselItemDirective],
747
- },] }
741
+ class PepCarouselModule {
742
+ }
743
+ PepCarouselModule.decorators = [
744
+ { type: NgModule, args: [{
745
+ exports: [PepCarouselComponent, PepCarouselItemDirective],
746
+ declarations: [PepCarouselComponent, PepCarouselItemDirective],
747
+ },] }
748
748
  ];
749
749
 
750
- /*
751
- * Public API Surface of carousel
752
- */
750
+ /*
751
+ * Public API Surface of carousel
752
+ */
753
753
  // export * from './carousel.model';
754
754
 
755
- /**
756
- * Generated bundle index. Do not edit.
755
+ /**
756
+ * Generated bundle index. Do not edit.
757
757
  */
758
758
 
759
759
  export { PepCarouselComponent, PepCarouselItemDirective, PepCarouselModule };