@pepperi-addons/ngx-lib 0.4.0-angular14.9 → 0.4.0-beta.3

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 (234) hide show
  1. package/chips/chips.component.d.ts +93 -0
  2. package/chips/chips.component.theme.scss +58 -0
  3. package/chips/chips.model.d.ts +13 -0
  4. package/chips/chips.module.d.ts +20 -0
  5. package/chips/chips.service.d.ts +15 -0
  6. package/{plugin → chips}/index.d.ts +1 -1
  7. package/chips/public-api.d.ts +3 -0
  8. package/color/color-picker.component.d.ts +1 -1
  9. package/core/common/model/wapi.model.d.ts +1 -0
  10. package/core/common/services/addon.service.d.ts +13 -9
  11. package/core/common/services/utilities.service.d.ts +5 -4
  12. package/core/customization/customization.model.d.ts +7 -0
  13. package/esm2020/address/address.component.mjs +1 -1
  14. package/esm2020/attachment/attachment.component.mjs +1 -1
  15. package/esm2020/checkbox/checkbox.component.mjs +1 -1
  16. package/esm2020/chips/chips.component.mjs +158 -0
  17. package/esm2020/chips/chips.model.mjs +2 -0
  18. package/esm2020/chips/chips.module.mjs +81 -0
  19. package/esm2020/chips/chips.service.mjs +44 -0
  20. package/esm2020/chips/pepperi-addons-ngx-lib-chips.mjs +5 -0
  21. package/esm2020/chips/public-api.mjs +7 -0
  22. package/esm2020/color/color-picker.component.mjs +4 -4
  23. package/esm2020/color/color.component.mjs +1 -1
  24. package/esm2020/core/common/model/wapi.model.mjs +1 -1
  25. package/esm2020/core/common/services/addon.service.mjs +43 -38
  26. package/esm2020/core/common/services/utilities.service.mjs +66 -13
  27. package/esm2020/core/customization/customization.model.mjs +10 -1
  28. package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -5
  29. package/esm2020/core/http/services/loader.service.mjs +4 -4
  30. package/esm2020/date/date.component.mjs +3 -3
  31. package/esm2020/field-title/field-title.component.mjs +6 -3
  32. package/esm2020/form/field-generator.component.mjs +7 -7
  33. package/esm2020/form/form.component.mjs +12 -3
  34. package/esm2020/form/internal-button.component.mjs +1 -1
  35. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  36. package/esm2020/form/internal-form.component.mjs +4 -2
  37. package/esm2020/form/internal-list.component.mjs +5 -2
  38. package/esm2020/group-buttons/group-buttons.component.mjs +8 -4
  39. package/esm2020/icon/icon-generated-all.model.mjs +8 -1
  40. package/esm2020/icon/icon-generated.model.mjs +29 -1
  41. package/esm2020/image/image.component.mjs +1 -1
  42. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -91
  43. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +1 -56
  44. package/esm2020/link/link.component.mjs +1 -1
  45. package/esm2020/list/list-pager.component.mjs +1 -1
  46. package/esm2020/list/list.component.mjs +5 -2
  47. package/esm2020/list/virtual-scroller.mjs +11 -10
  48. package/esm2020/menu/menu.component.mjs +11 -3
  49. package/esm2020/page-layout/page-layout.component.mjs +3 -3
  50. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
  51. package/esm2020/quantity-selector/quantity-selector.component.mjs +24 -4
  52. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
  53. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +1 -1
  54. package/esm2020/remote-loader/addon-block-loader.component.mjs +23 -5
  55. package/esm2020/remote-loader/addon-block-loader.service.mjs +9 -8
  56. package/esm2020/remote-loader/public-api.mjs +2 -1
  57. package/esm2020/remote-loader/remote-loader-element.component.mjs +109 -0
  58. package/esm2020/remote-loader/remote-loader.component.mjs +37 -59
  59. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  60. package/esm2020/remote-loader/remote-loader.module.mjs +12 -3
  61. package/esm2020/remote-loader/remote-loader.service.mjs +50 -26
  62. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +1 -1
  63. package/esm2020/select/select.component.mjs +33 -7
  64. package/esm2020/side-bar/side-bar.component.mjs +11 -27
  65. package/esm2020/side-bar/side-bar.module.mjs +7 -3
  66. package/esm2020/signature/signature.component.mjs +1 -1
  67. package/esm2020/size-detector/size-detector.component.mjs +2 -2
  68. package/esm2020/slider/slider.component.mjs +1 -1
  69. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  70. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  71. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
  72. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  73. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
  74. package/esm2020/textarea/textarea.component.mjs +1 -1
  75. package/esm2020/textbox/textbox.component.mjs +48 -7
  76. package/esm2020/textbox-icon/textbox-icon.component.mjs +2 -2
  77. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
  78. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  79. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  80. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  81. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  82. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  83. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +287 -0
  84. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  85. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  86. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  87. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +2 -2
  88. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  89. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  90. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  91. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +23 -12
  92. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  93. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  94. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  95. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +36 -1
  96. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  97. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +1 -1
  98. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  99. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  100. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  101. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +1 -1
  102. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  103. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +15 -11
  104. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  105. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +10 -2
  106. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  107. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  108. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  109. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  110. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  111. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  112. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  113. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  114. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  115. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +249 -105
  116. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  117. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  118. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  119. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +32 -6
  120. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  121. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  122. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  123. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +1 -1
  124. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  125. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
  126. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  127. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +1 -1
  128. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  129. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
  130. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  131. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  132. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  133. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  134. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  135. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +49 -8
  136. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  137. package/fesm2015/pepperi-addons-ngx-lib.mjs +128 -57
  138. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  139. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
  140. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  141. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  142. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  143. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  144. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  145. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +287 -0
  146. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  147. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  148. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  149. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +2 -2
  150. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  151. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  152. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  153. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +26 -12
  154. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  155. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  156. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  157. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +36 -1
  158. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  159. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +1 -1
  160. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  161. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  162. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  163. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +1 -1
  164. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  165. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +15 -11
  166. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  167. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +10 -2
  168. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  169. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  170. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  171. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  172. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  173. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  174. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  175. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  176. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  177. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +230 -98
  178. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  179. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  180. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  181. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +32 -6
  182. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  183. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  184. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  185. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +1 -1
  186. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  187. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +1 -1
  188. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  189. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +1 -1
  190. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  191. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +6 -6
  192. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  193. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  194. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  195. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  196. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  197. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +48 -8
  198. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  199. package/fesm2020/pepperi-addons-ngx-lib.mjs +125 -58
  200. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  201. package/field-title/field-title.component.d.ts +2 -1
  202. package/form/field-generator.component.d.ts +1 -1
  203. package/group-buttons/group-buttons.component.d.ts +2 -1
  204. package/icon/icon-generated-all.model.d.ts +7 -0
  205. package/icon/icon-generated.model.d.ts +29 -1
  206. package/menu/menu.component.d.ts +2 -0
  207. package/package.json +14 -13
  208. package/page-layout/page-layout.component.d.ts +1 -1
  209. package/quantity-selector/quantity-selector.component.d.ts +7 -1
  210. package/remote-loader/addon-block-loader.component.d.ts +10 -6
  211. package/remote-loader/addon-block-loader.service.d.ts +2 -3
  212. package/remote-loader/public-api.d.ts +1 -0
  213. package/remote-loader/remote-loader-element.component.d.ts +30 -0
  214. package/remote-loader/remote-loader.component.d.ts +3 -5
  215. package/remote-loader/remote-loader.model.d.ts +16 -11
  216. package/remote-loader/remote-loader.module.d.ts +8 -6
  217. package/remote-loader/remote-loader.service.d.ts +5 -7
  218. package/select/select.component.d.ts +10 -4
  219. package/side-bar/side-bar.component.d.ts +3 -3
  220. package/src/assets/i18n/en.ngx-lib.json +4 -0
  221. package/src/core/style/components/checkbox.scss +20 -1
  222. package/src/core/style/components/general.scss +5 -4
  223. package/textbox/textbox.component.d.ts +16 -1
  224. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +0 -5
  225. package/esm2020/plugin/plugin-proxy.component.mjs +0 -90
  226. package/esm2020/plugin/plugin.model.mjs +0 -2
  227. package/esm2020/plugin/public-api.mjs +0 -6
  228. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +0 -107
  229. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
  230. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +0 -101
  231. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +0 -1
  232. package/plugin/plugin-proxy.component.d.ts +0 -22
  233. package/plugin/plugin.model.d.ts +0 -5
  234. package/plugin/public-api.d.ts +0 -2
@@ -1,16 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Directive, Optional, Pipe, Input, HostListener, Inject, PLATFORM_ID, NgModule } from '@angular/core';
3
- import { formatPercent, formatCurrency, formatNumber, DOCUMENT, isPlatformBrowser, CommonModule } from '@angular/common';
3
+ import { DOCUMENT, isPlatformBrowser, CommonModule } from '@angular/common';
4
4
  import * as i3 from '@angular/common/http';
5
5
  import { HttpResponse, HTTP_INTERCEPTORS, HttpHeaders, HttpClientModule } from '@angular/common/http';
6
6
  import * as i3$1 from '@angular/forms';
7
7
  import { FormControl, Validators, ReactiveFormsModule, FormBuilder } from '@angular/forms';
8
8
  import { throwError, BehaviorSubject, Subject } from 'rxjs';
9
- import { catchError, distinctUntilChanged, finalize, tap } from 'rxjs/operators';
9
+ import { catchError, filter, distinctUntilChanged, finalize, tap } from 'rxjs/operators';
10
10
  import * as i1 from '@ngx-translate/core';
11
11
  import { TranslateModule } from '@ngx-translate/core';
12
12
  import * as i1$1 from '@angular/platform-browser';
13
13
  import { _isNumberValue, coerceNumberProperty } from '@angular/cdk/coercion';
14
+ import { createCustomElement } from '@angular/elements';
14
15
  import { MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';
15
16
  import * as i6 from '@angular/router';
16
17
 
@@ -40,7 +41,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
40
41
  class PepLoaderService {
41
42
  constructor() {
42
43
  this.counter = 0;
43
- this.showLoaderSubject = new BehaviorSubject(false);
44
+ this.showLoaderSubject = new BehaviorSubject(undefined);
44
45
  // Raise custom event for showing the loader.
45
46
  this.onChanged$.subscribe((show) => {
46
47
  this.showLoaderChanged(show);
@@ -49,7 +50,7 @@ class PepLoaderService {
49
50
  get onChanged$() {
50
51
  return this.showLoaderSubject
51
52
  .asObservable()
52
- .pipe(distinctUntilChanged());
53
+ .pipe(filter(v => v !== undefined), distinctUntilChanged());
53
54
  }
54
55
  showLoaderChanged(show) {
55
56
  const eventData = {
@@ -89,14 +90,13 @@ class PepLoaderInterceptor {
89
90
  }
90
91
  intercept(req, next) {
91
92
  // console.warn('LoaderInterceptor');
93
+ let newVer = 2;
92
94
  const loaderService = this.injector.get(PepLoaderService);
95
+ // console.log('show', req.url);
93
96
  loaderService.show();
94
97
  return next.handle(req).pipe(
95
98
  // delay(3000),
96
- catchError((err) => {
97
- loaderService.hide();
98
- return throwError(err);
99
- }), finalize(() => loaderService.hide()));
99
+ catchError((err) => throwError(err)), finalize(() => loaderService.hide()));
100
100
  // return next.handle(req).pipe(map(event => {
101
101
  // if (event instanceof HttpResponse) {
102
102
  // loaderService.hide();
@@ -689,6 +689,9 @@ class PepUtilitiesService {
689
689
  this.translate = translate;
690
690
  this.culture = 'en-US';
691
691
  this.culture = this.translate?.getBrowserCultureLang() || 'en-US';
692
+ // try {
693
+ // import(`@angular/common/locales/global/${this.culture}`);
694
+ // } catch {}
692
695
  }
693
696
  changeDecimalSeperator(value, reverse = false) {
694
697
  // If the decimal separator is ','
@@ -729,6 +732,19 @@ class PepUtilitiesService {
729
732
  str = new Array(size).join('0').concat(str);
730
733
  return str;
731
734
  }
735
+ isCurrencyShouldBeOnRight(currencySymbol) {
736
+ let res = false;
737
+ if (currencySymbol == "€" ||
738
+ currencySymbol == "₪" ||
739
+ currencySymbol == "Ft" ||
740
+ currencySymbol == "Kč" ||
741
+ currencySymbol == "руб" ||
742
+ currencySymbol == "zł" ||
743
+ currencySymbol == "kr.") {
744
+ res = true;
745
+ }
746
+ return res;
747
+ }
732
748
  parseDate(dateStr, showTime = false) {
733
749
  let retVal = null;
734
750
  if (dateStr !== '') {
@@ -790,44 +806,80 @@ class PepUtilitiesService {
790
806
  const div = document.createElement('DIV');
791
807
  // div.className = 'svg-icon';
792
808
  // Add class svg-icon
793
- div.innerHTML = svgContent.replace('<svg ', '<svg class="svg-icon" ');
809
+ if (svgContent?.length > 0) {
810
+ div.innerHTML = svgContent.replace('<svg ', '<svg class="svg-icon" ');
811
+ }
794
812
  return (div.querySelector('svg') ||
795
813
  document.createElementNS('http://www.w3.org/2000/svg', 'path'));
796
814
  }
797
- formatPercent(value, digitsInfo = '1.0-2') {
815
+ // formatPercent(value: any, digitsInfo = '1.0-2') {
816
+ formatPercent(value, minFractionDigits = 0, maxFractionDigits = 2) {
817
+ minFractionDigits = this.coerceNumberProperty(minFractionDigits, null);
818
+ maxFractionDigits = this.coerceNumberProperty(maxFractionDigits, null);
798
819
  const number = this.coerceNumberProperty(value);
799
820
  if (number === 0) {
800
821
  return '0%';
801
822
  }
802
823
  else {
803
- return formatPercent(number / 100, this.culture, digitsInfo);
804
- }
805
- }
806
- formatCurrency(value, currencySign = '', digitsInfo = '1.2-2') {
824
+ // return formatPercent(number / 100, this.culture, digitsInfo);
825
+ return new Intl.NumberFormat(this.culture, {
826
+ style: 'percent',
827
+ minimumFractionDigits: minFractionDigits || 0,
828
+ maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),
829
+ }).format(number / 100);
830
+ }
831
+ }
832
+ // formatCurrency(value: any, currencySign = '', digitsInfo = '1.2-2') {
833
+ formatCurrency(value, currencySign = '', minFractionDigits = 0, maxFractionDigits = 2) {
834
+ minFractionDigits = this.coerceNumberProperty(minFractionDigits, null);
835
+ maxFractionDigits = this.coerceNumberProperty(maxFractionDigits, null);
836
+ let res = '';
807
837
  const number = this.coerceNumberProperty(value);
838
+ const styleOptions = {
839
+ // style: 'currency',
840
+ // currencySign: currencySign,
841
+ minimumFractionDigits: minFractionDigits || 0,
842
+ maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),
843
+ };
808
844
  if (number === 0) {
809
- return formatCurrency(0, this.culture, currencySign, undefined, digitsInfo);
845
+ // return formatCurrency(0, this.culture, currencySign, undefined, digitsInfo);
846
+ res = new Intl.NumberFormat(this.culture, styleOptions).format(0);
810
847
  }
811
848
  else {
812
- return formatCurrency(value, this.culture, currencySign, undefined, digitsInfo);
849
+ // return formatCurrency(value, this.culture, currencySign, undefined, digitsInfo);
850
+ res = new Intl.NumberFormat(this.culture, styleOptions).format(number);
813
851
  }
852
+ res = this.isCurrencyShouldBeOnRight(currencySign) ? `${res} ${currencySign}` : `${currencySign} ${res}`;
853
+ return res;
814
854
  }
815
- formatDecimal(value, digitsInfo = '1.2-2') {
855
+ // formatDecimal(value: any, digitsInfo = '1.2-2') {
856
+ formatDecimal(value, minFractionDigits = 2, maxFractionDigits = 2) {
857
+ minFractionDigits = this.coerceNumberProperty(minFractionDigits, null);
858
+ maxFractionDigits = this.coerceNumberProperty(maxFractionDigits, null);
816
859
  const number = this.coerceNumberProperty(value);
817
860
  if (number === 0) {
818
861
  return '0';
819
862
  }
820
863
  else {
821
- return formatNumber(value, this.culture, digitsInfo);
864
+ // return formatNumber(value, this.culture, digitsInfo);
865
+ return new Intl.NumberFormat(this.culture, {
866
+ minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits),
867
+ maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),
868
+ }).format(number);
822
869
  }
823
870
  }
824
- formatNumber(value, digitsInfo = '1.0-0') {
871
+ // formatNumber(value: any, digitsInfo = '1.0-0'): string {
872
+ formatNumber(value) {
825
873
  const number = this.coerceNumberProperty(value);
826
874
  if (number === 0) {
827
875
  return '0';
828
876
  }
829
877
  else {
830
- return formatNumber(value, this.culture, digitsInfo);
878
+ // return formatNumber(value, this.culture, digitsInfo);
879
+ return new Intl.NumberFormat(this.culture, {
880
+ minimumFractionDigits: 0,
881
+ maximumFractionDigits: 0,
882
+ }).format(number);
831
883
  }
832
884
  }
833
885
  /**
@@ -874,7 +926,9 @@ class PepUtilitiesService {
874
926
  }
875
927
  coerceNumberProperty(value, fallbackValue = 0) {
876
928
  // If the decimal separator is ',' change it to '.'
877
- value = this.changeDecimalSeperator(value);
929
+ if (value?.length > 0) {
930
+ value = this.changeDecimalSeperator(value);
931
+ }
878
932
  return coerceNumberProperty(value, fallbackValue);
879
933
  }
880
934
  }
@@ -2314,38 +2368,36 @@ class PepAddonService {
2314
2368
  this.fileService = fileService;
2315
2369
  this.route = route;
2316
2370
  this.PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';
2317
- this.ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
2371
+ // private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
2318
2372
  this.ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';
2319
2373
  this.ADDON_API_RELATIVE_PATH = '/addons/api';
2320
2374
  this.ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;
2321
2375
  //
2322
2376
  }
2323
2377
  get devServer() {
2324
- return this.route.snapshot.queryParamMap.get('devServer') === 'true';
2378
+ return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;
2325
2379
  }
2326
2380
  getAddonBaseRelativePath(isAsync = false) {
2327
2381
  return isAsync
2328
2382
  ? this.ADDON_API_ASYNC_RELATIVE_PATH
2329
2383
  : this.ADDON_API_RELATIVE_PATH;
2330
2384
  }
2331
- getAddonStaticFolder(subAddonUUID = '') {
2332
- if (subAddonUUID.length > 0) {
2333
- const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
2334
- return addonsDictionary && addonsDictionary[subAddonUUID] ? addonsDictionary[subAddonUUID] : '';
2335
- }
2336
- else {
2337
- return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
2338
- }
2339
- }
2340
- setAddonStaticFolder(path, subAddonUUID = '') {
2341
- if (subAddonUUID.length > 0) {
2342
- const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};
2343
- addonsDictionary[subAddonUUID] = path;
2344
- this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
2345
- }
2346
- else {
2347
- return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
2348
- }
2385
+ getAddonStaticFolder(addonUUID) {
2386
+ // if (addonUUID.length > 0) {
2387
+ const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
2388
+ return addonsDictionary && addonsDictionary[addonUUID] ? addonsDictionary[addonUUID] : '';
2389
+ // } else {
2390
+ // return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
2391
+ // }
2392
+ }
2393
+ setAddonStaticFolder(path, addonUUID) {
2394
+ // if (addonUUID.length > 0) {
2395
+ const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};
2396
+ addonsDictionary[addonUUID] = path;
2397
+ this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
2398
+ // } else {
2399
+ // return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
2400
+ // }
2349
2401
  }
2350
2402
  getServerBaseUrl(addonUUID, fileName = '', isAsync = false, localhostPort = 4500) {
2351
2403
  const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';
@@ -2386,8 +2438,8 @@ class PepAddonService {
2386
2438
  this.loaderService.hide();
2387
2439
  });
2388
2440
  }
2389
- getNgxLibTranslationResource(subAddonUUID = '', libName = 'ngx-lib') {
2390
- const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
2441
+ getNgxLibTranslationResource(addonUUID, libName = 'ngx-lib') {
2442
+ const addonStaticFolder = this.getAddonStaticFolder(addonUUID);
2391
2443
  const translationsPath = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);
2392
2444
  const translationsSuffix = this.fileService.getAssetsTranslationsSuffix(libName);
2393
2445
  return {
@@ -2395,8 +2447,8 @@ class PepAddonService {
2395
2447
  suffix: translationsSuffix,
2396
2448
  };
2397
2449
  }
2398
- getAddonTranslationResource(subAddonUUID = '') {
2399
- const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
2450
+ getAddonTranslationResource(addonUUID) {
2451
+ const addonStaticFolder = this.getAddonStaticFolder(addonUUID);
2400
2452
  const defaultSubFolder = 'assets/i18n/';
2401
2453
  return {
2402
2454
  prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,
@@ -2409,38 +2461,44 @@ class PepAddonService {
2409
2461
  getPagesAddonUUID() {
2410
2462
  return this.PAGES_ADDON_UUID;
2411
2463
  }
2412
- // Deprecated need to delete in next major.
2413
- static createDefaultMultiTranslateLoader(http, fileService, addonService, subAddonUUID = '') {
2414
- const ngxLibTranslationResource = addonService.getNgxLibTranslationResource(subAddonUUID);
2415
- const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
2416
- return addonService.translateService.createMultiTranslateLoader([
2417
- ngxLibTranslationResource,
2418
- addonTranslationResource
2419
- ]);
2464
+ setShellRouterData(data) {
2465
+ const eventData = {
2466
+ detail: data,
2467
+ };
2468
+ const customEvent = new CustomEvent('set-router-data', eventData);
2469
+ window.dispatchEvent(customEvent);
2470
+ }
2471
+ defineCustomElement(elementName, component, injector) {
2472
+ customElements.upgrade;
2473
+ if (!customElements.get(elementName)) {
2474
+ customElements.define(elementName, createCustomElement(component, { injector: injector }));
2475
+ }
2420
2476
  }
2421
- static createMultiTranslateLoader(addonService, libsName = ['ngx-lib'], subAddonUUID = '') {
2477
+ static createMultiTranslateLoader(addonUUID, addonService, libsName = ['ngx-lib']) {
2422
2478
  const ngxLibTranslationResources = [];
2423
2479
  if (libsName?.length > 0) {
2424
2480
  for (let index = 0; index < libsName.length; index++) {
2425
2481
  const libName = libsName[index];
2426
- ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(subAddonUUID, libName));
2482
+ ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(addonUUID, libName));
2427
2483
  }
2428
2484
  }
2429
- const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
2485
+ const addonTranslationResource = addonService.getAddonTranslationResource(addonUUID);
2430
2486
  return addonService.translateService.createMultiTranslateLoader([
2431
2487
  ...ngxLibTranslationResources,
2432
2488
  addonTranslationResource
2433
2489
  ]);
2434
2490
  }
2435
2491
  }
2436
- PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: PepSessionService }, { token: PepHttpService }, { token: PepLoaderService }, { token: PepTranslateService }, { token: PepFileService }, { token: i6.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
2492
+ PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: PepSessionService }, { token: PepHttpService }, { token: PepLoaderService }, { token: PepTranslateService }, { token: PepFileService }, { token: i6.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
2437
2493
  PepAddonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, providedIn: 'root' });
2438
2494
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, decorators: [{
2439
2495
  type: Injectable,
2440
2496
  args: [{
2441
2497
  providedIn: 'root',
2442
2498
  }]
2443
- }], ctorParameters: function () { return [{ type: PepSessionService }, { type: PepHttpService }, { type: PepLoaderService }, { type: PepTranslateService }, { type: PepFileService }, { type: i6.ActivatedRoute }]; } });
2499
+ }], ctorParameters: function () { return [{ type: PepSessionService }, { type: PepHttpService }, { type: PepLoaderService }, { type: PepTranslateService }, { type: PepFileService }, { type: i6.ActivatedRoute, decorators: [{
2500
+ type: Optional
2501
+ }] }]; } });
2444
2502
 
2445
2503
  class PepColorService {
2446
2504
  constructor() {
@@ -3320,11 +3378,14 @@ class PepTextboxField extends PepFieldBase {
3320
3378
  super(options);
3321
3379
  this.controlType = 'textbox';
3322
3380
  this.type = 'text';
3381
+ this.digitsNumberAfterDecimalPoint = NaN;
3323
3382
  this.type = options.type || 'text';
3383
+ this.regex = options.regex;
3324
3384
  this.update(options);
3325
3385
  }
3326
3386
  update(options) {
3327
3387
  super.update(options);
3388
+ this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;
3328
3389
  if (this.type === 'link') {
3329
3390
  // DI-11292 - add changes for link field for the "Read Only display value" prop
3330
3391
  this.formattedValue =
@@ -3350,6 +3411,9 @@ class PepTextboxField extends PepFieldBase {
3350
3411
  validators.push(Validators.max(this.maxValue));
3351
3412
  }
3352
3413
  }
3414
+ if (this.type === 'text' && this.regex) {
3415
+ validators.push(Validators.pattern(this.regex));
3416
+ }
3353
3417
  return validators;
3354
3418
  }
3355
3419
  }
@@ -3420,12 +3484,14 @@ class PepQuantitySelectorField extends PepFieldBase {
3420
3484
  super(options);
3421
3485
  this.controlType = 'qs';
3422
3486
  this.notificationInfo = {};
3487
+ this.digitsNumberAfterDecimalPoint = NaN;
3423
3488
  this.updatedDataCount = 0;
3424
3489
  this.type = options.type || 'qs';
3425
3490
  this.update(options);
3426
3491
  }
3427
3492
  update(options) {
3428
3493
  super.update(options);
3494
+ this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;
3429
3495
  this.allowDecimal = options.allowDecimal || false;
3430
3496
  this.notificationInfo = options.notificationInfo;
3431
3497
  this.updatedDataCount += 1;
@@ -3455,6 +3521,7 @@ class PepSelectField extends PepFieldBase {
3455
3521
  this.controlType = 'select';
3456
3522
  this.options = [];
3457
3523
  this.type = options.type || 'select';
3524
+ this.emptyOption = options.emptyOption;
3458
3525
  this.update(options);
3459
3526
  }
3460
3527
  update(options) {