@pepperi-addons/ngx-lib 0.2.61-query-builder.2 → 0.3.0

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 (468) hide show
  1. package/README.md +39 -39
  2. package/address/address.component.theme.scss +5 -5
  3. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  4. package/attachment/attachment.component.theme.scss +4 -1
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +9 -9
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +2 -2
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +1 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +1 -1
  18. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js +3 -3
  20. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js +4 -3
  22. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +2 -2
  24. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
  26. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +2 -2
  28. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js +8 -8
  30. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
  32. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  33. package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-image.umd.js +2 -2
  35. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +1 -1
  37. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-list.umd.js +8 -8
  39. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-menu.umd.js +2 -2
  41. package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +1 -1
  42. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +1 -1
  43. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +2 -2
  45. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +21 -18
  47. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +2 -2
  49. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-search.umd.js +1 -1
  51. package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-select.umd.js +2 -2
  53. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +2 -2
  55. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
  57. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +2 -2
  59. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +2 -2
  63. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  64. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +7 -7
  65. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  66. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +2 -2
  67. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  68. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +1 -1
  69. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +1 -1
  70. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +1 -1
  71. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  72. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
  73. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  74. package/bundles/pepperi-addons-ngx-lib.umd.js +35 -35
  75. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  76. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  77. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  78. package/color/color-picker.component.theme.scss +170 -169
  79. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  80. package/core/common/services/addon.service.d.ts +2 -1
  81. package/core/common/services/file.service.d.ts +4 -4
  82. package/date/date.component.theme.scss +163 -0
  83. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  84. package/dialog/dialog.component.theme.scss +5 -5
  85. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  86. package/esm2015/address/address.component.js +2 -2
  87. package/esm2015/address/address.module.js +1 -1
  88. package/esm2015/address/public-api.js +1 -1
  89. package/esm2015/attachment/attachment.component.js +3 -3
  90. package/esm2015/attachment/attachment.module.js +1 -1
  91. package/esm2015/attachment/public-api.js +1 -1
  92. package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
  93. package/esm2015/bread-crumbs/bread-crumbs.model.js +1 -1
  94. package/esm2015/bread-crumbs/bread-crumbs.module.js +1 -1
  95. package/esm2015/bread-crumbs/public-api.js +1 -1
  96. package/esm2015/button/button.component.js +2 -2
  97. package/esm2015/button/button.model.js +1 -1
  98. package/esm2015/button/button.module.js +1 -1
  99. package/esm2015/button/public-api.js +1 -1
  100. package/esm2015/carousel/carousel-item.directive.js +1 -1
  101. package/esm2015/carousel/carousel.component.js +15 -15
  102. package/esm2015/carousel/carousel.module.js +1 -1
  103. package/esm2015/carousel/public-api.js +1 -1
  104. package/esm2015/checkbox/checkbox.component.js +2 -2
  105. package/esm2015/checkbox/checkbox.module.js +1 -1
  106. package/esm2015/checkbox/public-api.js +1 -1
  107. package/esm2015/color/color-picker.component.js +29 -29
  108. package/esm2015/color/color.component.js +2 -2
  109. package/esm2015/color/color.model.js +1 -1
  110. package/esm2015/color/color.module.js +1 -1
  111. package/esm2015/color/public-api.js +1 -1
  112. package/esm2015/core/clipboard/clipboard.directive.js +1 -1
  113. package/esm2015/core/clipboard/clipboard.service.js +1 -1
  114. package/esm2015/core/clipboard/index.js +1 -1
  115. package/esm2015/core/clipboard/public-api.js +1 -1
  116. package/esm2015/core/common/directives/auto-width.directive.js +1 -1
  117. package/esm2015/core/common/directives/button-blur.directive.js +1 -1
  118. package/esm2015/core/common/directives/button-loader.directive.js +1 -1
  119. package/esm2015/core/common/directives/data-qa.directive.js +1 -1
  120. package/esm2015/core/common/directives/index.js +1 -1
  121. package/esm2015/core/common/directives/menu-blur.directive.js +1 -1
  122. package/esm2015/core/common/directives/prevent-multi-click.directive.js +1 -1
  123. package/esm2015/core/common/directives/public-api.js +1 -1
  124. package/esm2015/core/common/index.js +1 -1
  125. package/esm2015/core/common/model/index.js +1 -1
  126. package/esm2015/core/common/model/papi.model.js +1 -1
  127. package/esm2015/core/common/model/public-api.js +1 -1
  128. package/esm2015/core/common/model/utilities.model.js +1 -1
  129. package/esm2015/core/common/model/wapi.model.js +1 -1
  130. package/esm2015/core/common/pipes/common-pipes.js +1 -1
  131. package/esm2015/core/common/pipes/index.js +1 -1
  132. package/esm2015/core/common/pipes/public-api.js +1 -1
  133. package/esm2015/core/common/public-api.js +1 -1
  134. package/esm2015/core/common/services/addon.service.js +19 -4
  135. package/esm2015/core/common/services/color.service.js +1 -1
  136. package/esm2015/core/common/services/cookie.service.js +1 -1
  137. package/esm2015/core/common/services/data-convertor.service.js +1 -1
  138. package/esm2015/core/common/services/file.service.js +9 -9
  139. package/esm2015/core/common/services/index.js +1 -1
  140. package/esm2015/core/common/services/jwt-helper.service.js +1 -1
  141. package/esm2015/core/common/services/public-api.js +1 -1
  142. package/esm2015/core/common/services/session.service.js +1 -1
  143. package/esm2015/core/common/services/utilities.service.js +4 -25
  144. package/esm2015/core/common/services/validator.service.js +1 -1
  145. package/esm2015/core/common/services/window-scrolling.service.js +5 -5
  146. package/esm2015/core/customization/customization.model.js +1 -1
  147. package/esm2015/core/customization/customization.service.js +1 -1
  148. package/esm2015/core/customization/index.js +1 -1
  149. package/esm2015/core/customization/public-api.js +1 -1
  150. package/esm2015/core/http/index.js +1 -1
  151. package/esm2015/core/http/interceptors/error.interceptor.js +1 -1
  152. package/esm2015/core/http/interceptors/index.js +1 -1
  153. package/esm2015/core/http/interceptors/loader.interceptor.js +1 -1
  154. package/esm2015/core/http/interceptors/profiler.interceptor.js +1 -1
  155. package/esm2015/core/http/public-api.js +1 -1
  156. package/esm2015/core/http/services/http.service.js +1 -1
  157. package/esm2015/core/http/services/loader.service.js +1 -1
  158. package/esm2015/core/index.js +1 -1
  159. package/esm2015/core/layout/index.js +1 -1
  160. package/esm2015/core/layout/layout.service.js +1 -1
  161. package/esm2015/core/layout/public-api.js +1 -1
  162. package/esm2015/core/layout/rtl.directive.js +1 -1
  163. package/esm2015/core/portal/attach.directive.js +1 -1
  164. package/esm2015/core/portal/index.js +1 -1
  165. package/esm2015/core/portal/portal.service.js +1 -1
  166. package/esm2015/core/portal/public-api.js +1 -1
  167. package/esm2015/core/portal/target.directive.js +1 -1
  168. package/esm2015/core/public-api.js +1 -1
  169. package/esm2015/core/scroll-to/index.js +1 -1
  170. package/esm2015/core/scroll-to/public-api.js +1 -1
  171. package/esm2015/core/scroll-to/scroll-to.service.js +1 -1
  172. package/esm2015/date/date.component.js +5 -4
  173. package/esm2015/date/date.module.js +1 -1
  174. package/esm2015/date/public-api.js +1 -1
  175. package/esm2015/dialog/default-dialog.component.js +2 -2
  176. package/esm2015/dialog/dialog.component.js +2 -2
  177. package/esm2015/dialog/dialog.model.js +1 -1
  178. package/esm2015/dialog/dialog.module.js +1 -1
  179. package/esm2015/dialog/dialog.service.js +1 -1
  180. package/esm2015/dialog/public-api.js +1 -1
  181. package/esm2015/field-title/field-title.component.js +2 -2
  182. package/esm2015/field-title/field-title.module.js +1 -1
  183. package/esm2015/field-title/public-api.js +1 -1
  184. package/esm2015/files-uploader/files-uploader.component.js +3 -3
  185. package/esm2015/files-uploader/files-uploader.module.js +1 -1
  186. package/esm2015/files-uploader/public-api.js +1 -1
  187. package/esm2015/form/field-generator.component.js +2 -2
  188. package/esm2015/form/form.component.js +2 -2
  189. package/esm2015/form/form.module.js +1 -1
  190. package/esm2015/form/indicators.component.js +2 -2
  191. package/esm2015/form/internal-button.component.js +2 -2
  192. package/esm2015/form/internal-carusel.component.js +2 -2
  193. package/esm2015/form/internal-carusel.service.js +1 -1
  194. package/esm2015/form/internal-list.component.js +2 -2
  195. package/esm2015/form/internal-menu.component.js +2 -2
  196. package/esm2015/form/internal-page.component.js +2 -2
  197. package/esm2015/form/internal-page.service.js +1 -1
  198. package/esm2015/form/public-api.js +1 -1
  199. package/esm2015/group-buttons/group-buttons.component.js +2 -2
  200. package/esm2015/group-buttons/group-buttons.module.js +1 -1
  201. package/esm2015/group-buttons/public-api.js +1 -1
  202. package/esm2015/icon/icon-generated-all.model.js +1 -1
  203. package/esm2015/icon/icon-generated.model.js +1 -1
  204. package/esm2015/icon/icon-registry.service.js +2 -2
  205. package/esm2015/icon/icon.component.js +1 -1
  206. package/esm2015/icon/icon.module.js +1 -1
  207. package/esm2015/icon/public-api.js +1 -1
  208. package/esm2015/image/image.component.js +3 -3
  209. package/esm2015/image/image.module.js +1 -1
  210. package/esm2015/image/public-api.js +1 -1
  211. package/esm2015/images-filmstrip/images-filmstrip.component.js +2 -2
  212. package/esm2015/images-filmstrip/images-filmstrip.module.js +1 -1
  213. package/esm2015/images-filmstrip/public-api.js +1 -1
  214. package/esm2015/list/list-actions.component.js +2 -2
  215. package/esm2015/list/list-carousel.component.js +2 -2
  216. package/esm2015/list/list-chooser.component.js +2 -2
  217. package/esm2015/list/list-pager.component.js +2 -2
  218. package/esm2015/list/list-sorting.component.js +2 -2
  219. package/esm2015/list/list-total.component.js +2 -2
  220. package/esm2015/list/list-views.component.js +2 -2
  221. package/esm2015/list/list.component.js +2 -2
  222. package/esm2015/list/list.model.js +1 -1
  223. package/esm2015/list/list.module.js +1 -1
  224. package/esm2015/list/public-api.js +1 -1
  225. package/esm2015/menu/menu-item.component.js +2 -2
  226. package/esm2015/menu/menu.component.js +2 -2
  227. package/esm2015/menu/menu.model.js +1 -1
  228. package/esm2015/menu/menu.module.js +1 -1
  229. package/esm2015/menu/public-api.js +1 -1
  230. package/esm2015/ngx-lib.module.js +1 -1
  231. package/esm2015/page-layout/page-layout.component.js +2 -2
  232. package/esm2015/page-layout/page-layout.module.js +1 -1
  233. package/esm2015/page-layout/public-api.js +1 -1
  234. package/esm2015/public-api.js +1 -1
  235. package/esm2015/quantity-selector/public-api.js +1 -1
  236. package/esm2015/quantity-selector/quantity-selector-validation.directive.js +1 -1
  237. package/esm2015/quantity-selector/quantity-selector.component.js +3 -3
  238. package/esm2015/quantity-selector/quantity-selector.module.js +1 -1
  239. package/esm2015/quantity-selector/quantity-selector.pipes.js +1 -1
  240. package/esm2015/query-builder/common/model/field.js +2 -0
  241. package/esm2015/query-builder/common/model/filter.js +1 -1
  242. package/esm2015/query-builder/common/model/legacy.js +1 -1
  243. package/esm2015/query-builder/common/model/operator-unit.js +1 -1
  244. package/esm2015/query-builder/common/model/operator.js +1 -1
  245. package/esm2015/query-builder/common/model/structure.js +1 -1
  246. package/esm2015/query-builder/common/model/type-map.js +1 -1
  247. package/esm2015/query-builder/common/model/type.js +1 -1
  248. package/esm2015/query-builder/common/services/output-query.service.js +1 -1
  249. package/esm2015/query-builder/common/services/type-convertor.service.js +1 -1
  250. package/esm2015/query-builder/public-api.js +1 -1
  251. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +13 -12
  252. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +2 -2
  253. package/esm2015/query-builder/query-builder.component.js +2 -2
  254. package/esm2015/query-builder/query-builder.module.js +1 -1
  255. package/esm2015/query-builder/query-builder.service.js +8 -6
  256. package/esm2015/rich-html-textarea/public-api.js +1 -1
  257. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +3 -3
  258. package/esm2015/rich-html-textarea/rich-html-textarea.module.js +1 -1
  259. package/esm2015/search/public-api.js +1 -1
  260. package/esm2015/search/search.component.js +2 -2
  261. package/esm2015/search/search.model.js +1 -1
  262. package/esm2015/search/search.module.js +1 -1
  263. package/esm2015/select/public-api.js +1 -1
  264. package/esm2015/select/select.component.js +3 -3
  265. package/esm2015/select/select.module.js +1 -1
  266. package/esm2015/separator/public-api.js +1 -1
  267. package/esm2015/separator/separator.component.js +3 -3
  268. package/esm2015/separator/separator.module.js +1 -1
  269. package/esm2015/side-bar/public-api.js +1 -1
  270. package/esm2015/side-bar/side-bar.component.js +2 -2
  271. package/esm2015/side-bar/side-bar.model.js +1 -1
  272. package/esm2015/side-bar/side-bar.module.js +1 -1
  273. package/esm2015/signature/public-api.js +1 -1
  274. package/esm2015/signature/signature.component.js +3 -3
  275. package/esm2015/signature/signature.module.js +1 -1
  276. package/esm2015/size-detector/public-api.js +1 -1
  277. package/esm2015/size-detector/size-detector.component.js +2 -2
  278. package/esm2015/size-detector/size-detector.module.js +1 -1
  279. package/esm2015/slider/public-api.js +1 -1
  280. package/esm2015/slider/slider.component.js +3 -3
  281. package/esm2015/slider/slider.module.js +1 -1
  282. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +2 -2
  283. package/esm2015/smart-filters/common/filter-actions.component.js +2 -2
  284. package/esm2015/smart-filters/common/model/base-filter-component.js +1 -1
  285. package/esm2015/smart-filters/common/model/creator.js +1 -1
  286. package/esm2015/smart-filters/common/model/field.js +1 -1
  287. package/esm2015/smart-filters/common/model/filter.js +1 -1
  288. package/esm2015/smart-filters/common/model/operator.js +1 -1
  289. package/esm2015/smart-filters/common/model/type.js +1 -1
  290. package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -2
  291. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +2 -2
  292. package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -2
  293. package/esm2015/smart-filters/public-api.js +1 -1
  294. package/esm2015/smart-filters/smart-filters.component.js +2 -2
  295. package/esm2015/smart-filters/smart-filters.module.js +1 -1
  296. package/esm2015/smart-filters/text-filter/text-filter.component.js +2 -2
  297. package/esm2015/textarea/public-api.js +1 -1
  298. package/esm2015/textarea/textarea.component.js +3 -3
  299. package/esm2015/textarea/textarea.module.js +1 -1
  300. package/esm2015/textbox/public-api.js +1 -1
  301. package/esm2015/textbox/textbox-validation.directive.js +1 -1
  302. package/esm2015/textbox/textbox.component.js +2 -2
  303. package/esm2015/textbox/textbox.module.js +1 -1
  304. package/esm2015/textbox-icon/public-api.js +1 -1
  305. package/esm2015/textbox-icon/textbox-icon.component.js +2 -2
  306. package/esm2015/textbox-icon/textbox-icon.module.js +1 -1
  307. package/esm2015/top-bar/public-api.js +1 -1
  308. package/esm2015/top-bar/top-bar.component.js +2 -2
  309. package/esm2015/top-bar/top-bar.model.js +1 -1
  310. package/esm2015/top-bar/top-bar.module.js +1 -1
  311. package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
  312. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  313. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +2 -2
  314. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  315. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
  316. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  317. package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
  318. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  319. package/fesm2015/pepperi-addons-ngx-lib-carousel.js +14 -14
  320. package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +1 -1
  321. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +1 -1
  322. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  323. package/fesm2015/pepperi-addons-ngx-lib-color.js +29 -29
  324. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  325. package/fesm2015/pepperi-addons-ngx-lib-date.js +4 -3
  326. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  327. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +2 -2
  328. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  329. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
  330. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  331. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +2 -2
  332. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  333. package/fesm2015/pepperi-addons-ngx-lib-form.js +8 -8
  334. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  335. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
  336. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  337. package/fesm2015/pepperi-addons-ngx-lib-icon.js +1 -1
  338. package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
  339. package/fesm2015/pepperi-addons-ngx-lib-image.js +2 -2
  340. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  341. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +1 -1
  342. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  343. package/fesm2015/pepperi-addons-ngx-lib-list.js +8 -8
  344. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  345. package/fesm2015/pepperi-addons-ngx-lib-menu.js +2 -2
  346. package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +1 -1
  347. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +1 -1
  348. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +1 -1
  349. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +2 -2
  350. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  351. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +21 -18
  352. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -1
  353. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +2 -2
  354. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  355. package/fesm2015/pepperi-addons-ngx-lib-search.js +1 -1
  356. package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
  357. package/fesm2015/pepperi-addons-ngx-lib-select.js +2 -2
  358. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  359. package/fesm2015/pepperi-addons-ngx-lib-separator.js +2 -2
  360. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  361. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
  362. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  363. package/fesm2015/pepperi-addons-ngx-lib-signature.js +2 -2
  364. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  365. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +1 -1
  366. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +1 -1
  367. package/fesm2015/pepperi-addons-ngx-lib-slider.js +2 -2
  368. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  369. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +7 -7
  370. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  371. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +2 -2
  372. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  373. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +1 -1
  374. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +1 -1
  375. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +1 -1
  376. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  377. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
  378. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  379. package/fesm2015/pepperi-addons-ngx-lib.js +33 -39
  380. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  381. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  382. package/files-uploader/files-uploader.component.theme.scss +3 -0
  383. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  384. package/form/indicators.component.theme.scss +7 -7
  385. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  386. package/group-buttons/group-buttons.component.theme.scss +15 -15
  387. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  388. package/image/image.component.theme.scss +35 -32
  389. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  390. package/images-filmstrip/images-filmstrip.component.theme.scss +32 -32
  391. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  392. package/list/list-total.component.theme.scss +10 -10
  393. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  394. package/menu/pepperi-addons-ngx-lib-menu.metadata.json +1 -1
  395. package/package.json +1 -1
  396. package/page-layout/page-layout.component.theme.scss +6 -6
  397. package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +1 -1
  398. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  399. package/quantity-selector/quantity-selector.component.theme.scss +77 -77
  400. package/query-builder/common/model/field.d.ts +8 -0
  401. package/query-builder/common/model/legacy.d.ts +4 -1
  402. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -1
  403. package/query-builder/query-builder-item/query-builder-item.component.d.ts +2 -2
  404. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +6 -6
  405. package/query-builder/query-builder.service.d.ts +1 -1
  406. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  407. package/rich-html-textarea/rich-html-textarea.component.theme.scss +244 -241
  408. package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
  409. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  410. package/select/select.component.theme.scss +98 -0
  411. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  412. package/separator/separator.component.theme.scss +2 -2
  413. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  414. package/side-bar/side-bar.component.theme.scss +26 -26
  415. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  416. package/signature/signature.component.theme.scss +11 -7
  417. package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +1 -1
  418. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  419. package/slider/slider.component.theme.scss +67 -66
  420. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  421. package/smart-filters/smart-filters.component.theme.scss +9 -9
  422. package/src/assets/i18n/de.ngx-lib.json +77 -77
  423. package/src/assets/i18n/en.ngx-lib.json +139 -139
  424. package/src/assets/i18n/es.ngx-lib.json +77 -77
  425. package/src/assets/i18n/fr.ngx-lib.json +78 -78
  426. package/src/assets/i18n/he.ngx-lib.json +78 -78
  427. package/src/assets/i18n/hu.ngx-lib.json +78 -78
  428. package/src/assets/i18n/it.ngx-lib.json +78 -78
  429. package/src/assets/i18n/ja.ngx-lib.json +78 -78
  430. package/src/assets/i18n/nl.ngx-lib.json +78 -78
  431. package/src/assets/i18n/pl.ngx-lib.json +78 -78
  432. package/src/assets/i18n/pt.ngx-lib.json +78 -78
  433. package/src/assets/i18n/ru.ngx-lib.json +78 -78
  434. package/src/assets/i18n/zh.ngx-lib.json +76 -76
  435. package/src/assets/images/no-image.svg +41 -41
  436. package/src/core/style/abstracts/breakpoints.scss +37 -37
  437. package/src/core/style/abstracts/functions.scss +439 -439
  438. package/src/core/style/abstracts/mixins.scss +800 -800
  439. package/src/core/style/abstracts/variables.scss +545 -545
  440. package/src/core/style/base/base.scss +874 -874
  441. package/src/core/style/base/grids.scss +4 -4
  442. package/src/core/style/base/helpers.scss +70 -70
  443. package/src/core/style/base/typography.scss +259 -259
  444. package/src/core/style/components/button.scss +346 -346
  445. package/src/core/style/components/checkbox.scss +476 -476
  446. package/src/core/style/components/datetime.scss +182 -182
  447. package/src/core/style/components/file.scss +237 -223
  448. package/src/core/style/components/general.scss +974 -1002
  449. package/src/core/style/components/input.scss +92 -98
  450. package/src/core/style/components/quantity-selector.scss +17 -17
  451. package/src/core/style/components/radio-button.scss +152 -171
  452. package/src/core/style/components/select.scss +187 -187
  453. package/src/core/style/components/signature.scss +14 -14
  454. package/src/core/style/components/splitter.scss +67 -67
  455. package/src/core/style/components/textarea.scss +207 -198
  456. package/src/core/style/themes/black-theme.scss +7 -7
  457. package/src/core/style/themes/default-theme.scss +144 -144
  458. package/src/core/style/themes/light-theme.scss +7 -7
  459. package/src/core/style/themes/nature-theme.scss +7 -7
  460. package/src/core/style/vendors/normalize.scss +497 -497
  461. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  462. package/textarea/textarea.component.theme.scss +3 -2
  463. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  464. package/textbox/textbox.component.theme.scss +3 -3
  465. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +1 -1
  466. package/theming.scss +126 -125
  467. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  468. package/top-bar/top-bar.component.theme.scss +8 -8
@@ -207,7 +207,7 @@ class PepSearchComponent {
207
207
  PepSearchComponent.decorators = [
208
208
  { type: Component, args: [{
209
209
  selector: 'pep-search',
210
- template: "<!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\r\n</ng-container> -->\r\n<ng-container *ngIf=\"shrinkInSmallScreen; then shrinkBlock; else staticBlock\"></ng-container>\r\n<ng-template #shrinkBlock>\r\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\" [ngClass]=\"{ 'pep-floating-search': isFloating}\"\r\n [@fadeInOut]=\"fadeState\">\r\n <div class=\"pep-search-input\">\r\n <ng-container *ngIf=\"type === 'auto-complete'\">\r\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'regular'\">\r\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button *ngIf=\"isFloating && fadeState !='fadeIn' && showFloatSrcBtn\"\r\n class=\"pep-button icon-button {{ sizeType }} weak\" mat-button (click)=\"animateSearch()\">\r\n <mat-icon>\r\n <pep-icon name=\"system_search\"></pep-icon>\r\n </mat-icon>\r\n </button>\r\n</ng-template>\r\n<ng-template #staticBlock>\r\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\">\r\n <div class=\"pep-search-input\">\r\n <ng-container *ngIf=\"type === 'auto-complete'\">\r\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'regular'\">\r\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #autoCompleteBlock>\r\n <mat-form-field appearance=\"outline\">\r\n <!-- (@slideInOut.done)=\"animateSearchDone()\" [@slideInOut]=\"state\" -->\r\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\r\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\" results=\"5\"\r\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" [matAutocomplete]=\"auto\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" class=\"pep-select\">\r\n <mat-option *ngFor=\"let value of autoCompleteValues\" [value]=\"value\" (click)=\"triggerSearch()\">\r\n {{value}}\r\n </mat-option>\r\n <mat-option *ngIf=\"autoCompleteValues?.length > autoCompleteTop - 1\" [value]=\"value\"\r\n (click)=\"triggerSearch()\">{{ 'SEARCH.MORE_RESULTS' | translate }}</mat-option>\r\n </mat-autocomplete>\r\n <div matSuffix class=\"flex align-center\">\r\n <ng-container *ngIf=\"triggerOn === 'click'\">\r\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\r\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </mat-form-field>\r\n</ng-template>\r\n\r\n<ng-template #regularBlock>\r\n <mat-form-field appearance=\"outline\">\r\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\r\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\"\r\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" />\r\n <div matSuffix class=\"flex align-center\">\r\n <ng-container *ngIf=\"triggerOn === 'click'\">\r\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\r\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\r\n </ng-container>\r\n </div>\r\n </mat-form-field>\r\n</ng-template>\r\n\r\n<ng-template #triggerOnClickBlock>\r\n <!-- <ng-container *ngIf=\"(state == 'open' && searchControl.value?.length > 0)\"> -->\r\n <ng-container *ngIf=\"(state == 'open')\">\r\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onClearClicked($event)\">\r\n <pep-icon name=\"system_close\"></pep-icon>\r\n </mat-icon>\r\n <span class=\"pep-text-icon pep-spacing-element pep-v-separator\">|</span>\r\n </ng-container>\r\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onSearchClicked()\">\r\n <pep-icon name=\"system_search\"></pep-icon>\r\n </mat-icon>\r\n</ng-template>\r\n\r\n<ng-template #triggerOnKeydownBlock>\r\n <ng-container *ngIf=\"searchControl.value?.length > 0; then clearBlock; else searchBlock\"></ng-container>\r\n <ng-template #clearBlock>\r\n <button class=\"pep-button regular {{ sizeType }}\" mat-button (click)=\"onClearClicked($event)\">\r\n <mat-icon>\r\n <pep-icon name=\"system_close\"></pep-icon>\r\n </mat-icon>\r\n </button>\r\n </ng-template>\r\n <ng-template #searchBlock>\r\n <mat-icon class=\"pep-text-icon\">\r\n <pep-icon name=\"system_search\"></pep-icon>\r\n </mat-icon>\r\n </ng-template>\r\n</ng-template>",
210
+ template: "<!-- <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false, hasParent: false }\">\n</ng-container> -->\n<ng-container *ngIf=\"shrinkInSmallScreen; then shrinkBlock; else staticBlock\"></ng-container>\n<ng-template #shrinkBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\" [ngClass]=\"{ 'pep-floating-search': isFloating}\"\n [@fadeInOut]=\"fadeState\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n <button *ngIf=\"isFloating && fadeState !='fadeIn' && showFloatSrcBtn\"\n class=\"pep-button icon-button {{ sizeType }} weak\" mat-button (click)=\"animateSearch()\">\n <mat-icon>\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </button>\n</ng-template>\n<ng-template #staticBlock>\n <div pepRtlClass class=\"pep-search-container {{ sizeType }}\">\n <div class=\"pep-search-input\">\n <ng-container *ngIf=\"type === 'auto-complete'\">\n <ng-container *ngTemplateOutlet=\"autoCompleteBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"type === 'regular'\">\n <ng-container *ngTemplateOutlet=\"regularBlock\"></ng-container>\n </ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #autoCompleteBlock>\n <mat-form-field appearance=\"outline\">\n <!-- (@slideInOut.done)=\"animateSearchDone()\" [@slideInOut]=\"state\" -->\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\" results=\"5\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" [matAutocomplete]=\"auto\" />\n <mat-autocomplete #auto=\"matAutocomplete\" class=\"pep-select\">\n <mat-option *ngFor=\"let value of autoCompleteValues\" [value]=\"value\" (click)=\"triggerSearch()\">\n {{value}}\n </mat-option>\n <mat-option *ngIf=\"autoCompleteValues?.length > autoCompleteTop - 1\" [value]=\"value\"\n (click)=\"triggerSearch()\">{{ 'SEARCH.MORE_RESULTS' | translate }}</mat-option>\n </mat-autocomplete>\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n\n<ng-template #regularBlock>\n <mat-form-field appearance=\"outline\">\n <input #searchInput class=\"body-sm pep-search-input\" matInput autocomplete=\"off\"\n [ngStyle]=\"{ textAlign: isRtl ? 'right' : 'left' }\" type=\"text\" (keyup.enter)=\"onSearch($event)\"\n [formControl]=\"searchControl\" placeholder=\"{{ 'SEARCH.HINT' | translate }}...\" />\n <div matSuffix class=\"flex align-center\">\n <ng-container *ngIf=\"triggerOn === 'click'\">\n <ng-container *ngTemplateOutlet=\"triggerOnClickBlock\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"triggerOn === 'keydown'\">\n <ng-container *ngTemplateOutlet=\"triggerOnKeydownBlock\"></ng-container>\n </ng-container>\n </div>\n </mat-form-field>\n</ng-template>\n\n<ng-template #triggerOnClickBlock>\n <!-- <ng-container *ngIf=\"(state == 'open' && searchControl.value?.length > 0)\"> -->\n <ng-container *ngIf=\"(state == 'open')\">\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onClearClicked($event)\">\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n <span class=\"pep-text-icon pep-spacing-element pep-v-separator\">|</span>\n </ng-container>\n <mat-icon class=\"pep-text-icon pep-pointer\" (click)=\"onSearchClicked()\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n</ng-template>\n\n<ng-template #triggerOnKeydownBlock>\n <ng-container *ngIf=\"searchControl.value?.length > 0; then clearBlock; else searchBlock\"></ng-container>\n <ng-template #clearBlock>\n <button class=\"pep-button regular {{ sizeType }}\" mat-button (click)=\"onClearClicked($event)\">\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </button>\n </ng-template>\n <ng-template #searchBlock>\n <mat-icon class=\"pep-text-icon\">\n <pep-icon name=\"system_search\"></pep-icon>\n </mat-icon>\n </ng-template>\n</ng-template>",
211
211
  animations: [
212
212
  trigger('slideInOut', [
213
213
  state('close', style({
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-search.js","sources":["../../../projects/ngx-lib/search/search.component.ts","../../../projects/ngx-lib/search/search.module.ts","../../../projects/ngx-lib/search/public-api.ts","../../../projects/ngx-lib/search/pepperi-addons-ngx-lib-search.ts"],"sourcesContent":["import {\r\n Component,\r\n OnInit,\r\n Injectable,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n} from '@angular/animations';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n PepLayoutService,\r\n PepScreenSizeType,\r\n PepSizeType,\r\n} from '@pepperi-addons/ngx-lib';\r\nimport { debounceTime, takeUntil } from 'rxjs/operators';\r\nimport {\r\n IPepSearchClickEvent,\r\n IPepSearchAutocompleteChangeEvent,\r\n IPepSearchStateChangeEvent,\r\n PepSearchType,\r\n PepSearchTriggerType,\r\n} from './search.model';\r\n\r\n@Component({\r\n selector: 'pep-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.scss'],\r\n animations: [\r\n trigger('slideInOut', [\r\n state(\r\n 'close',\r\n style({\r\n width: '0',\r\n padding: '0',\r\n border: 'none',\r\n })\r\n ),\r\n state(\r\n 'open',\r\n style({\r\n width: 'inherit',\r\n })\r\n ),\r\n transition('close => open', animate('500ms ease-in-out')),\r\n transition('open => close', animate('500ms ease-in-out')),\r\n ]),\r\n trigger('fadeInOut', [\r\n state(\r\n 'fadeOut',\r\n style({\r\n opacity: 0,\r\n width: '1px',\r\n })\r\n ),\r\n state(\r\n 'fadeIn',\r\n style({\r\n opacity: 1,\r\n width: '100%',\r\n })\r\n ),\r\n transition(\r\n 'fadeOut => fadeIn',\r\n animate(300, style({ opacity: 1, width: '100%' }))\r\n ),\r\n transition(\r\n 'fadeIn => fadeOut',\r\n animate(350, style({ opacity: 0, width: '1px' }))\r\n ),\r\n ]),\r\n ],\r\n})\r\n@Injectable()\r\nexport class PepSearchComponent implements OnInit, OnDestroy {\r\n @Input() triggerOn: PepSearchTriggerType = 'click';\r\n @Input() autoCompleteTop = 20;\r\n private _autoCompleteValues = [];\r\n @Input()\r\n set autoCompleteValues(val: any[]) {\r\n this.type = 'auto-complete';\r\n this._autoCompleteValues = val;\r\n }\r\n get autoCompleteValues(): any[] {\r\n return this._autoCompleteValues;\r\n }\r\n\r\n @Input() shrinkInSmallScreen = true;\r\n\r\n @Input()\r\n set value(val: string) {\r\n this.createSearchControlIfNotExist();\r\n this.searchControl.setValue(val);\r\n }\r\n get value(): string {\r\n return this.searchControl.value || '';\r\n }\r\n\r\n private _searchControl: FormControl = null;\r\n @Input()\r\n set searchControl(ctrl: FormControl) {\r\n this._searchControl = ctrl;\r\n }\r\n get searchControl(): FormControl {\r\n return this._searchControl;\r\n }\r\n\r\n private _useAsWebComponent = false;\r\n @Input()\r\n set useAsWebComponent(value: boolean) {\r\n if (value) {\r\n this.exportFunctionsOnHostElement();\r\n }\r\n }\r\n get useAsWebComponent(): boolean {\r\n return this._useAsWebComponent;\r\n }\r\n\r\n /**\r\n * The size of the button.\r\n *\r\n * @type {PepSizeType}\r\n * @memberof PepButtonComponent\r\n */\r\n @Input() sizeType: PepSizeType = 'md';\r\n\r\n @Output()\r\n search: EventEmitter<IPepSearchClickEvent> = new EventEmitter<IPepSearchClickEvent>();\r\n @Output()\r\n autocompleteChange: EventEmitter<IPepSearchAutocompleteChangeEvent> = new EventEmitter<IPepSearchAutocompleteChangeEvent>();\r\n @Output()\r\n stateChange: EventEmitter<IPepSearchStateChangeEvent> = new EventEmitter<IPepSearchStateChangeEvent>();\r\n\r\n @ViewChild('searchInput') searchInput: ElementRef;\r\n\r\n private readonly _destroyed = new Subject<void>();\r\n type: PepSearchType = 'regular';\r\n fadeState: 'fadeOut' | 'fadeIn';\r\n state: 'open' | 'close' = 'open';\r\n lastValue = null;\r\n showFloatSrcBtn = true;\r\n isRtl = false;\r\n isFloating = false;\r\n screenSize: PepScreenSizeType;\r\n\r\n constructor(\r\n private hostElement: ElementRef,\r\n private layoutService: PepLayoutService\r\n ) {\r\n //\r\n }\r\n\r\n ngOnInit(): void {\r\n this.layoutService.onResize$.pipe().subscribe((size) => {\r\n this.screenSize = size;\r\n\r\n if (this.shrinkInSmallScreen) {\r\n this.isFloating = this.screenSize > PepScreenSizeType.SM;\r\n }\r\n\r\n // Just for the smoote animation\r\n if (this.isFloating) {\r\n this.showFloatSrcBtn = false;\r\n\r\n this.showFloatingButton();\r\n } else {\r\n this.fadeState = 'fadeIn';\r\n }\r\n });\r\n\r\n this.isRtl = this.layoutService.isRtl();\r\n this.createSearchControlIfNotExist();\r\n\r\n this.searchControl.valueChanges\r\n .pipe(debounceTime(1000), takeUntil(this._destroyed))\r\n .subscribe((newValue) => {\r\n if (this.type === 'auto-complete') {\r\n this.autoCompleteValues = [];\r\n if (\r\n newValue &&\r\n newValue.length > 2 &&\r\n newValue !== this.lastValue\r\n ) {\r\n this.autocompleteChange.emit({\r\n value: newValue,\r\n top: this.autoCompleteTop,\r\n });\r\n }\r\n } else if (this.type === 'regular') {\r\n if (this.triggerOn === 'keydown') {\r\n this.emitSearchClick();\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyed.next();\r\n this._destroyed.complete();\r\n }\r\n\r\n private exportFunctionsOnHostElement() {\r\n // This is for web component usage for use those functions.\r\n this.hostElement.nativeElement.initSearch = this.initSearch.bind(this);\r\n }\r\n\r\n private createSearchControlIfNotExist(): void {\r\n if (!this.searchControl) {\r\n this.searchControl = new FormControl();\r\n }\r\n }\r\n\r\n private blur() {\r\n setTimeout(() => {\r\n this.searchInput.nativeElement.blur();\r\n }, 0);\r\n }\r\n\r\n private showFloatingButton() {\r\n this.fadeState = 'fadeOut';\r\n\r\n setTimeout(() => {\r\n this.stateChange.emit({ state: 'close' });\r\n this.showFloatSrcBtn = true;\r\n }, 500);\r\n\r\n // close the phone keyboard\r\n this.blur();\r\n }\r\n\r\n initSearch() {\r\n this.lastValue = null;\r\n this.searchControl.setValue('');\r\n }\r\n\r\n onClearClicked(event: any) {\r\n if (this.type === 'auto-complete') {\r\n this.autoCompleteValues = [];\r\n }\r\n\r\n this.initSearch();\r\n this.search.emit({ value: '' });\r\n\r\n event.preventDefault();\r\n\r\n if (this.isFloating) {\r\n this.showFloatingButton();\r\n }\r\n }\r\n\r\n onSearchClicked() {\r\n if (this.isFloating) {\r\n this.triggerSearch();\r\n } else {\r\n if (this.state === 'open') {\r\n this.triggerSearch();\r\n } else {\r\n this.state = 'open';\r\n }\r\n }\r\n }\r\n\r\n onSearch(event: Event) {\r\n // Stop the event propagation - cause we don't want fire two events.\r\n event.stopPropagation();\r\n this.triggerSearch();\r\n }\r\n\r\n triggerSearch() {\r\n if (this.type === 'auto-complete') {\r\n this.autoCompleteValues = [];\r\n }\r\n\r\n this.blur();\r\n this.emitSearchClick();\r\n }\r\n\r\n animateSearch() {\r\n if (this.state === 'open') {\r\n this.fadeState =\r\n this.fadeState === 'fadeOut' ? 'fadeIn' : 'fadeOut';\r\n if (this.fadeState === 'fadeIn') {\r\n this.stateChange.emit({ state: 'open' });\r\n this.showFloatSrcBtn = false;\r\n this.searchInput.nativeElement.focus();\r\n }\r\n } else {\r\n this.fadeState = 'fadeIn';\r\n }\r\n }\r\n\r\n // do the emit just when done because of the line break when closing the search\r\n // component and showen all other components before\r\n animateSearchDone() {\r\n if (this.state !== 'open') {\r\n this.stateChange.emit({ state: 'close' });\r\n }\r\n }\r\n\r\n emitSearchClick() {\r\n const value = this.searchControl.value;\r\n\r\n if (value !== this.lastValue) {\r\n this.lastValue = value;\r\n this.search.emit({ value });\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\r\nimport {\r\n PepIconModule,\r\n PepIconRegistry,\r\n pepIconSystemClose,\r\n pepIconSystemSearch,\r\n} from '@pepperi-addons/ngx-lib/icon';\r\n\r\nimport { PepSearchComponent } from './search.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n // Material modules,\r\n MatCommonModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n // ngx-lib modules\r\n PepNgxLibModule,\r\n PepIconModule,\r\n MatInputModule,\r\n ],\r\n exports: [PepSearchComponent],\r\n declarations: [PepSearchComponent],\r\n})\r\nexport class PepSearchModule {\r\n constructor(private pepIconRegistry: PepIconRegistry) {\r\n this.pepIconRegistry.registerIcons([\r\n pepIconSystemClose,\r\n pepIconSystemSearch,\r\n ]);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-lib/search\r\n */\r\nexport * from './search.module';\r\nexport * from './search.model';\r\nexport * from './search.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-search.js","sources":["../../../projects/ngx-lib/search/search.component.ts","../../../projects/ngx-lib/search/search.module.ts","../../../projects/ngx-lib/search/public-api.ts","../../../projects/ngx-lib/search/pepperi-addons-ngx-lib-search.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n Injectable,\n Input,\n OnDestroy,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { FormControl } from '@angular/forms';\nimport {\n PepLayoutService,\n PepScreenSizeType,\n PepSizeType,\n} from '@pepperi-addons/ngx-lib';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport {\n IPepSearchClickEvent,\n IPepSearchAutocompleteChangeEvent,\n IPepSearchStateChangeEvent,\n PepSearchType,\n PepSearchTriggerType,\n} from './search.model';\n\n@Component({\n selector: 'pep-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n animations: [\n trigger('slideInOut', [\n state(\n 'close',\n style({\n width: '0',\n padding: '0',\n border: 'none',\n })\n ),\n state(\n 'open',\n style({\n width: 'inherit',\n })\n ),\n transition('close => open', animate('500ms ease-in-out')),\n transition('open => close', animate('500ms ease-in-out')),\n ]),\n trigger('fadeInOut', [\n state(\n 'fadeOut',\n style({\n opacity: 0,\n width: '1px',\n })\n ),\n state(\n 'fadeIn',\n style({\n opacity: 1,\n width: '100%',\n })\n ),\n transition(\n 'fadeOut => fadeIn',\n animate(300, style({ opacity: 1, width: '100%' }))\n ),\n transition(\n 'fadeIn => fadeOut',\n animate(350, style({ opacity: 0, width: '1px' }))\n ),\n ]),\n ],\n})\n@Injectable()\nexport class PepSearchComponent implements OnInit, OnDestroy {\n @Input() triggerOn: PepSearchTriggerType = 'click';\n @Input() autoCompleteTop = 20;\n private _autoCompleteValues = [];\n @Input()\n set autoCompleteValues(val: any[]) {\n this.type = 'auto-complete';\n this._autoCompleteValues = val;\n }\n get autoCompleteValues(): any[] {\n return this._autoCompleteValues;\n }\n\n @Input() shrinkInSmallScreen = true;\n\n @Input()\n set value(val: string) {\n this.createSearchControlIfNotExist();\n this.searchControl.setValue(val);\n }\n get value(): string {\n return this.searchControl.value || '';\n }\n\n private _searchControl: FormControl = null;\n @Input()\n set searchControl(ctrl: FormControl) {\n this._searchControl = ctrl;\n }\n get searchControl(): FormControl {\n return this._searchControl;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n /**\n * The size of the button.\n *\n * @type {PepSizeType}\n * @memberof PepButtonComponent\n */\n @Input() sizeType: PepSizeType = 'md';\n\n @Output()\n search: EventEmitter<IPepSearchClickEvent> = new EventEmitter<IPepSearchClickEvent>();\n @Output()\n autocompleteChange: EventEmitter<IPepSearchAutocompleteChangeEvent> = new EventEmitter<IPepSearchAutocompleteChangeEvent>();\n @Output()\n stateChange: EventEmitter<IPepSearchStateChangeEvent> = new EventEmitter<IPepSearchStateChangeEvent>();\n\n @ViewChild('searchInput') searchInput: ElementRef;\n\n private readonly _destroyed = new Subject<void>();\n type: PepSearchType = 'regular';\n fadeState: 'fadeOut' | 'fadeIn';\n state: 'open' | 'close' = 'open';\n lastValue = null;\n showFloatSrcBtn = true;\n isRtl = false;\n isFloating = false;\n screenSize: PepScreenSizeType;\n\n constructor(\n private hostElement: ElementRef,\n private layoutService: PepLayoutService\n ) {\n //\n }\n\n ngOnInit(): void {\n this.layoutService.onResize$.pipe().subscribe((size) => {\n this.screenSize = size;\n\n if (this.shrinkInSmallScreen) {\n this.isFloating = this.screenSize > PepScreenSizeType.SM;\n }\n\n // Just for the smoote animation\n if (this.isFloating) {\n this.showFloatSrcBtn = false;\n\n this.showFloatingButton();\n } else {\n this.fadeState = 'fadeIn';\n }\n });\n\n this.isRtl = this.layoutService.isRtl();\n this.createSearchControlIfNotExist();\n\n this.searchControl.valueChanges\n .pipe(debounceTime(1000), takeUntil(this._destroyed))\n .subscribe((newValue) => {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n if (\n newValue &&\n newValue.length > 2 &&\n newValue !== this.lastValue\n ) {\n this.autocompleteChange.emit({\n value: newValue,\n top: this.autoCompleteTop,\n });\n }\n } else if (this.type === 'regular') {\n if (this.triggerOn === 'keydown') {\n this.emitSearchClick();\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.initSearch = this.initSearch.bind(this);\n }\n\n private createSearchControlIfNotExist(): void {\n if (!this.searchControl) {\n this.searchControl = new FormControl();\n }\n }\n\n private blur() {\n setTimeout(() => {\n this.searchInput.nativeElement.blur();\n }, 0);\n }\n\n private showFloatingButton() {\n this.fadeState = 'fadeOut';\n\n setTimeout(() => {\n this.stateChange.emit({ state: 'close' });\n this.showFloatSrcBtn = true;\n }, 500);\n\n // close the phone keyboard\n this.blur();\n }\n\n initSearch() {\n this.lastValue = null;\n this.searchControl.setValue('');\n }\n\n onClearClicked(event: any) {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.initSearch();\n this.search.emit({ value: '' });\n\n event.preventDefault();\n\n if (this.isFloating) {\n this.showFloatingButton();\n }\n }\n\n onSearchClicked() {\n if (this.isFloating) {\n this.triggerSearch();\n } else {\n if (this.state === 'open') {\n this.triggerSearch();\n } else {\n this.state = 'open';\n }\n }\n }\n\n onSearch(event: Event) {\n // Stop the event propagation - cause we don't want fire two events.\n event.stopPropagation();\n this.triggerSearch();\n }\n\n triggerSearch() {\n if (this.type === 'auto-complete') {\n this.autoCompleteValues = [];\n }\n\n this.blur();\n this.emitSearchClick();\n }\n\n animateSearch() {\n if (this.state === 'open') {\n this.fadeState =\n this.fadeState === 'fadeOut' ? 'fadeIn' : 'fadeOut';\n if (this.fadeState === 'fadeIn') {\n this.stateChange.emit({ state: 'open' });\n this.showFloatSrcBtn = false;\n this.searchInput.nativeElement.focus();\n }\n } else {\n this.fadeState = 'fadeIn';\n }\n }\n\n // do the emit just when done because of the line break when closing the search\n // component and showen all other components before\n animateSearchDone() {\n if (this.state !== 'open') {\n this.stateChange.emit({ state: 'close' });\n }\n }\n\n emitSearchClick() {\n const value = this.searchControl.value;\n\n if (value !== this.lastValue) {\n this.lastValue = value;\n this.search.emit({ value });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemClose,\n pepIconSystemSearch,\n} from '@pepperi-addons/ngx-lib/icon';\n\nimport { PepSearchComponent } from './search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n // Material modules,\n MatCommonModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n MatInputModule,\n ],\n exports: [PepSearchComponent],\n declarations: [PepSearchComponent],\n})\nexport class PepSearchModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconSystemClose,\n pepIconSystemSearch,\n ]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/search\n */\nexport * from './search.module';\nexport * from './search.model';\nexport * from './search.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -187,9 +187,9 @@ class PepSelectComponent {
187
187
  PepSelectComponent.decorators = [
188
188
  { type: Component, args: [{
189
189
  selector: 'pep-select',
190
- template: "<ng-container [formGroup]=\"form\">\r\n <ng-template #pepTemplate>\r\n <ng-container *ngIf=\"type == 'multi'; then multiSelectBlock; else regularSelectBlock\"></ng-container>\r\n <ng-template #regularSelectBlock>\r\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment === 'right' ? 'rtl' : 'ltr' }}\">\r\n <mat-select #select [required]=\"mandatory ? mandatory : undefined\" matInput disableOptionCentering\r\n class=\"body-sm text-align-{{ xAlignment }}\" [id]=\"key\"\r\n [ngClass]=\"{'right-alignment': xAlignment === 'right'}\"\r\n [placeholder]=\"disabled || readonly ? '' : ('SELECT.HINT' | translate)\"\r\n [(ngModel)]=\"selectedValueModel\" [ngModelOptions]=\"{standalone: true}\" [disabled]=\"disabled\"\r\n (selectionChange)=\"selectionChange($event)\" (openedChange)=\"openedChange($event)\"\r\n title=\"{{ fieldFormattedValue }}\">\r\n <mat-option *ngIf=\"emptyOption\" value=\"\" [title]=\"'LIST.NONE' | translate\">{{ 'LIST.NONE' |\r\n translate }}</mat-option>\r\n <mat-option *ngFor=\"let option of options\" [value]=\"option.key\" [title]=\"option.value\">{{\r\n option.value }}</mat-option>\r\n </mat-select>\r\n <mat-error>\r\n <span class=\"body-xs\" [title]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"\r\n [innerText]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"></span>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n <ng-template #multiSelectBlock>\r\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment === 'right' ? 'rtl' : 'ltr' }}\">\r\n <mat-select #select multiple [required]=\"mandatory ? mandatory : undefined\" matInput\r\n disableOptionCentering class=\"body-sm text-align-{{ xAlignment }}\" [id]=\"key\"\r\n [ngClass]=\"{'right-alignment': xAlignment === 'right'}\"\r\n [placeholder]=\"disabled || readonly ? '' : ('SELECT.HINT' | translate)\"\r\n [(ngModel)]=\"selectedValuesModel\" [ngModelOptions]=\"{standalone: true}\" [disabled]=\"disabled\"\r\n (openedChange)=\"openedChange($event)\" title=\"{{ fieldFormattedValue }}\">\r\n <mat-option *ngFor=\"let option of options\" [value]=\"option.key\" [title]=\"option.value\">{{\r\n option.value }}</mat-option>\r\n </mat-select>\r\n <mat-error><span class=\"body-xs\" [title]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"\r\n [innerText]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"> </span>\r\n </mat-error>\r\n </mat-form-field>\r\n </ng-template>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"layoutType === 'form'\">\r\n <pep-field-title *ngIf=\"!parentFieldKey && renderTitle\" [label]=\"label\" [mandatory]=\"mandatory\"\r\n [disabled]=\"disabled\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\r\n </pep-field-title>\r\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"layoutType === 'card'\">\r\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\r\n <ng-template #editBlock>\r\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\r\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\r\n </div>\r\n </ng-template>\r\n <ng-template #readOnlyBlock>\r\n <div class=\"pep-card-input card-flex-container\"\r\n [ngClass]=\"{'one-row': rowSpan === 1, 'pep-button weak': isActive && !disabled}\"\r\n [class]=\"'text-align-' + xAlignment\" (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\r\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\r\n }}&nbsp;</span>\r\n <span [id]=\"key\" title=\"{{ fieldFormattedValue }}\" class=\"body-sm value\">{{ fieldFormattedValue\r\n }}</span>\r\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\r\n <mat-icon>\r\n <pep-icon name=\"system_edit\">\r\n </pep-icon>\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"layoutType === 'table'\">\r\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\r\n <ng-template #selectedBlock>\r\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\r\n </ng-template>\r\n <ng-template #notSelectedBlock>\r\n <span [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{readonly: disabled}\"\r\n title=\"{{ fieldFormattedValue }}\">{{ fieldFormattedValue }}</span>\r\n </ng-template>\r\n </ng-container>\r\n</ng-container>",
190
+ template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate>\n <ng-container *ngIf=\"type == 'multi'; then multiSelectBlock; else regularSelectBlock\"></ng-container>\n <ng-template #regularSelectBlock>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment === 'right' ? 'rtl' : 'ltr' }}\">\n <mat-select #select [required]=\"mandatory ? mandatory : undefined\" matInput disableOptionCentering\n class=\"body-sm text-align-{{ xAlignment }}\" [id]=\"key\"\n [ngClass]=\"{'right-alignment': xAlignment === 'right'}\"\n [placeholder]=\"disabled || readonly ? '' : ('SELECT.HINT' | translate)\"\n [(ngModel)]=\"selectedValueModel\" [ngModelOptions]=\"{standalone: true}\" [disabled]=\"disabled\"\n (selectionChange)=\"selectionChange($event)\" (openedChange)=\"openedChange($event)\"\n title=\"{{ fieldFormattedValue }}\">\n <mat-option *ngIf=\"emptyOption\" value=\"\" [title]=\"'LIST.NONE' | translate\">{{ 'LIST.NONE' |\n translate }}</mat-option>\n <mat-option *ngFor=\"let option of options\" [value]=\"option.key\" [title]=\"option.value\">{{\n option.value }}</mat-option>\n </mat-select>\n <mat-error>\n <span class=\"body-xs\" [title]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"\n [innerText]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"></span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n <ng-template #multiSelectBlock>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment === 'right' ? 'rtl' : 'ltr' }}\">\n <mat-select #select multiple [required]=\"mandatory ? mandatory : undefined\" matInput\n disableOptionCentering class=\"body-sm text-align-{{ xAlignment }}\" [id]=\"key\"\n [ngClass]=\"{'right-alignment': xAlignment === 'right'}\"\n [placeholder]=\"disabled || readonly ? '' : ('SELECT.HINT' | translate)\"\n [(ngModel)]=\"selectedValuesModel\" [ngModelOptions]=\"{standalone: true}\" [disabled]=\"disabled\"\n (openedChange)=\"openedChange($event)\" title=\"{{ fieldFormattedValue }}\">\n <mat-option *ngFor=\"let option of options\" [value]=\"option.key\" [title]=\"option.value\">{{\n option.value }}</mat-option>\n </mat-select>\n <mat-error><span class=\"body-xs\" [title]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"\n [innerText]=\"'MESSAGES.ERROR_IS_REQUIRED' | translate: {field: label}\"> </span>\n </mat-error>\n </mat-form-field>\n </ng-template>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <pep-field-title *ngIf=\"!parentFieldKey && renderTitle\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <div [ngClass]=\"{'one-row': rowSpan === 1}\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </div>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-card-input card-flex-container\"\n [ngClass]=\"{'one-row': rowSpan === 1, 'pep-button weak': isActive && !disabled}\"\n [class]=\"'text-align-' + xAlignment\" (click)=\"!disabled ? cardTemplateClicked($event) : ''\">\n <span *ngIf=\"showTitle && label != ''\" class=\"body-xs title\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ fieldFormattedValue }}\" class=\"body-sm value\">{{ fieldFormattedValue\n }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <span [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{readonly: disabled}\"\n title=\"{{ fieldFormattedValue }}\">{{ fieldFormattedValue }}</span>\n </ng-template>\n </ng-container>\n</ng-container>",
191
191
  changeDetection: ChangeDetectionStrategy.OnPush,
192
- styles: [":host{height:inherit;display:grid}:host>*{align-self:center}", ""]
192
+ styles: [":host{height:inherit;display:grid}:host>*{align-self:center}::ng-deep .mat-select-trigger{display:flex;align-content:center;height:inherit}::ng-deep .mat-select-value{max-width:inherit;display:grid;align-self:center}::ng-deep .mat-select-arrow{width:1.5rem;height:1.5rem;margin:0;display:flex;align-items:center;justify-content:center}::ng-deep .mat-select-arrow:after{content:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzQiCiAgIHZlcnNpb249IjEuMSIKICAgdmlld0JveD0iMCAwIDI0IDI0IgogICBoZWlnaHQ9IjE2IgogICB3aWR0aD0iMTYiPgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTEwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzOCIgLz4KICA8cGF0aAogICAgIGlkPSJwYXRoMiIKICAgICBkPSJNNS44MDAzMjE0OCw5LjI4Njc0MzU0IEwxMS4yNTQyODI0LDEzLjIwMjc1ODMgQzExLjY2NjEzMDksMTMuNTg1MDgzIDEyLjMzMzg2OTEsMTMuNTg1MDgzIDEyLjc0NTcxNzYsMTMuMjAyNzU4MyBMMTguMTk5Njc4NSw5LjI4Njc0MzU0IEMxOC42MTE1MjcsOC45MDQ0MTg4MiAxOS4yNzkyNjUyLDguOTA0NDE4ODIgMTkuNjkxMTEzNyw5LjI4Njc0MzU0IEMyMC4xMDI5NjIxLDkuNjY5MDY4MjYgMjAuMTAyOTYyMSwxMC4yODg5MzkxIDE5LjY5MTExMzcsMTAuNjcxMjYzOCBMMTMuNDkxNDM1MSwxNi40MjY1MTI5IEMxMi42Njc3MzgzLDE3LjE5MTE2MjQgMTEuMzMyMjYxNywxNy4xOTExNjI0IDEwLjUwODU2NDksMTYuNDI2NTEyOSBMNC4zMDg4ODYzMywxMC42NzEyNjM4IEMzLjg5NzAzNzg5LDEwLjI4ODkzOTEgMy44OTcwMzc4OSw5LjY2OTA2ODI2IDQuMzA4ODg2MzMsOS4yODY3NDM1NCBDNC43MjA3MzQ3OCw4LjkwNDQxODgyIDUuMzg4NDczMDMsOC45MDQ0MTg4MiA1LjgwMDMyMTQ4LDkuMjg2NzQzNTQgWiIKICAgICBmaWxsLXJ1bGU9ImV2ZW5vZGQiCiAgICAgZmlsbC1vcGFjaXR5PSIuNSIgLz4KPC9zdmc+Cg==\");cursor:pointer;width:1rem;height:1rem}::ng-deep .mat-select-disabled{pointer-events:none}::ng-deep .mat-select-disabled .mat-select-arrow:after{content:none}::ng-deep .mat-select-panel .mat-pseudo-checkbox{width:1rem;height:1rem;border-radius:.25rem}::ng-deep .mat-select-panel .mat-pseudo-checkbox:after{width:0;height:0}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked{content:url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNy41MTExNjM5LDcuMDAwNjI5NjggQzE3LjEzNTI3Myw3LjAxMDk5Mjg1IDE2Ljc3OTE1ODIsNy4xNjgzMTkwOSAxNi41MTYzMjg4LDcuNDM3NzU0MjEgQzE0LjIyNjEzMzksOS43MzI2NTE5MiAxMi4xMzU2Nzc4LDExLjk4MjQwMjIgOS45MzY5MTEzNSwxNC4yMjgxOTczIEw3LjM1MTc4NzA4LDEyLjE1NTYxMiBDNy4wNTIyMDMwMywxMS45MTUzODI5IDYuNjY5NzI4MTIsMTEuODA0MjI0MiA2LjI4ODE2OTY2LDExLjg0NjYyMjMgQzUuOTA1Njk0NzUsMTEuODg5MDE1NSA1LjU1NzEyODY0LDEyLjA4MTIwMDggNS4zMTY4OTcwNiwxMi4zODE3MzUxIEM1LjA3NzYwODQ2LDEyLjY4MTMxOTEgNC45NjY0NDk4MSwxMy4wNjM3OTQgNS4wMDg4NDc4NywxMy40NDUzNTI1IEM1LjA1MTI0MTExLDEzLjgyNzgyNzQgNS4yNDM0MjYzOCwxNC4xNzYzOTM1IDUuNTQyOTk1OTUsMTQuNDE2NjI1MSBMOS4xNjA1NzgyLDE3LjMxMDY5MDkgQzkuNzM5MDA1NDksMTcuNzcwNDEzMiAxMC41Njk5NCwxNy43MjIzNzE3IDExLjA4OTk1NTQsMTcuMTk3NjQxNCBDMTMuNjkxOTYxNywxNC41OTAwODgxIDE2LjAyMzYxNDEsMTIuMDI4MzU3NiAxOC41NjYyOTIxLDkuNDgwMTMyNjIgQzE4Ljk5MTE2NSw5LjA2Mjc4NDIxIDE5LjExNzQxODcsOC40Mjc4MjYxOCAxOC44ODQ3MTE2LDcuODgwNDg1OTggQzE4LjY1MTA3NjEsNy4zMzIyMDUyMSAxOC4xMDY1NDU2LDYuOTgzNjE0OTkgMTcuNTExMTYzOSw3LjAwMDU5MzUxIEwxNy41MTExNjM5LDcuMDAwNjI5NjggWiIvPgogIDwvc3ZnPg==\")}.right-alignment{direction:rtl}", "mat-select{outline:none}::ng-deep .mat-select-disabled .mat-select-value{color:rgba(26,26,26,.7);color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.7)}::ng-deep .mat-select-arrow-wrapper{transform:unset!important;vertical-align:middle}::ng-deep .mat-select-arrow-wrapper .mat-select-arrow{border:0}::ng-deep .mat-select-arrow-wrapper .mat-select-arrow:after{color:#1a1a1a;color:hsl(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%))}::ng-deep .mat-select-panel .mat-option{background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .mat-select-panel .mat-option:hover{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.16)}::ng-deep .mat-select-panel .mat-option:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);background:rgba(26,26,26,.24)!important;background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.24)!important}::ng-deep .mat-select-panel .mat-option:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .mat-select-panel .mat-option:disabled{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.04)!important}::ng-deep .mat-select-panel .mat-option:disabled:after{border:unset}::ng-deep .mat-select-panel .mat-option:disabled .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-option:disabled .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-option.mat-selected{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}::ng-deep .mat-select-panel .mat-option.mat-selected:hover{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.16)}::ng-deep .mat-select-panel .mat-option.mat-selected:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);background:rgba(26,26,26,.24)!important;background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.24)!important}::ng-deep .mat-select-panel .mat-option.mat-selected:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}::ng-deep .mat-select-panel .mat-option.mat-selected:disabled{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.04)!important}::ng-deep .mat-select-panel .mat-option.mat-selected:disabled:after{border:unset}::ng-deep .mat-select-panel .mat-option.mat-selected:disabled .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-option.mat-selected:disabled .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-pseudo-checkbox{background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 30%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 30%))}::ng-deep .mat-select-panel .mat-pseudo-checkbox:hover{background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);border:1px solid hsl(0,0%,calc(10% + 20%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 20%))}::ng-deep .mat-select-panel .mat-pseudo-checkbox:active{background:#e0e0e0;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32);border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),var(--pep-color-regular-l,10%))}::ng-deep .mat-select-panel .mat-pseudo-checkbox:disabled{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:#e0e0e0!important;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),88%)!important;box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.04)!important;box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.04)!important;border:1px solid rgba(26,26,26,.08);border:1px solid hsla(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),var(--pep-color-regular-l,10%),.08)}::ng-deep .mat-select-panel .mat-pseudo-checkbox:disabled:after{border:unset}::ng-deep .mat-select-panel .mat-pseudo-checkbox:disabled .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-pseudo-checkbox:disabled .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked,::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate{background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid hsl(0,0%,calc(10% + 20%));border:1px solid hsl(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),calc(var(--pep-color-system-primary-l, 10%) + 20%))}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked:hover,::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate:hover{background:#fafafa;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),98%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.16);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.16);border:1px solid hsl(0,0%,calc(10% + 20%));border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),calc(var(--pep-color-regular-l, 10%) + 20%))}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked:active,::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate:active{background:#e0e0e0;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),88%);box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.32);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.32);border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),var(--pep-color-regular-l,10%))}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked:disabled,::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate:disabled{box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:#e0e0e0!important;background:hsl(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),88%)!important;box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.04)!important;box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.04)!important;border:1px solid rgba(26,26,26,.08);border:1px solid hsla(var(--pep-color-regular-h,0),var(--pep-color-regular-s,0%),var(--pep-color-regular-l,10%),.08)}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked:disabled:after,::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate:disabled:after{border:unset}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked:disabled .svg-icon,::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate:disabled .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-checked:disabled .svg-icon.stroke,::ng-deep .mat-select-panel .mat-pseudo-checkbox.mat-pseudo-checkbox-indeterminate:disabled .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}::ng-deep .mat-select-panel .mat-pseudo-checkbox:after{color:#1a1a1a!important;color:hsl(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%))!important}"]
193
193
  },] }
194
194
  ];
195
195
  PepSelectComponent.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-select.js","sources":["../../../projects/ngx-lib/select/select.component.ts","../../../projects/ngx-lib/select/select.module.ts","../../../projects/ngx-lib/select/public-api.ts","../../../projects/ngx-lib/select/pepperi-addons-ngx-lib-select.ts"],"sourcesContent":["import {\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n OnDestroy,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MatSelect } from '@angular/material/select';\r\nimport {\r\n PepLayoutType,\r\n PepCustomizationService,\r\n PepHorizontalAlignment,\r\n DEFAULT_HORIZONTAL_ALIGNMENT,\r\n PepSelectFieldType,\r\n PepSelectField,\r\n IPepOption,\r\n} from '@pepperi-addons/ngx-lib';\r\n\r\n@Component({\r\n selector: 'pep-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.scss', './select.component.theme.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PepSelectComponent implements OnChanges, OnInit, OnDestroy {\r\n @Input() key = '';\r\n @Input() value = '';\r\n @Input() label = '';\r\n @Input() type: PepSelectFieldType = 'select';\r\n @Input() mandatory = false;\r\n @Input() disabled = false;\r\n @Input() readonly = false;\r\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\r\n @Input() rowSpan = 1;\r\n @Input() options: Array<IPepOption> = [];\r\n\r\n private _visible = true;\r\n @Input()\r\n set visible(visible: boolean) {\r\n this._visible = visible;\r\n if (visible) {\r\n this.renderer.removeClass(\r\n this.element.nativeElement,\r\n 'hidden-element'\r\n );\r\n } else {\r\n this.renderer.addClass(\r\n this.element.nativeElement,\r\n 'hidden-element'\r\n );\r\n }\r\n }\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n controlType = 'select';\r\n\r\n // @Input() field: PepFieldBase;\r\n @Input() form: FormGroup = null;\r\n @Input() layoutType: PepLayoutType = 'form';\r\n @Input() parentFieldKey: string = null;\r\n @Input() isActive = false;\r\n @Input() showTitle = true;\r\n @Input() emptyOption = true;\r\n @Input() renderTitle = true;\r\n\r\n @Output()\r\n valueChange: EventEmitter<string> = new EventEmitter<string>();\r\n @Output()\r\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @ViewChild('select') select: MatSelect;\r\n\r\n standAlone = false;\r\n isInEditMode = false;\r\n isMulti = false;\r\n selectedValuesModel: string[];\r\n selectedValueModel: string;\r\n fieldFormattedValue = '';\r\n\r\n constructor(\r\n private customizationService: PepCustomizationService,\r\n private renderer: Renderer2,\r\n private element: ElementRef\r\n ) { }\r\n\r\n private addOptionsIfNeeded(): void {\r\n if (this.isMulti) {\r\n // Go gor all selected and add to options if not exist\r\n // for (let i = 0; i < this.selectedValuesModel.length; i++) {\r\n for (const selectedValue of this.selectedValuesModel) {\r\n let valueNotExist = false;\r\n\r\n if (\r\n this.options &&\r\n !this.options.find((opt) => opt.key === selectedValue)\r\n ) {\r\n valueNotExist = true;\r\n }\r\n\r\n // Add it to options.\r\n if (valueNotExist) {\r\n this.options.push({\r\n key: selectedValue,\r\n value: selectedValue,\r\n });\r\n }\r\n }\r\n } else {\r\n if (\r\n this.value &&\r\n this.value !== '' &&\r\n this.options &&\r\n !this.options.find((opt) => opt.key === this.value)\r\n ) {\r\n this.options.push({ key: this.value, value: this.value });\r\n }\r\n }\r\n }\r\n\r\n private setFieldFormattedValue(value: any): void {\r\n if (this.isMulti) {\r\n if (this.selectedValuesModel.length > 0) {\r\n this.fieldFormattedValue = this.selectedValuesModel\r\n .map((value) => {\r\n return this.options.find((opt) => opt.key === value)\r\n ?.value;\r\n })\r\n .join(', ');\r\n } else {\r\n this.fieldFormattedValue = '';\r\n }\r\n\r\n // this.fieldFormattedValue = typeof value === 'string' ? value.replace(new RegExp(';', 'g'), ', ') : '';\r\n } else {\r\n const selectedOpt = this.options.find((opt) => opt.key === value);\r\n\r\n if (selectedOpt) {\r\n this.fieldFormattedValue = selectedOpt.value;\r\n }\r\n }\r\n }\r\n\r\n private setDefaultForm(): void {\r\n const pepField = new PepSelectField({\r\n key: this.key,\r\n value: this.value,\r\n mandatory: this.mandatory,\r\n readonly: this.readonly,\r\n disabled: this.disabled,\r\n });\r\n this.form = this.customizationService.getDefaultFromGroup(pepField);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.form === null) {\r\n this.standAlone = true;\r\n this.setDefaultForm();\r\n\r\n this.renderer.addClass(\r\n this.element.nativeElement,\r\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\r\n );\r\n\r\n if (!this.renderTitle) {\r\n this.renderer.addClass(\r\n this.element.nativeElement,\r\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\r\n );\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if (this.standAlone) {\r\n this.setDefaultForm();\r\n }\r\n\r\n this.isMulti = this.type === 'multi';\r\n if (this.isMulti) {\r\n this.selectedValuesModel =\r\n this.value.length > 0 ? this.value.split(';') : [];\r\n } else {\r\n this.selectedValueModel = this.value;\r\n }\r\n\r\n this.addOptionsIfNeeded();\r\n this.setFieldFormattedValue(this.value);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n //\r\n }\r\n\r\n selectionChange(event: any): void {\r\n if (!this.isMulti) {\r\n this.changeValue(this.selectedValueModel);\r\n }\r\n }\r\n\r\n openedChange(event: any): void {\r\n // Only on close.\r\n if (!event) {\r\n if (this.isMulti) {\r\n this.changeValue(this.selectedValuesModel.join(';'));\r\n }\r\n\r\n if (this.isInEditMode) {\r\n this.isInEditMode = false;\r\n }\r\n }\r\n }\r\n\r\n changeValue(value: any): void {\r\n this.setFieldFormattedValue(value);\r\n this.customizationService.updateFormFieldValue(\r\n this.form,\r\n this.key,\r\n // value,\r\n this.fieldFormattedValue,\r\n this.parentFieldKey\r\n );\r\n\r\n if (this.mandatory) {\r\n const fieldControl = this.form.controls[this.key];\r\n if (value) {\r\n fieldControl.setErrors(null);\r\n } else {\r\n fieldControl.setErrors({\r\n serverError: 'Required',\r\n });\r\n }\r\n this.formValidationChange.emit(this.form.valid);\r\n }\r\n\r\n this.valueChange.emit(value);\r\n }\r\n\r\n cardTemplateClicked(event: any): void {\r\n this.isInEditMode = true;\r\n\r\n setTimeout(() => {\r\n this.select.open();\r\n }, 0);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\r\nimport {\r\n PepIconModule,\r\n PepIconRegistry,\r\n pepIconSystemEdit,\r\n} from '@pepperi-addons/ngx-lib/icon';\r\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\r\n\r\nimport { PepSelectComponent } from './select.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n // Material modules\r\n MatCommonModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatIconModule,\r\n // ngx-lib modules\r\n PepNgxLibModule,\r\n PepIconModule,\r\n PepFieldTitleModule,\r\n ],\r\n exports: [PepSelectComponent],\r\n declarations: [PepSelectComponent],\r\n})\r\nexport class PepSelectModule {\r\n constructor(private pepIconRegistry: PepIconRegistry) {\r\n this.pepIconRegistry.registerIcons([pepIconSystemEdit]);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-lib/select\r\n */\r\nexport * from './select.module';\r\nexport * from './select.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-select.js","sources":["../../../projects/ngx-lib/select/select.component.ts","../../../projects/ngx-lib/select/select.module.ts","../../../projects/ngx-lib/select/public-api.ts","../../../projects/ngx-lib/select/pepperi-addons-ngx-lib-select.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n OnChanges,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n ChangeDetectionStrategy,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatSelect } from '@angular/material/select';\nimport {\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n PepSelectFieldType,\n PepSelectField,\n IPepOption,\n} from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss', './select.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSelectComponent implements OnChanges, OnInit, OnDestroy {\n @Input() key = '';\n @Input() value = '';\n @Input() label = '';\n @Input() type: PepSelectFieldType = 'select';\n @Input() mandatory = false;\n @Input() disabled = false;\n @Input() readonly = false;\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n @Input() rowSpan = 1;\n @Input() options: Array<IPepOption> = [];\n\n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n controlType = 'select';\n\n // @Input() field: PepFieldBase;\n @Input() form: FormGroup = null;\n @Input() layoutType: PepLayoutType = 'form';\n @Input() parentFieldKey: string = null;\n @Input() isActive = false;\n @Input() showTitle = true;\n @Input() emptyOption = true;\n @Input() renderTitle = true;\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter<string>();\n @Output()\n formValidationChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n @ViewChild('select') select: MatSelect;\n\n standAlone = false;\n isInEditMode = false;\n isMulti = false;\n selectedValuesModel: string[];\n selectedValueModel: string;\n fieldFormattedValue = '';\n\n constructor(\n private customizationService: PepCustomizationService,\n private renderer: Renderer2,\n private element: ElementRef\n ) { }\n\n private addOptionsIfNeeded(): void {\n if (this.isMulti) {\n // Go gor all selected and add to options if not exist\n // for (let i = 0; i < this.selectedValuesModel.length; i++) {\n for (const selectedValue of this.selectedValuesModel) {\n let valueNotExist = false;\n\n if (\n this.options &&\n !this.options.find((opt) => opt.key === selectedValue)\n ) {\n valueNotExist = true;\n }\n\n // Add it to options.\n if (valueNotExist) {\n this.options.push({\n key: selectedValue,\n value: selectedValue,\n });\n }\n }\n } else {\n if (\n this.value &&\n this.value !== '' &&\n this.options &&\n !this.options.find((opt) => opt.key === this.value)\n ) {\n this.options.push({ key: this.value, value: this.value });\n }\n }\n }\n\n private setFieldFormattedValue(value: any): void {\n if (this.isMulti) {\n if (this.selectedValuesModel.length > 0) {\n this.fieldFormattedValue = this.selectedValuesModel\n .map((value) => {\n return this.options.find((opt) => opt.key === value)\n ?.value;\n })\n .join(', ');\n } else {\n this.fieldFormattedValue = '';\n }\n\n // this.fieldFormattedValue = typeof value === 'string' ? value.replace(new RegExp(';', 'g'), ', ') : '';\n } else {\n const selectedOpt = this.options.find((opt) => opt.key === value);\n\n if (selectedOpt) {\n this.fieldFormattedValue = selectedOpt.value;\n }\n }\n }\n\n private setDefaultForm(): void {\n const pepField = new PepSelectField({\n key: this.key,\n value: this.value,\n mandatory: this.mandatory,\n readonly: this.readonly,\n disabled: this.disabled,\n });\n this.form = this.customizationService.getDefaultFromGroup(pepField);\n }\n\n ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\n this.setDefaultForm();\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n if (!this.renderTitle) {\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n );\n }\n }\n }\n\n ngOnChanges(changes: any): void {\n if (this.standAlone) {\n this.setDefaultForm();\n }\n\n this.isMulti = this.type === 'multi';\n if (this.isMulti) {\n this.selectedValuesModel =\n this.value.length > 0 ? this.value.split(';') : [];\n } else {\n this.selectedValueModel = this.value;\n }\n\n this.addOptionsIfNeeded();\n this.setFieldFormattedValue(this.value);\n }\n\n ngOnDestroy(): void {\n //\n }\n\n selectionChange(event: any): void {\n if (!this.isMulti) {\n this.changeValue(this.selectedValueModel);\n }\n }\n\n openedChange(event: any): void {\n // Only on close.\n if (!event) {\n if (this.isMulti) {\n this.changeValue(this.selectedValuesModel.join(';'));\n }\n\n if (this.isInEditMode) {\n this.isInEditMode = false;\n }\n }\n }\n\n changeValue(value: any): void {\n this.setFieldFormattedValue(value);\n this.customizationService.updateFormFieldValue(\n this.form,\n this.key,\n // value,\n this.fieldFormattedValue,\n this.parentFieldKey\n );\n\n if (this.mandatory) {\n const fieldControl = this.form.controls[this.key];\n if (value) {\n fieldControl.setErrors(null);\n } else {\n fieldControl.setErrors({\n serverError: 'Required',\n });\n }\n this.formValidationChange.emit(this.form.valid);\n }\n\n this.valueChange.emit(value);\n }\n\n cardTemplateClicked(event: any): void {\n this.isInEditMode = true;\n\n setTimeout(() => {\n this.select.open();\n }, 0);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemEdit,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';\n\nimport { PepSelectComponent } from './select.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n // Material modules\n MatCommonModule,\n MatButtonModule,\n MatFormFieldModule,\n MatSelectModule,\n MatIconModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n PepFieldTitleModule,\n ],\n exports: [PepSelectComponent],\n declarations: [PepSelectComponent],\n})\nexport class PepSelectModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([pepIconSystemEdit]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/select\n */\nexport * from './select.module';\nexport * from './select.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -45,9 +45,9 @@ class PepSeparatorComponent {
45
45
  PepSeparatorComponent.decorators = [
46
46
  { type: Component, args: [{
47
47
  selector: 'pep-separator',
48
- template: "<ng-container *ngIf=\"layoutType === 'form'\">\r\n <div class=\"pep-separator-field wrap pep-border-bottom align-{{ xAlignment }}\" title=\"{{ label }}\">\r\n <span class=\"block-with-text body-md\">{{ label }}</span>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"layoutType === 'card'\">\r\n <div class=\"pep-separator-field pep-small-separator-field pep-border-bottom text-align-{{ xAlignment }}\"\r\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" title=\"{{ label }}\">\r\n <span class=\"small-block-with-text body-sm\">{{ label }}</span>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"layoutType === 'table'\">\r\n <label class=\"cl\" title=\"{{ label }}\">{{ label }}</label>\r\n</ng-container>",
48
+ template: "<ng-container *ngIf=\"layoutType === 'form'\">\n <div class=\"pep-separator-field wrap pep-border-bottom align-{{ xAlignment }}\" title=\"{{ label }}\">\n <span class=\"block-with-text body-md\">{{ label }}</span>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"layoutType === 'card'\">\n <div class=\"pep-separator-field pep-small-separator-field pep-border-bottom text-align-{{ xAlignment }}\"\n dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\" title=\"{{ label }}\">\n <span class=\"small-block-with-text body-sm\">{{ label }}</span>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"layoutType === 'table'\">\n <label class=\"cl\" title=\"{{ label }}\">{{ label }}</label>\n</ng-container>",
49
49
  changeDetection: ChangeDetectionStrategy.OnPush,
50
- styles: [":host{height:inherit;display:grid}:host>*{align-self:center}", ""]
50
+ styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.pep-separator-field,.pepperi-separator-field{padding:0;height:3.5rem;max-height:3.5rem;margin-top:.5rem}.pep-separator-field.pep-small-separator-field,.pep-separator-field.pepperi-small-separator-field,.pepperi-separator-field.pep-small-separator-field,.pepperi-separator-field.pepperi-small-separator-field{height:1.15rem;margin-top:.25rem!important;margin-bottom:0!important}.pep-separator-field.pep-small-separator-field .small-block-with-text,.pep-separator-field.pepperi-small-separator-field .small-block-with-text,.pepperi-separator-field.pep-small-separator-field .small-block-with-text,.pepperi-separator-field.pepperi-small-separator-field .small-block-with-text{display:block;font-weight:600;font-weight:var(--pep-font-weight-bold,600);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.pep-separator-field.wrap,.pepperi-separator-field.wrap{display:flex}.pep-separator-field.wrap .block-with-text,.pepperi-separator-field.wrap .block-with-text{width:100%;margin-bottom:.5rem;font-weight:600;font-weight:var(--pep-font-weight-bold,600);align-self:flex-end;max-height:inherit}.pep-separator-field.wrap.align-0 .block-with-text,.pep-separator-field.wrap.align-1 .block-with-text,.pep-separator-field.wrap.align-left .block-with-text,.pepperi-separator-field.wrap.align-0 .block-with-text,.pepperi-separator-field.wrap.align-1 .block-with-text,.pepperi-separator-field.wrap.align-left .block-with-text{max-width:calc(100%);overflow:hidden;position:relative;line-height:1.5rem;max-height:3.05rem;direction:ltr;text-align:left;margin-right:-1em;padding-right:1em}.pep-separator-field.wrap.align-0 .block-with-text:before,.pep-separator-field.wrap.align-1 .block-with-text:before,.pep-separator-field.wrap.align-left .block-with-text:before,.pepperi-separator-field.wrap.align-0 .block-with-text:before,.pepperi-separator-field.wrap.align-1 .block-with-text:before,.pepperi-separator-field.wrap.align-left .block-with-text:before{content:\"...\";position:absolute;bottom:0}.pep-separator-field.wrap.align-0 .block-with-text:after,.pep-separator-field.wrap.align-1 .block-with-text:after,.pep-separator-field.wrap.align-left .block-with-text:after,.pepperi-separator-field.wrap.align-0 .block-with-text:after,.pepperi-separator-field.wrap.align-1 .block-with-text:after,.pepperi-separator-field.wrap.align-left .block-with-text:after{content:\"...\";position:absolute;height:1.5rem;margin-top:.2rem;background:#fff;color:#fff}.pep-separator-field.wrap.align-0 .block-with-text:after,.pep-separator-field.wrap.align-0 .block-with-text:before,.pep-separator-field.wrap.align-1 .block-with-text:after,.pep-separator-field.wrap.align-1 .block-with-text:before,.pep-separator-field.wrap.align-left .block-with-text:after,.pep-separator-field.wrap.align-left .block-with-text:before,.pepperi-separator-field.wrap.align-0 .block-with-text:after,.pepperi-separator-field.wrap.align-0 .block-with-text:before,.pepperi-separator-field.wrap.align-1 .block-with-text:after,.pepperi-separator-field.wrap.align-1 .block-with-text:before,.pepperi-separator-field.wrap.align-left .block-with-text:after,.pepperi-separator-field.wrap.align-left .block-with-text:before{right:3px}.pep-separator-field.wrap.align-2 .block-with-text,.pep-separator-field.wrap.align-right .block-with-text,.pepperi-separator-field.wrap.align-2 .block-with-text,.pepperi-separator-field.wrap.align-right .block-with-text{max-width:calc(100%);overflow:hidden;position:relative;line-height:1.5rem;max-height:3.05rem;direction:rtl;text-align:right;padding-left:1em}.pep-separator-field.wrap.align-2 .block-with-text:before,.pep-separator-field.wrap.align-right .block-with-text:before,.pepperi-separator-field.wrap.align-2 .block-with-text:before,.pepperi-separator-field.wrap.align-right .block-with-text:before{content:\"...\";position:absolute;bottom:0}.pep-separator-field.wrap.align-2 .block-with-text:after,.pep-separator-field.wrap.align-right .block-with-text:after,.pepperi-separator-field.wrap.align-2 .block-with-text:after,.pepperi-separator-field.wrap.align-right .block-with-text:after{content:\"...\";position:absolute;height:1.5rem;margin-top:.2rem;background:#fff;color:#fff}.pep-separator-field.wrap.align-2 .block-with-text:after,.pep-separator-field.wrap.align-2 .block-with-text:before,.pep-separator-field.wrap.align-right .block-with-text:after,.pep-separator-field.wrap.align-right .block-with-text:before,.pepperi-separator-field.wrap.align-2 .block-with-text:after,.pepperi-separator-field.wrap.align-2 .block-with-text:before,.pepperi-separator-field.wrap.align-right .block-with-text:after,.pepperi-separator-field.wrap.align-right .block-with-text:before{left:3px}.pep-separator-field.wrap.align-3 .block-with-text,.pep-separator-field.wrap.align-center .block-with-text,.pepperi-separator-field.wrap.align-3 .block-with-text,.pepperi-separator-field.wrap.align-center .block-with-text{max-width:calc(100%);overflow:hidden;position:relative;line-height:1.5rem;max-height:3.05rem;direction:ltr;text-align:center;margin-right:-1em;padding-right:1em}.pep-separator-field.wrap.align-3 .block-with-text:before,.pep-separator-field.wrap.align-center .block-with-text:before,.pepperi-separator-field.wrap.align-3 .block-with-text:before,.pepperi-separator-field.wrap.align-center .block-with-text:before{content:\"...\";position:absolute;bottom:0}.pep-separator-field.wrap.align-3 .block-with-text:after,.pep-separator-field.wrap.align-center .block-with-text:after,.pepperi-separator-field.wrap.align-3 .block-with-text:after,.pepperi-separator-field.wrap.align-center .block-with-text:after{content:\"...\";position:absolute;height:1.5rem;margin-top:.2rem;background:#fff;color:#fff}.pep-separator-field.wrap.align-3 .block-with-text:after,.pep-separator-field.wrap.align-3 .block-with-text:before,.pep-separator-field.wrap.align-center .block-with-text:after,.pep-separator-field.wrap.align-center .block-with-text:before,.pepperi-separator-field.wrap.align-3 .block-with-text:after,.pepperi-separator-field.wrap.align-3 .block-with-text:before,.pepperi-separator-field.wrap.align-center .block-with-text:after,.pepperi-separator-field.wrap.align-center .block-with-text:before{right:3px}", ""]
51
51
  },] }
52
52
  ];
53
53
  PepSeparatorComponent.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-separator.js","sources":["../../../projects/ngx-lib/separator/separator.component.ts","../../../projects/ngx-lib/separator/separator.module.ts","../../../projects/ngx-lib/separator/public-api.ts","../../../projects/ngx-lib/separator/pepperi-addons-ngx-lib-separator.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n OnInit,\r\n ChangeDetectionStrategy,\r\n Renderer2,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport {\r\n PepLayoutType,\r\n PepCustomizationService,\r\n PepHorizontalAlignment,\r\n DEFAULT_HORIZONTAL_ALIGNMENT,\r\n} from '@pepperi-addons/ngx-lib';\r\n\r\n@Component({\r\n selector: 'pep-separator',\r\n templateUrl: './separator.component.html',\r\n styleUrls: ['./separator.component.scss', './separator.component.theme.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PepSeparatorComponent implements OnInit {\r\n @Input() key = '';\r\n @Input() label = '';\r\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\r\n\r\n controlType = 'separator';\r\n\r\n @Input() form: FormGroup = null;\r\n @Input() layoutType: PepLayoutType = 'form';\r\n // @Input() renderTitle = true;\r\n\r\n private _visible = true;\r\n @Input()\r\n set visible(visible: boolean) {\r\n this._visible = visible;\r\n if (visible) {\r\n this.renderer.removeClass(\r\n this.element.nativeElement,\r\n 'hidden-element'\r\n );\r\n } else {\r\n this.renderer.addClass(\r\n this.element.nativeElement,\r\n 'hidden-element'\r\n );\r\n }\r\n }\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n standAlone = false;\r\n\r\n constructor(private renderer: Renderer2, private element: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n if (this.form === null) {\r\n this.standAlone = true;\r\n\r\n this.renderer.addClass(\r\n this.element.nativeElement,\r\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\r\n );\r\n\r\n // There is no pep-title-field here\r\n // if (!this.renderTitle) {\r\n // this.renderer.addClass(\r\n // this.element.nativeElement,\r\n // PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\r\n // );\r\n // }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { PepSeparatorComponent } from './separator.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [PepSeparatorComponent],\r\n declarations: [PepSeparatorComponent],\r\n})\r\nexport class PepSeparatorModule {}\r\n","/*\r\n * Public API Surface of ngx-lib/separator\r\n */\r\nexport * from './separator.module';\r\nexport * from './separator.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAsBa,qBAAqB;IAiC9B,YAAoB,QAAmB,EAAU,OAAmB;QAAhD,aAAQ,GAAR,QAAQ,CAAW;QAAU,YAAO,GAAP,OAAO,CAAY;QAhC3D,QAAG,GAAG,EAAE,CAAC;QACT,UAAK,GAAG,EAAE,CAAC;QACX,eAAU,GAA2B,4BAA4B,CAAC;QAE3E,gBAAW,GAAG,WAAW,CAAC;QAEjB,SAAI,GAAc,IAAI,CAAC;QACvB,eAAU,GAAkB,MAAM,CAAC;;QAGpC,aAAQ,GAAG,IAAI,CAAC;QAoBxB,eAAU,GAAG,KAAK,CAAC;KAEsD;IArBzE,IACI,OAAO,CAAC,OAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;SACL;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;SACL;KACJ;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAMD,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,uBAAuB,CAAC,4BAA4B,CACvD,CAAC;;;;;;;;SASL;KACJ;;;YA1DJ,SAAS,SAAC;gBACP,QAAQ,EAAE,eAAe;gBACzB,0wBAAyC;gBAEzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAClD;;;YAhBG,SAAS;YACT,UAAU;;;kBAiBT,KAAK;oBACL,KAAK;yBACL,KAAK;mBAIL,KAAK;yBACL,KAAK;sBAIL,KAAK;;;MCxBG,kBAAkB;;;YAL9B,QAAQ,SAAC;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;gBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;aACxC;;;ACTD;;;;ACAA;;;;;;"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-separator.js","sources":["../../../projects/ngx-lib/separator/separator.component.ts","../../../projects/ngx-lib/separator/separator.module.ts","../../../projects/ngx-lib/separator/public-api.ts","../../../projects/ngx-lib/separator/pepperi-addons-ngx-lib-separator.ts"],"sourcesContent":["import {\n Component,\n Input,\n OnInit,\n ChangeDetectionStrategy,\n Renderer2,\n ElementRef,\n} from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport {\n PepLayoutType,\n PepCustomizationService,\n PepHorizontalAlignment,\n DEFAULT_HORIZONTAL_ALIGNMENT,\n} from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-separator',\n templateUrl: './separator.component.html',\n styleUrls: ['./separator.component.scss', './separator.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSeparatorComponent implements OnInit {\n @Input() key = '';\n @Input() label = '';\n @Input() xAlignment: PepHorizontalAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;\n\n controlType = 'separator';\n\n @Input() form: FormGroup = null;\n @Input() layoutType: PepLayoutType = 'form';\n // @Input() renderTitle = true;\n\n private _visible = true;\n @Input()\n set visible(visible: boolean) {\n this._visible = visible;\n if (visible) {\n this.renderer.removeClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n } else {\n this.renderer.addClass(\n this.element.nativeElement,\n 'hidden-element'\n );\n }\n }\n get visible(): boolean {\n return this._visible;\n }\n\n standAlone = false;\n\n constructor(private renderer: Renderer2, private element: ElementRef) { }\n\n ngOnInit(): void {\n if (this.form === null) {\n this.standAlone = true;\n\n this.renderer.addClass(\n this.element.nativeElement,\n PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME\n );\n\n // There is no pep-title-field here\n // if (!this.renderTitle) {\n // this.renderer.addClass(\n // this.element.nativeElement,\n // PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME\n // );\n // }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PepSeparatorComponent } from './separator.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [PepSeparatorComponent],\n declarations: [PepSeparatorComponent],\n})\nexport class PepSeparatorModule {}\n","/*\n * Public API Surface of ngx-lib/separator\n */\nexport * from './separator.module';\nexport * from './separator.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAsBa,qBAAqB;IAiC9B,YAAoB,QAAmB,EAAU,OAAmB;QAAhD,aAAQ,GAAR,QAAQ,CAAW;QAAU,YAAO,GAAP,OAAO,CAAY;QAhC3D,QAAG,GAAG,EAAE,CAAC;QACT,UAAK,GAAG,EAAE,CAAC;QACX,eAAU,GAA2B,4BAA4B,CAAC;QAE3E,gBAAW,GAAG,WAAW,CAAC;QAEjB,SAAI,GAAc,IAAI,CAAC;QACvB,eAAU,GAAkB,MAAM,CAAC;;QAGpC,aAAQ,GAAG,IAAI,CAAC;QAoBxB,eAAU,GAAG,KAAK,CAAC;KAEsD;IArBzE,IACI,OAAO,CAAC,OAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,OAAO,EAAE;YACT,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;SACL;aAAM;YACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,gBAAgB,CACnB,CAAC;SACL;KACJ;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAMD,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,uBAAuB,CAAC,4BAA4B,CACvD,CAAC;;;;;;;;SASL;KACJ;;;YA1DJ,SAAS,SAAC;gBACP,QAAQ,EAAE,eAAe;gBACzB,4uBAAyC;gBAEzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAClD;;;YAhBG,SAAS;YACT,UAAU;;;kBAiBT,KAAK;oBACL,KAAK;yBACL,KAAK;mBAIL,KAAK;yBACL,KAAK;sBAIL,KAAK;;;MCxBG,kBAAkB;;;YAL9B,QAAQ,SAAC;gBACN,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,OAAO,EAAE,CAAC,qBAAqB,CAAC;gBAChC,YAAY,EAAE,CAAC,qBAAqB,CAAC;aACxC;;;ACTD;;;;ACAA;;;;;;"}
@@ -115,7 +115,7 @@ PepSideBarComponent.ONE_MULTI_BY_DIR_KEY = '--pep-one-multi-by-dir';
115
115
  PepSideBarComponent.decorators = [
116
116
  { type: Component, args: [{
117
117
  selector: 'pep-side-bar',
118
- template: "<div class=\"pep-side-bar-container\">\r\n <ng-container *ngIf=\"isLargeScreen || ignoreResize; then largeScreensBlock; else notLargeScreensBlock\">\r\n </ng-container>\r\n <ng-template #largeScreensBlock>\r\n <div class=\"toggle-side-bar-container\" [ngClass]=\"{ 'is-open-state': state === 'open'}\">\r\n <ng-container *ngTemplateOutlet=\"sideLayoutTemplate\"></ng-container>\r\n <div class=\"toggle-button-border\"></div>\r\n <button mat-button class=\"toggle-button pep-button xs regular icon-button \" (click)=\"toggleSideWrapper()\">\r\n <mat-icon>\r\n <pep-icon [name]=\"toggleButtonArrowName\">\r\n </pep-icon>\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <ng-template #notLargeScreensBlock>\r\n <mat-sidenav-container [hasBackdrop]=\"true\">\r\n <mat-sidenav #sidenav mode=\"over\" autoFocus=\"false\" fixedInViewport=\"false\"\r\n (openedChange)=\"toggleSidenav($event)\">\r\n <ng-container *ngTemplateOutlet=\"sideLayoutTemplate\"></ng-container>\r\n </mat-sidenav>\r\n </mat-sidenav-container>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #sideLayoutTemplate>\r\n <div class=\"side-layout\">\r\n <div *ngIf=\"showHeader\" class=\"header-content\">\r\n <div class=\"content pep-border-bottom body-lg ellipsis\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"main-content\">\r\n <div class=\"content\">\r\n <ng-container *ngTemplateOutlet=\"startContentTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"filtersTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"smartFiltersTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n <ng-container *ngTemplateOutlet=\"endContentTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showFooter\" class=\"footer-content\">\r\n <div class=\"content pep-border-top body-lg ellipsis\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n<ng-template #headerTemplate>\r\n <ng-content select=\"[header-content]\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #startContentTemplate>\r\n <ng-content select=\"[start-content]\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #contentTemplate>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #endContentTemplate>\r\n <ng-content select=\"[end-content]\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #filtersTemplate>\r\n\r\n</ng-template>\r\n\r\n<ng-template #smartFiltersTemplate>\r\n <ng-content select=\"pep-smart-filters\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #footerTemplate>\r\n <ng-content select=\"[footer-content]\"></ng-content>\r\n</ng-template>",
118
+ template: "<div class=\"pep-side-bar-container\">\n <ng-container *ngIf=\"isLargeScreen || ignoreResize; then largeScreensBlock; else notLargeScreensBlock\">\n </ng-container>\n <ng-template #largeScreensBlock>\n <div class=\"toggle-side-bar-container\" [ngClass]=\"{ 'is-open-state': state === 'open'}\">\n <ng-container *ngTemplateOutlet=\"sideLayoutTemplate\"></ng-container>\n <div class=\"toggle-button-border\"></div>\n <button mat-button class=\"toggle-button pep-button xs regular icon-button \" (click)=\"toggleSideWrapper()\">\n <mat-icon>\n <pep-icon [name]=\"toggleButtonArrowName\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n <ng-template #notLargeScreensBlock>\n <mat-sidenav-container [hasBackdrop]=\"true\">\n <mat-sidenav #sidenav mode=\"over\" autoFocus=\"false\" fixedInViewport=\"false\"\n (openedChange)=\"toggleSidenav($event)\">\n <ng-container *ngTemplateOutlet=\"sideLayoutTemplate\"></ng-container>\n </mat-sidenav>\n </mat-sidenav-container>\n </ng-template>\n</div>\n\n<ng-template #sideLayoutTemplate>\n <div class=\"side-layout\">\n <div *ngIf=\"showHeader\" class=\"header-content\">\n <div class=\"content pep-border-bottom body-lg ellipsis\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n </div>\n <div class=\"main-content\">\n <div class=\"content\">\n <ng-container *ngTemplateOutlet=\"startContentTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"filtersTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"smartFiltersTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"endContentTemplate\"></ng-container>\n </div>\n </div>\n <div *ngIf=\"showFooter\" class=\"footer-content\">\n <div class=\"content pep-border-top body-lg ellipsis\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n\n\n<ng-template #headerTemplate>\n <ng-content select=\"[header-content]\"></ng-content>\n</ng-template>\n\n<ng-template #startContentTemplate>\n <ng-content select=\"[start-content]\"></ng-content>\n</ng-template>\n\n<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #endContentTemplate>\n <ng-content select=\"[end-content]\"></ng-content>\n</ng-template>\n\n<ng-template #filtersTemplate>\n\n</ng-template>\n\n<ng-template #smartFiltersTemplate>\n <ng-content select=\"pep-smart-filters\"></ng-content>\n</ng-template>\n\n<ng-template #footerTemplate>\n <ng-content select=\"[footer-content]\"></ng-content>\n</ng-template>",
119
119
  styles: [".pep-side-bar-container{height:100%}.pep-side-bar-container .toggle-side-bar-container{height:inherit;display:grid;grid-auto-flow:column;transition:transform .35s ease-out,width .35s ease-out;transform:translateX(calc(var(--pep-one-multi-by-dir) * 16rem));transform:translateX(calc(var(--pep-one-multi-by-dir) * var(--pep-side-bar-width, 16rem)));width:calc((1rem * 2) + 1px);width:calc((var(--pep-spacing-lg, 1rem) * 2) + 1px)}.pep-side-bar-container .toggle-side-bar-container.is-open-state{transition:transform .35s ease-out,width .35s ease-out;transform:unset;width:16rem;width:var(--pep-side-bar-width,16rem)}.pep-side-bar-container .toggle-side-bar-container.is-open-state .toggle-button{transition:margin-inline .35s ease-out,transform .35s ease-out;transform:rotate(180deg);margin-inline:-3rem .25rem}.pep-side-bar-container .toggle-side-bar-container.is-open-state .toggle-button-border{transition:opacity calc(calc(.35s / 3) * 2) ease-out,margin-inline .35s ease-out;opacity:0;margin-inline:-3rem .25rem}.pep-side-bar-container .toggle-side-bar-container .toggle-button{z-index:2;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-top:calc(calc(1.5rem + .5rem + 2.5rem) - .75rem);margin-top:calc(calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem)) - .75rem);transition:margin-inline .35s ease-out,transform .35s ease-out;transform:rotate(0deg);margin-inline:calc(-1 * .75rem) .25rem}.pep-side-bar-container .toggle-side-bar-container .toggle-button-border{transition:opacity calc(calc(.35s / 3) * 2) calc(.35s / 3) ease-out,margin-inline .35s ease-out;opacity:1;margin-inline:unset;width:1px;-webkit-padding-start:1rem;padding-inline-start:1rem;-webkit-padding-start:var(--pep-spacing-lg,1rem);padding-inline-start:var(--pep-spacing-lg,1rem);margin-top:1.5rem;margin-top:var(--pep-top-bar-spacing-top,1.5rem)}.pep-side-bar-container .mat-sidenav-container{position:absolute;bottom:0;left:0;right:0;z-index:999;height:calc(100vh - 4rem);height:calc(100vh - var(--pep-header-height, 4rem));visibility:hidden}.pep-side-bar-container .mat-sidenav-container.mat-drawer-opened{visibility:unset}.pep-side-bar-container .mat-sidenav-container .mat-sidenav{max-width:calc(calc(16rem + 2rem) + calc(1rem * 2));max-width:calc(calc(var(--pep-side-bar-width, 16rem) + var(--pep-spacing-2xl, 2rem)) + calc(var(--pep-spacing-lg, 1rem) * 2));padding-inline:1rem;padding-inline:var(--pep-spacing-lg,1rem)}@media (max-width:599px){.pep-side-bar-container .mat-sidenav-container .mat-sidenav{padding-inline:0}}.pep-side-bar-container .mat-sidenav-container .mat-sidenav .side-layout{max-width:calc(16rem + 2rem);max-width:calc(var(--pep-side-bar-width, 16rem) + var(--pep-spacing-2xl, 2rem));width:calc(16rem + 2rem);width:calc(var(--pep-side-bar-width, 16rem) + var(--pep-spacing-2xl, 2rem))}.pep-side-bar-container .side-layout{display:block;max-width:16rem;max-width:var(--pep-side-bar-width,16rem);width:16rem;width:var(--pep-side-bar-width,16rem);padding:0 1rem;padding:0 var(--pep-spacing-lg,1rem);overflow:auto}.pep-side-bar-container .side-layout .header-content{height:calc(1.5rem + .5rem + 2.5rem);height:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));padding-top:1.5rem;padding-top:var(--pep-top-bar-spacing-top,1.5rem);z-index:2;position:sticky;top:0}.pep-side-bar-container .side-layout .header-content .content{height:calc(.5rem + 2.5rem);height:calc(var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));display:flex;overflow:unset}.pep-side-bar-container .side-layout .footer-content{height:calc(1.5rem + .5rem + 2.5rem);height:calc(var(--pep-top-bar-spacing-top, 1.5rem) + var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem))}.pep-side-bar-container .side-layout .main-content{display:block;height:inherit;max-width:16rem;max-width:var(--pep-side-bar-width,16rem)}.pep-side-bar-container .side-layout .main-content .content{height:inherit}", ".pep-side-bar-container .toggle-side-bar-container .toggle-button-border{-webkit-border-end:1px solid rgba(26,26,26,.24);border-inline-end:1px solid rgba(26,26,26,.24);-webkit-border-end:1px solid hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.24);border-inline-end:1px solid hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.24)}.pep-side-bar-container .mat-sidenav-container .mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(26,26,26,.24);background-color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.24)}.pep-side-bar-container .side-layout,.pep-side-bar-container .side-layout .header-content{background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}"]
120
120
  },] },
121
121
  { type: Injectable }
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-side-bar.js","sources":["../../../projects/ngx-lib/side-bar/side-bar.component.ts","../../../projects/ngx-lib/side-bar/side-bar.module.ts","../../../projects/ngx-lib/side-bar/public-api.ts","../../../projects/ngx-lib/side-bar/pepperi-addons-ngx-lib-side-bar.ts"],"sourcesContent":["import {\r\n Component,\r\n OnInit,\r\n Injectable,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n ElementRef,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n} from '@angular/animations';\r\nimport {\r\n PepCustomizationService,\r\n PepLayoutService,\r\n PepScreenSizeType,\r\n} from '@pepperi-addons/ngx-lib';\r\nimport { IPepSideBarStateChangeEvent, PepSideBarStateType } from './side-bar.model';\r\nimport { pepIconArrowLeft, pepIconArrowRight } from '@pepperi-addons/ngx-lib/icon';\r\n\r\n@Component({\r\n selector: 'pep-side-bar',\r\n templateUrl: './side-bar.component.html',\r\n styleUrls: ['./side-bar.component.scss', './side-bar.component.theme.scss']\r\n})\r\n@Injectable()\r\nexport class PepSideBarComponent implements OnInit {\r\n static ONE_MULTI_BY_DIR_KEY = '--pep-one-multi-by-dir';\r\n\r\n @Input() ignoreResize = false;\r\n @Input() showHeader = true;\r\n @Input() showFooter = false;\r\n\r\n private _useAsWebComponent = false;\r\n private readonly _animationTime = 350; // milliseconds.\r\n\r\n state: PepSideBarStateType = 'open';\r\n toggleButtonArrowName: string = pepIconArrowRight.name;\r\n isLargeScreen = true;\r\n\r\n @Input()\r\n set useAsWebComponent(value: boolean) {\r\n if (value) {\r\n this.exportFunctionsOnHostElement();\r\n }\r\n }\r\n get useAsWebComponent(): boolean {\r\n return this._useAsWebComponent;\r\n }\r\n\r\n @Output()\r\n stateChange: EventEmitter<IPepSideBarStateChangeEvent> = new EventEmitter<IPepSideBarStateChangeEvent>();\r\n\r\n @ViewChild('sidenav') sidenav: MatSidenav;\r\n\r\n isMouseIn = false;\r\n sideBarHeight = '100%';\r\n\r\n screenSize: PepScreenSizeType;\r\n PepScreenSizeType = PepScreenSizeType;\r\n\r\n constructor(\r\n private hostElement: ElementRef,\r\n private renderer: Renderer2,\r\n public layoutService: PepLayoutService\r\n ) {\r\n this.layoutService.onResize$.subscribe((size: PepScreenSizeType) => {\r\n this.screenSize = size;\r\n this.isLargeScreen = size < PepScreenSizeType.MD;\r\n });\r\n }\r\n\r\n private exportFunctionsOnHostElement() {\r\n // This is for web component usage for use those functions.\r\n this.hostElement.nativeElement.open = this.open.bind(this);\r\n this.hostElement.nativeElement.close = this.close.bind(this);\r\n }\r\n\r\n private setState(state: PepSideBarStateType) {\r\n this.state = state;\r\n this.toggleButtonArrowName =\r\n // state === 'open' ?\r\n // (this.layoutService.isRtl() ? pepIconArrowRight.name : pepIconArrowLeft.name) :\r\n (this.layoutService.isRtl() ? pepIconArrowLeft.name : pepIconArrowRight.name);\r\n }\r\n\r\n private toggleState() {\r\n this.setState(this.state === 'close' ? 'open' : 'close');\r\n }\r\n\r\n ngOnInit() {\r\n document.documentElement.style.setProperty(PepSideBarComponent.ONE_MULTI_BY_DIR_KEY, this.layoutService.isRtl() ? '1' : '-1');\r\n this.setState(this.isLargeScreen ? 'open' : 'close');\r\n }\r\n\r\n setSideBarHeight(event) {\r\n // const from = event.relatedTarget\r\n // ? event.relatedTarget\r\n // : event.fromElement;\r\n // const to = event.target ? event.target : event.toElement;\r\n\r\n // if (typeof from === 'undefined' || typeof to === 'undefined') {\r\n // return;\r\n // }\r\n // this.isMouseIn = true;\r\n\r\n // this.sideBarHeight = window.innerHeight - to.offsetTop + 'px';\r\n }\r\n\r\n mouseLeaveSideBar(event) {\r\n // const from = event.relatedTarget\r\n // ? event.relatedTarget\r\n // : event.fromElement;\r\n // const to = event.target ? event.target : event.toElement;\r\n\r\n // if (typeof from === 'undefined' || typeof to === 'undefined') {\r\n // return;\r\n // }\r\n // this.sideBarHeight = '100%';\r\n // this.isMouseIn = false;\r\n }\r\n\r\n open() {\r\n if (this.sidenav) {\r\n this.sidenav.open();\r\n }\r\n\r\n this.state = 'open';\r\n }\r\n\r\n close() {\r\n if (this.sidenav) {\r\n this.sidenav.close();\r\n }\r\n\r\n this.state = 'close';\r\n }\r\n\r\n toggle() {\r\n if (this.sidenav) {\r\n // const isOpen = this.sidenav.opened;\r\n this.sidenav.toggle();\r\n }\r\n\r\n this.toggleState();\r\n }\r\n\r\n toggleSideWrapper() {\r\n this.toggleState();\r\n // Raise event after animation finish.\r\n setTimeout(() => {\r\n this.stateChange.emit({ state: this.state });\r\n }, this._animationTime);\r\n }\r\n\r\n toggleSidenav(isOpen: boolean) {\r\n this.setState(isOpen ? 'open' : 'close');\r\n // Raise event after animation finish.\r\n setTimeout(() => {\r\n this.stateChange.emit({ state: this.state });\r\n }, this._animationTime);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\n\r\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\r\nimport {\r\n PepIconModule,\r\n PepIconRegistry,\r\n pepIconSystemClose,\r\n} from '@pepperi-addons/ngx-lib/icon';\r\n\r\nimport { PepSideBarComponent } from './side-bar.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n // Material modules,\r\n MatCommonModule,\r\n MatIconModule,\r\n MatSidenavModule,\r\n // ngx-lib modules\r\n PepNgxLibModule,\r\n PepIconModule,\r\n ],\r\n exports: [PepSideBarComponent],\r\n declarations: [PepSideBarComponent],\r\n})\r\nexport class PepSideBarModule {\r\n constructor(private pepIconRegistry: PepIconRegistry) {\r\n this.pepIconRegistry.registerIcons([pepIconSystemClose]);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ngx-lib/side-bar\r\n */\r\nexport * from './side-bar.module';\r\nexport * from './side-bar.component';\r\nexport * from './side-bar.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-side-bar.js","sources":["../../../projects/ngx-lib/side-bar/side-bar.component.ts","../../../projects/ngx-lib/side-bar/side-bar.module.ts","../../../projects/ngx-lib/side-bar/public-api.ts","../../../projects/ngx-lib/side-bar/pepperi-addons-ngx-lib-side-bar.ts"],"sourcesContent":["import {\n Component,\n OnInit,\n Injectable,\n Input,\n Output,\n EventEmitter,\n ViewChild,\n ElementRef,\n Renderer2,\n} from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport {\n PepCustomizationService,\n PepLayoutService,\n PepScreenSizeType,\n} from '@pepperi-addons/ngx-lib';\nimport { IPepSideBarStateChangeEvent, PepSideBarStateType } from './side-bar.model';\nimport { pepIconArrowLeft, pepIconArrowRight } from '@pepperi-addons/ngx-lib/icon';\n\n@Component({\n selector: 'pep-side-bar',\n templateUrl: './side-bar.component.html',\n styleUrls: ['./side-bar.component.scss', './side-bar.component.theme.scss']\n})\n@Injectable()\nexport class PepSideBarComponent implements OnInit {\n static ONE_MULTI_BY_DIR_KEY = '--pep-one-multi-by-dir';\n\n @Input() ignoreResize = false;\n @Input() showHeader = true;\n @Input() showFooter = false;\n\n private _useAsWebComponent = false;\n private readonly _animationTime = 350; // milliseconds.\n\n state: PepSideBarStateType = 'open';\n toggleButtonArrowName: string = pepIconArrowRight.name;\n isLargeScreen = true;\n\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n @Output()\n stateChange: EventEmitter<IPepSideBarStateChangeEvent> = new EventEmitter<IPepSideBarStateChangeEvent>();\n\n @ViewChild('sidenav') sidenav: MatSidenav;\n\n isMouseIn = false;\n sideBarHeight = '100%';\n\n screenSize: PepScreenSizeType;\n PepScreenSizeType = PepScreenSizeType;\n\n constructor(\n private hostElement: ElementRef,\n private renderer: Renderer2,\n public layoutService: PepLayoutService\n ) {\n this.layoutService.onResize$.subscribe((size: PepScreenSizeType) => {\n this.screenSize = size;\n this.isLargeScreen = size < PepScreenSizeType.MD;\n });\n }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.open = this.open.bind(this);\n this.hostElement.nativeElement.close = this.close.bind(this);\n }\n\n private setState(state: PepSideBarStateType) {\n this.state = state;\n this.toggleButtonArrowName =\n // state === 'open' ?\n // (this.layoutService.isRtl() ? pepIconArrowRight.name : pepIconArrowLeft.name) :\n (this.layoutService.isRtl() ? pepIconArrowLeft.name : pepIconArrowRight.name);\n }\n\n private toggleState() {\n this.setState(this.state === 'close' ? 'open' : 'close');\n }\n\n ngOnInit() {\n document.documentElement.style.setProperty(PepSideBarComponent.ONE_MULTI_BY_DIR_KEY, this.layoutService.isRtl() ? '1' : '-1');\n this.setState(this.isLargeScreen ? 'open' : 'close');\n }\n\n setSideBarHeight(event) {\n // const from = event.relatedTarget\n // ? event.relatedTarget\n // : event.fromElement;\n // const to = event.target ? event.target : event.toElement;\n\n // if (typeof from === 'undefined' || typeof to === 'undefined') {\n // return;\n // }\n // this.isMouseIn = true;\n\n // this.sideBarHeight = window.innerHeight - to.offsetTop + 'px';\n }\n\n mouseLeaveSideBar(event) {\n // const from = event.relatedTarget\n // ? event.relatedTarget\n // : event.fromElement;\n // const to = event.target ? event.target : event.toElement;\n\n // if (typeof from === 'undefined' || typeof to === 'undefined') {\n // return;\n // }\n // this.sideBarHeight = '100%';\n // this.isMouseIn = false;\n }\n\n open() {\n if (this.sidenav) {\n this.sidenav.open();\n }\n\n this.state = 'open';\n }\n\n close() {\n if (this.sidenav) {\n this.sidenav.close();\n }\n\n this.state = 'close';\n }\n\n toggle() {\n if (this.sidenav) {\n // const isOpen = this.sidenav.opened;\n this.sidenav.toggle();\n }\n\n this.toggleState();\n }\n\n toggleSideWrapper() {\n this.toggleState();\n // Raise event after animation finish.\n setTimeout(() => {\n this.stateChange.emit({ state: this.state });\n }, this._animationTime);\n }\n\n toggleSidenav(isOpen: boolean) {\n this.setState(isOpen ? 'open' : 'close');\n // Raise event after animation finish.\n setTimeout(() => {\n this.stateChange.emit({ state: this.state });\n }, this._animationTime);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconSystemClose,\n} from '@pepperi-addons/ngx-lib/icon';\n\nimport { PepSideBarComponent } from './side-bar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n // Material modules,\n MatCommonModule,\n MatIconModule,\n MatSidenavModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepIconModule,\n ],\n exports: [PepSideBarComponent],\n declarations: [PepSideBarComponent],\n})\nexport class PepSideBarModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([pepIconSystemClose]);\n }\n}\n","/*\n * Public API Surface of ngx-lib/side-bar\n */\nexport * from './side-bar.module';\nexport * from './side-bar.component';\nexport * from './side-bar.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}