@tuki-io/tuki-widgets 0.0.76 → 0.0.78

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 (352) hide show
  1. package/README.md +9 -10
  2. package/esm2020/lib/widgets.component.mjs +22 -0
  3. package/esm2020/lib/widgets.module.mjs +21 -0
  4. package/esm2020/lib/widgets.service.mjs +14 -0
  5. package/esm2020/public-api.mjs +7 -0
  6. package/esm2020/tuki-io-tuki-widgets.mjs +5 -0
  7. package/fesm2015/tuki-io-tuki-widgets.mjs +63 -0
  8. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -0
  9. package/fesm2020/tuki-io-tuki-widgets.mjs +63 -0
  10. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -0
  11. package/index.d.ts +5 -0
  12. package/lib/widgets.component.d.ts +8 -0
  13. package/lib/widgets.module.d.ts +7 -0
  14. package/lib/widgets.service.d.ts +6 -0
  15. package/package.json +65 -48
  16. package/{projects/tuki/widgets/src/public-api.ts → public-api.d.ts} +0 -4
  17. package/.editorconfig +0 -16
  18. package/.hintrc +0 -14
  19. package/.vscode/extensions.json +0 -4
  20. package/.vscode/launch.json +0 -20
  21. package/.vscode/tasks.json +0 -42
  22. package/angular.json +0 -141
  23. package/projects/tuki/widgets/README.md +0 -24
  24. package/projects/tuki/widgets/di2mt/api/api.endpoints.ts +0 -26
  25. package/projects/tuki/widgets/di2mt/assets/icons/already_upgraded.png +0 -0
  26. package/projects/tuki/widgets/di2mt/assets/icons/check2_icon.png +0 -0
  27. package/projects/tuki/widgets/di2mt/assets/icons/check_icon.png +0 -0
  28. package/projects/tuki/widgets/di2mt/assets/icons/details_d_icon.svg +0 -3
  29. package/projects/tuki/widgets/di2mt/assets/icons/expand_icon.png +0 -0
  30. package/projects/tuki/widgets/di2mt/assets/icons/issue_icon.png +0 -0
  31. package/projects/tuki/widgets/di2mt/assets/icons/menu_icon.png +0 -0
  32. package/projects/tuki/widgets/di2mt/assets/icons/ready_to_upgrade.png +0 -0
  33. package/projects/tuki/widgets/di2mt/assets/icons/search_icon.png +0 -0
  34. package/projects/tuki/widgets/di2mt/assets/icons/site.png +0 -0
  35. package/projects/tuki/widgets/di2mt/assets/icons/user.png +0 -0
  36. package/projects/tuki/widgets/di2mt/assets/icons/warning_icon.png +0 -0
  37. package/projects/tuki/widgets/di2mt/ng-package.json +0 -7
  38. package/projects/tuki/widgets/di2mt/public-api.ts +0 -27
  39. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.html +0 -11
  40. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.scss +0 -48
  41. package/projects/tuki/widgets/di2mt/shared/components/card/card.component.ts +0 -10
  42. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.html +0 -15
  43. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.scss +0 -38
  44. package/projects/tuki/widgets/di2mt/shared/components/chart-card/chart-card.component.ts +0 -71
  45. package/projects/tuki/widgets/di2mt/shared/components/index.ts +0 -6
  46. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.html +0 -57
  47. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.scss +0 -74
  48. package/projects/tuki/widgets/di2mt/shared/components/stat-card/stat-card.component.ts +0 -44
  49. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.html +0 -28
  50. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.scss +0 -55
  51. package/projects/tuki/widgets/di2mt/shared/components/status-list-card/status-list-card.component.ts +0 -11
  52. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.html +0 -12
  53. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.scss +0 -79
  54. package/projects/tuki/widgets/di2mt/shared/components/summary-card/summary-card.component.ts +0 -27
  55. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.html +0 -28
  56. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.scss +0 -244
  57. package/projects/tuki/widgets/di2mt/shared/components/table-filters/table-filters.component.ts +0 -28
  58. package/projects/tuki/widgets/di2mt/shared/constants/app.constants.ts +0 -96
  59. package/projects/tuki/widgets/di2mt/shared/material.module.ts +0 -36
  60. package/projects/tuki/widgets/di2mt/shared/services/api.service.ts +0 -92
  61. package/projects/tuki/widgets/di2mt/shared/shared.module.ts +0 -38
  62. package/projects/tuki/widgets/di2mt/shared/types/constants.ts +0 -15
  63. package/projects/tuki/widgets/di2mt/shared/types/data-table.ts +0 -5
  64. package/projects/tuki/widgets/di2mt/shared/types/table/filter.ts +0 -14
  65. package/projects/tuki/widgets/di2mt/styles/tuki-widgets-theme.scss +0 -13
  66. package/projects/tuki/widgets/di2mt/styles/variables.scss +0 -92
  67. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.html +0 -3
  68. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.scss +0 -37
  69. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.ts +0 -40
  70. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -158
  71. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -430
  72. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -362
  73. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -33
  74. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -102
  75. package/projects/tuki/widgets/di2mt/widgets/site-upgrade/types/user-upgrade.ts +0 -22
  76. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -52
  77. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -53
  78. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -67
  79. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -7
  80. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
  81. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -45
  82. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -7
  83. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
  84. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -45
  85. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -59
  86. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -70
  87. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/types/upgrade-overview.ts +0 -58
  88. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +0 -42
  89. package/projects/tuki/widgets/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +0 -95
  90. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/types/user-upgrade.ts +0 -19
  91. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +0 -186
  92. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +0 -345
  93. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -313
  94. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -34
  95. package/projects/tuki/widgets/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -79
  96. package/projects/tuki/widgets/karma.conf.js +0 -44
  97. package/projects/tuki/widgets/ng-package.json +0 -10
  98. package/projects/tuki/widgets/package.json +0 -13
  99. package/projects/tuki/widgets/src/lib/widgets.component.spec.ts +0 -23
  100. package/projects/tuki/widgets/src/lib/widgets.component.ts +0 -20
  101. package/projects/tuki/widgets/src/lib/widgets.module.ts +0 -16
  102. package/projects/tuki/widgets/src/lib/widgets.service.spec.ts +0 -16
  103. package/projects/tuki/widgets/src/lib/widgets.service.ts +0 -9
  104. package/projects/tuki/widgets/src/test.ts +0 -27
  105. package/projects/tuki/widgets/styles.scss +0 -572
  106. package/projects/tuki/widgets/tsconfig.lib.json +0 -36
  107. package/projects/tuki/widgets/tsconfig.lib.prod.json +0 -10
  108. package/projects/tuki/widgets/tsconfig.spec.json +0 -17
  109. package/projects/tuki/widgets/user-device-manage/ng-package.json +0 -7
  110. package/projects/tuki/widgets/user-device-manage/public-api.ts +0 -8
  111. package/projects/tuki/widgets/user-device-manage/src/app.constants.ts +0 -96
  112. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-left.svg +0 -5
  113. package/projects/tuki/widgets/user-device-manage/src/assets/icons/arrow-right.svg +0 -5
  114. package/projects/tuki/widgets/user-device-manage/src/assets/icons/close_icon_x.svg +0 -3
  115. package/projects/tuki/widgets/user-device-manage/src/assets/icons/delete_icon.svg +0 -5
  116. package/projects/tuki/widgets/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  117. package/projects/tuki/widgets/user-device-manage/src/assets/icons/icon_user.svg +0 -1
  118. package/projects/tuki/widgets/user-device-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  119. package/projects/tuki/widgets/user-device-manage/src/classes/device.ts +0 -292
  120. package/projects/tuki/widgets/user-device-manage/src/classes/line-association-interface.ts +0 -50
  121. package/projects/tuki/widgets/user-device-manage/src/classes/line-association.ts +0 -177
  122. package/projects/tuki/widgets/user-device-manage/src/classes/line-call-info-display.ts +0 -21
  123. package/projects/tuki/widgets/user-device-manage/src/classes/line-directory.ts +0 -41
  124. package/projects/tuki/widgets/user-device-manage/src/classes/line.ts +0 -144
  125. package/projects/tuki/widgets/user-device-manage/src/classes/notification.ts +0 -40
  126. package/projects/tuki/widgets/user-device-manage/src/classes/recording-options.ts +0 -6
  127. package/projects/tuki/widgets/user-device-manage/src/classes/simplified-user.ts +0 -169
  128. package/projects/tuki/widgets/user-device-manage/src/classes/site-defaults.ts +0 -167
  129. package/projects/tuki/widgets/user-device-manage/src/classes/translation-pattern.ts +0 -50
  130. package/projects/tuki/widgets/user-device-manage/src/classes/types.ts +0 -19
  131. package/projects/tuki/widgets/user-device-manage/src/classes/user-interface.ts +0 -225
  132. package/projects/tuki/widgets/user-device-manage/src/classes/user.ts +0 -8
  133. package/projects/tuki/widgets/user-device-manage/src/common-functions.ts +0 -16
  134. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.html +0 -14
  135. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.scss +0 -80
  136. package/projects/tuki/widgets/user-device-manage/src/confirm-dialog/info-dialog.component.ts +0 -35
  137. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +0 -21
  138. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +0 -97
  139. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +0 -28
  140. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +0 -6
  141. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +0 -20
  142. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +0 -13
  143. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +0 -6
  144. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +0 -4
  145. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +0 -63
  146. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.html +0 -241
  147. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.scss +0 -500
  148. package/projects/tuki/widgets/user-device-manage/src/device-associated-line/device-associated-line.component.ts +0 -194
  149. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.html +0 -27
  150. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.scss +0 -131
  151. package/projects/tuki/widgets/user-device-manage/src/device-list/device-list.component.ts +0 -25
  152. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.html +0 -209
  153. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.scss +0 -502
  154. package/projects/tuki/widgets/user-device-manage/src/device-manage-widget.component.ts +0 -354
  155. package/projects/tuki/widgets/user-device-manage/src/environments/environment.prod.ts +0 -9
  156. package/projects/tuki/widgets/user-device-manage/src/environments/environment.ts +0 -10
  157. package/projects/tuki/widgets/user-device-manage/src/interseptors/auth.interceptor.ts +0 -35
  158. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  159. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  160. package/projects/tuki/widgets/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  161. package/projects/tuki/widgets/user-device-manage/src/material.module.ts +0 -87
  162. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.html +0 -33
  163. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.scss +0 -84
  164. package/projects/tuki/widgets/user-device-manage/src/notifications/notification.component.ts +0 -46
  165. package/projects/tuki/widgets/user-device-manage/src/removeKynFromIBM.service.ts +0 -25
  166. package/projects/tuki/widgets/user-device-manage/src/services/api.service.ts +0 -87
  167. package/projects/tuki/widgets/user-device-manage/src/services/common-functions.ts +0 -17
  168. package/projects/tuki/widgets/user-device-manage/src/services/device.service.ts +0 -95
  169. package/projects/tuki/widgets/user-device-manage/src/services/dns.service.ts +0 -111
  170. package/projects/tuki/widgets/user-device-manage/src/services/line.service.ts +0 -89
  171. package/projects/tuki/widgets/user-device-manage/src/services/notification.service.ts +0 -68
  172. package/projects/tuki/widgets/user-device-manage/src/services/removeKynFromIBM.service.ts +0 -25
  173. package/projects/tuki/widgets/user-device-manage/src/services/site-settings.service.ts +0 -82
  174. package/projects/tuki/widgets/user-device-manage/src/services/sorting-utils.service.ts +0 -203
  175. package/projects/tuki/widgets/user-device-manage/src/services/user.service.ts +0 -283
  176. package/projects/tuki/widgets/user-device-manage/src/services/utils.service.ts +0 -87
  177. package/projects/tuki/widgets/user-device-manage/src/services/validation.service.ts +0 -829
  178. package/projects/tuki/widgets/user-device-manage/src/styles/_variables.scss +0 -90
  179. package/projects/tuki/widgets/user-device-manage/src/styles/form.scss +0 -231
  180. package/projects/tuki/widgets/user-device-manage/src/styles/icons.scss +0 -32
  181. package/projects/tuki/widgets/user-device-manage/src/styles/styles.scss +0 -110
  182. package/projects/tuki/widgets/user-device-manage/src/styles/tables.scss +0 -30
  183. package/projects/tuki/widgets/user-device-manage/src/user-device-manage.module.ts +0 -73
  184. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.html +0 -6
  185. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  186. package/projects/tuki/widgets/user-device-manage/src/utils/app-loader/app-loader.ts +0 -13
  187. package/projects/tuki/widgets/user-manage/ng-package.json +0 -7
  188. package/projects/tuki/widgets/user-manage/public-api.ts +0 -6
  189. package/projects/tuki/widgets/user-manage/src/app.constants.ts +0 -50
  190. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-left.svg +0 -5
  191. package/projects/tuki/widgets/user-manage/src/assets/icons/arrow-right.svg +0 -5
  192. package/projects/tuki/widgets/user-manage/src/assets/icons/delete_icon.svg +0 -5
  193. package/projects/tuki/widgets/user-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
  194. package/projects/tuki/widgets/user-manage/src/assets/icons/icon_user.svg +0 -1
  195. package/projects/tuki/widgets/user-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
  196. package/projects/tuki/widgets/user-manage/src/classes/device.ts +0 -232
  197. package/projects/tuki/widgets/user-manage/src/classes/line-association-interface.ts +0 -43
  198. package/projects/tuki/widgets/user-manage/src/classes/line-association.ts +0 -161
  199. package/projects/tuki/widgets/user-manage/src/classes/line-call-info-display.ts +0 -21
  200. package/projects/tuki/widgets/user-manage/src/classes/line-directory.ts +0 -42
  201. package/projects/tuki/widgets/user-manage/src/classes/line.ts +0 -144
  202. package/projects/tuki/widgets/user-manage/src/classes/notification.ts +0 -39
  203. package/projects/tuki/widgets/user-manage/src/classes/pagination.ts +0 -18
  204. package/projects/tuki/widgets/user-manage/src/classes/recording-options.ts +0 -6
  205. package/projects/tuki/widgets/user-manage/src/classes/simplified-user.ts +0 -165
  206. package/projects/tuki/widgets/user-manage/src/classes/table-data.ts +0 -6
  207. package/projects/tuki/widgets/user-manage/src/classes/translation-pattern.ts +0 -49
  208. package/projects/tuki/widgets/user-manage/src/classes/user-interface.ts +0 -225
  209. package/projects/tuki/widgets/user-manage/src/classes/user-list.ts +0 -42
  210. package/projects/tuki/widgets/user-manage/src/classes/user.ts +0 -8
  211. package/projects/tuki/widgets/user-manage/src/common-functions.ts +0 -16
  212. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.html +0 -27
  213. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.scss +0 -131
  214. package/projects/tuki/widgets/user-manage/src/device-list/device-list.component.ts +0 -25
  215. package/projects/tuki/widgets/user-manage/src/environments/environment.prod.ts +0 -9
  216. package/projects/tuki/widgets/user-manage/src/environments/environment.ts +0 -10
  217. package/projects/tuki/widgets/user-manage/src/interseptors/auth.interceptor.ts +0 -35
  218. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
  219. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
  220. package/projects/tuki/widgets/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
  221. package/projects/tuki/widgets/user-manage/src/material.module.ts +0 -85
  222. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.html +0 -33
  223. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.scss +0 -84
  224. package/projects/tuki/widgets/user-manage/src/notifications/notification.component.ts +0 -46
  225. package/projects/tuki/widgets/user-manage/src/removeKynFromIBM.service.ts +0 -25
  226. package/projects/tuki/widgets/user-manage/src/services/api.service.ts +0 -90
  227. package/projects/tuki/widgets/user-manage/src/services/dns.service.ts +0 -116
  228. package/projects/tuki/widgets/user-manage/src/services/line.service.ts +0 -31
  229. package/projects/tuki/widgets/user-manage/src/services/notification.service.ts +0 -68
  230. package/projects/tuki/widgets/user-manage/src/services/removeKynFromIBM.service.ts +0 -25
  231. package/projects/tuki/widgets/user-manage/src/services/site-settings.service.ts +0 -35
  232. package/projects/tuki/widgets/user-manage/src/services/sorting-utils.service.ts +0 -203
  233. package/projects/tuki/widgets/user-manage/src/services/user.service.ts +0 -242
  234. package/projects/tuki/widgets/user-manage/src/services/users-search.service.ts +0 -59
  235. package/projects/tuki/widgets/user-manage/src/services/utils.service.ts +0 -71
  236. package/projects/tuki/widgets/user-manage/src/styles/_variables.scss +0 -90
  237. package/projects/tuki/widgets/user-manage/src/styles/form.scss +0 -231
  238. package/projects/tuki/widgets/user-manage/src/styles/icons.scss +0 -32
  239. package/projects/tuki/widgets/user-manage/src/styles/styles.scss +0 -110
  240. package/projects/tuki/widgets/user-manage/src/styles/tables.scss +0 -30
  241. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +0 -10
  242. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +0 -429
  243. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +0 -63
  244. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.html +0 -32
  245. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.scss +0 -444
  246. package/projects/tuki/widgets/user-manage/src/user-calling/user-calling.component.ts +0 -89
  247. package/projects/tuki/widgets/user-manage/src/user-details/notification.service.ts +0 -68
  248. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.html +0 -29
  249. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.scss +0 -64
  250. package/projects/tuki/widgets/user-manage/src/user-info/user-info.component.ts +0 -19
  251. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.html +0 -290
  252. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.scss +0 -463
  253. package/projects/tuki/widgets/user-manage/src/user-manage-widget.component.ts +0 -212
  254. package/projects/tuki/widgets/user-manage/src/user-manage.module.ts +0 -63
  255. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.html +0 -6
  256. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.component.scss +0 -11
  257. package/projects/tuki/widgets/user-manage/src/utils/app-loader/app-loader.ts +0 -13
  258. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.html +0 -26
  259. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.scss +0 -41
  260. package/projects/tuki/widgets/user-manage/src/utils/pagination/pagination.component.ts +0 -41
  261. package/projects/tuki/widgets/users-list/ng-package.json +0 -7
  262. package/projects/tuki/widgets/users-list/public-api.ts +0 -8
  263. package/projects/tuki/widgets/users-list/src/app.constants.ts +0 -54
  264. package/projects/tuki/widgets/users-list/src/assets/icons/close_icon_modal.svg +0 -3
  265. package/projects/tuki/widgets/users-list/src/assets/icons/icon_user.svg +0 -1
  266. package/projects/tuki/widgets/users-list/src/assets/icons/move_user_to_another_location.svg +0 -14
  267. package/projects/tuki/widgets/users-list/src/assets/icons/white-close-icon.svg +0 -3
  268. package/projects/tuki/widgets/users-list/src/classes/app-location.ts +0 -36
  269. package/projects/tuki/widgets/users-list/src/classes/device.ts +0 -225
  270. package/projects/tuki/widgets/users-list/src/classes/line.ts +0 -144
  271. package/projects/tuki/widgets/users-list/src/classes/move-user.ts +0 -225
  272. package/projects/tuki/widgets/users-list/src/classes/notification.ts +0 -38
  273. package/projects/tuki/widgets/users-list/src/classes/pagination.ts +0 -18
  274. package/projects/tuki/widgets/users-list/src/classes/simlified-user.ts +0 -74
  275. package/projects/tuki/widgets/users-list/src/classes/table-data.ts +0 -6
  276. package/projects/tuki/widgets/users-list/src/classes/user-interface.ts +0 -225
  277. package/projects/tuki/widgets/users-list/src/classes/user-list.ts +0 -47
  278. package/projects/tuki/widgets/users-list/src/classes/user.ts +0 -8
  279. package/projects/tuki/widgets/users-list/src/material.module.ts +0 -94
  280. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +0 -37
  281. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +0 -129
  282. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +0 -46
  283. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +0 -31
  284. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +0 -20
  285. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +0 -26
  286. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +0 -222
  287. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +0 -239
  288. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +0 -206
  289. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.html +0 -12
  290. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.scss +0 -41
  291. package/projects/tuki/widgets/users-list/src/move-user-wizard/move-user-wizard.component.ts +0 -36
  292. package/projects/tuki/widgets/users-list/src/services/api-webex.service.ts +0 -14
  293. package/projects/tuki/widgets/users-list/src/services/api.service.ts +0 -90
  294. package/projects/tuki/widgets/users-list/src/services/dns.service.ts +0 -128
  295. package/projects/tuki/widgets/users-list/src/services/events-communication.service.ts +0 -11
  296. package/projects/tuki/widgets/users-list/src/services/move-user.service.ts +0 -59
  297. package/projects/tuki/widgets/users-list/src/services/notification.service.ts +0 -68
  298. package/projects/tuki/widgets/users-list/src/services/removeKynFromIBM.service.ts +0 -25
  299. package/projects/tuki/widgets/users-list/src/services/site-settings.service.ts +0 -26
  300. package/projects/tuki/widgets/users-list/src/services/user.service.ts +0 -159
  301. package/projects/tuki/widgets/users-list/src/services/users-search.service.ts +0 -139
  302. package/projects/tuki/widgets/users-list/src/styles/styles.scss +0 -572
  303. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +0 -15
  304. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +0 -103
  305. package/projects/tuki/widgets/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +0 -35
  306. package/projects/tuki/widgets/users-list/src/users-list.component.css +0 -4
  307. package/projects/tuki/widgets/users-list/src/users-list.component.css.map +0 -1
  308. package/projects/tuki/widgets/users-list/src/users-list.component.html +0 -86
  309. package/projects/tuki/widgets/users-list/src/users-list.component.scss +0 -572
  310. package/projects/tuki/widgets/users-list/src/users-list.component.ts +0 -312
  311. package/projects/tuki/widgets/users-list/src/users-list.module.ts +0 -63
  312. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css +0 -11
  313. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.css.map +0 -1
  314. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.html +0 -6
  315. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.component.scss +0 -11
  316. package/projects/tuki/widgets/users-list/src/utils/app-loader/app-loader.ts +0 -13
  317. package/projects/tuki/widgets/users-list/src/utils/common-functions.ts +0 -32
  318. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.html +0 -33
  319. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.scss +0 -84
  320. package/projects/tuki/widgets/users-list/src/utils/notifications/notification.component.ts +0 -46
  321. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css +0 -45
  322. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.css.map +0 -1
  323. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.html +0 -26
  324. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.scss +0 -41
  325. package/projects/tuki/widgets/users-list/src/utils/pagination/pagination.component.ts +0 -41
  326. package/projects/tuki/widgets/users-list/src/utils/utils.service.ts +0 -71
  327. package/projects/widgets-playground/src/app/app.component.html +0 -109
  328. package/projects/widgets-playground/src/app/app.component.scss +0 -15
  329. package/projects/widgets-playground/src/app/app.component.spec.ts +0 -31
  330. package/projects/widgets-playground/src/app/app.component.ts +0 -31
  331. package/projects/widgets-playground/src/app/app.module.ts +0 -43
  332. package/projects/widgets-playground/src/assets/.gitkeep +0 -0
  333. package/projects/widgets-playground/src/assets/icons/already_upgraded.png +0 -0
  334. package/projects/widgets-playground/src/assets/icons/check2_icon.png +0 -0
  335. package/projects/widgets-playground/src/assets/icons/check_icon.png +0 -0
  336. package/projects/widgets-playground/src/assets/icons/expand_icon.png +0 -0
  337. package/projects/widgets-playground/src/assets/icons/issue_icon.png +0 -0
  338. package/projects/widgets-playground/src/assets/icons/menu_icon.png +0 -0
  339. package/projects/widgets-playground/src/assets/icons/ready_to_upgrade.png +0 -0
  340. package/projects/widgets-playground/src/assets/icons/search_icon.png +0 -0
  341. package/projects/widgets-playground/src/assets/icons/site.png +0 -0
  342. package/projects/widgets-playground/src/assets/icons/user.png +0 -0
  343. package/projects/widgets-playground/src/assets/icons/warning_icon.png +0 -0
  344. package/projects/widgets-playground/src/favicon.ico +0 -0
  345. package/projects/widgets-playground/src/index.html +0 -13
  346. package/projects/widgets-playground/src/main.ts +0 -7
  347. package/projects/widgets-playground/src/styles.scss +0 -23
  348. package/projects/widgets-playground/tsconfig.app.json +0 -14
  349. package/projects/widgets-playground/tsconfig.spec.json +0 -14
  350. package/proxy.conf.js +0 -23
  351. package/tsconfig.json +0 -46
  352. /package/{projects/tuki/widgets/di2mt → di2mt}/README.md +0 -0
@@ -1,829 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { SiteSettingsService } from './site-settings.service';
3
- import { DeviceTypes, MailboxQuotasType, SpeedDialType, VMNotificationsTypes } from './../classes/types';
4
- import { Device, DeviceKind } from './../classes/device';
5
-
6
- const speedDialRegex = new RegExp('^[^"]*$');
7
- const BLFRegex = new RegExp('^[^"><&%]*$');
8
- const timeRegex = new RegExp('^([0-1][0-9]|[2][0-3]):([0-5][0-9])$');
9
-
10
- @Injectable()
11
- export class ValidationService {
12
-
13
- constructor(
14
- private siteSettingsService: SiteSettingsService,
15
- ) {
16
- }
17
-
18
- e164MaskLabel(control: any) {
19
- const ruleText = `^[0-9*#+X]{0,24}$`;
20
- const rule = new RegExp(ruleText, 'g');
21
- if (control.value && rule && !rule.test(control.value)) {
22
- return {e164MaskRule: {rule: ruleText}};
23
- }
24
- return null;
25
- }
26
-
27
- index(control: any) {
28
- const value = parseInt(control.value);
29
- if (!value) {
30
- return null;
31
- }
32
- const pattern = '^[+0-9]*$';
33
- if (value && !Number.isInteger(value) || value < 1 || value > 199) {
34
- return {indexRule: true};
35
- }
36
- return null;
37
- }
38
-
39
- displayLabel(control: any) {
40
- const ruleText = `^[^""""%&<>]{0,30}$`;
41
- const rule = new RegExp(ruleText, 'g');
42
- if (rule && !rule.test(control.value)) {
43
- return {labelRule: {rule: ruleText, count: 30}};
44
- }
45
- return null;
46
- }
47
-
48
-
49
-
50
- displayLabelAscii(control: any) {
51
- const ruleText = '^[a-zA-Z0-9 !#$\'()*+,./:;=?@\\^_`}~-]{0,30}$';
52
- const rule = new RegExp(ruleText, 'g');
53
- if (rule && !rule.test(control.value)) {
54
- return {labelRule: {rule: ruleText, count: 30}};
55
- }
56
- return null;
57
- }
58
-
59
- requiredForSpeedDialPosition(type: string) {
60
-
61
- return (control: any) => {
62
- const parent = control.parent;
63
- if (type === SpeedDialType.slotBasic || !parent) {
64
- return null;
65
- }
66
- if (!control.value) {
67
- return {required: true};
68
- }
69
- return null;
70
- };
71
- }
72
-
73
- speedDialDestination() {
74
- return (control: any) => {
75
- if (!control || !control.value) {
76
- return null;
77
- }
78
- const numberOrHostNameIP = '' +
79
- '^([0-9\\*#+PpCcFf,]+)$' +
80
- '|' +
81
- '^(' +
82
- '([a-zA-Z0-9]){1,47}@' +
83
- '(' +
84
- '((?:[0-9]{1,3}\\.){3}[0-9]{1,3})' +
85
- '|' +
86
- '([a-zA-Z0-9][a-zA-Z0-9\\-]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,})' +
87
- ')' +
88
- ')$';
89
- const rule = new RegExp(numberOrHostNameIP, 'g');
90
- if (rule && !rule.test(control.value)) {
91
- return {pattern: true};
92
- }
93
- return null;
94
- };
95
-
96
- }
97
-
98
- requiredForSpeedDialDestination(type: string) {
99
-
100
- return (control: any) => {
101
- const parent = control.parent;
102
- if ((!parent || !parent.get('label')) || (type === SpeedDialType.slotBasic && !control.value && !parent.get('label').value)) {
103
- return null;
104
- }
105
- return null;
106
- };
107
- }
108
-
109
-
110
- labelPatternDependingOnType(control: any) {
111
- const parent = control?.parent;
112
- if (!parent || !parent.get('type') || !control.value) {
113
- return null;
114
- }
115
- const type = parent.get('type').value;
116
- if (!type && !speedDialRegex.test(control.value)) {
117
- return {labelRule: {wrong: '"'}};
118
- }
119
- if (type && !BLFRegex.test(control.value)) {
120
- return {labelRule: {wrong: '"><&%'}};
121
- }
122
- return null;
123
- }
124
-
125
- labelPatternBLF(control: any) {
126
- if (control.value && !BLFRegex.test(control.value)) {
127
- return {labelRule: {wrong: '"><&%'}};
128
- }
129
- return null;
130
- }
131
-
132
- labelPatternSpeedDial(control: any) {
133
- if (control?.value && !speedDialRegex.test(control.value)) {
134
- return {labelRule: {wrong: '"'}};
135
- }
136
- return null;
137
- }
138
-
139
- matchControl = (fieldName: string) => {
140
- return (control: any) => {
141
- if (!control?.parent) {
142
- return null;
143
- }
144
- const matchingControl = control.parent.get(fieldName);
145
- if (matchingControl.value && matchingControl.value !== control.value) {
146
- return {
147
- matchControl: true
148
- };
149
- }
150
- return null;
151
- };
152
- };
153
-
154
- matchLength = (fieldName: string) => {
155
- return (control: any) => {
156
- if (!control.parent || !control.value) {
157
- return null;
158
- }
159
- const matchingControl = control.parent.get(fieldName);
160
- if (((!control.value.startsWith('+') && !matchingControl.value.startsWith('+')) ||
161
- (control.value.startsWith('+') && matchingControl.value.startsWith('+'))) &&
162
- ((!control.value.startsWith('\\+') && !matchingControl.value.startsWith('\\+')) ||
163
- (control.value.startsWith('\\+') && matchingControl.value.startsWith('\\+'))) &&
164
- matchingControl.value.length !== control.value.length) {
165
- return {
166
- matchLength: true
167
- };
168
- }
169
- return null;
170
- };
171
- };
172
-
173
- dynamicMaxLength = (length1: number, length2: number) => {
174
- return (control: any) => {
175
- if (!control.parent || !control.value) {
176
- return null;
177
- }
178
- const maxLength = String(control.value).includes('[') ? length1 : length2;
179
- if (control.value.length > maxLength) {
180
- return {
181
- maxLength: true
182
- };
183
- }
184
- return null;
185
- };
186
- };
187
-
188
- biggerThan = (fieldName: string) => {
189
- return (control: any) => {
190
- if (!control.parent || !control.value) {
191
- return null;
192
- }
193
- const matchingControl = control.parent.get(fieldName);
194
- if (matchingControl.value.length === control.value.length && matchingControl.value && matchingControl.value > control.value) {
195
- return {
196
- biggerThan: true
197
- };
198
- }
199
- return null;
200
- };
201
- };
202
-
203
- requiredByType = (fieldName: string, type: string) => {
204
- return (control: any) => {
205
- if (
206
- fieldName === 'phoneSystem' && (type === VMNotificationsTypes['Phone Device'] || type === VMNotificationsTypes['Pager Device']) ||
207
- fieldName === 'htmlTemplate' && type === VMNotificationsTypes['HTML Device']
208
- ) {
209
- return {
210
- required: true
211
- };
212
- }
213
- return null;
214
- };
215
- };
216
-
217
- smallerThanQuota = (fieldName: string, quotaType: string, secondQuotaType: string) => {
218
- return (control: any) => {
219
- if (!control.parent) {
220
- return null;
221
- }
222
- const matchingControl = control.parent.get(fieldName);
223
- const quotaTypeControl = control.parent.get(quotaType);
224
- const secondQuotaTypeControl = control.parent.get(secondQuotaType);
225
-
226
- if (quotaTypeControl && secondQuotaTypeControl && secondQuotaTypeControl.value === MailboxQuotasType.system) {
227
- return null;
228
- }
229
-
230
- if (quotaTypeControl && quotaTypeControl.value === MailboxQuotasType.system || matchingControl && matchingControl.value && parseInt(matchingControl.value) < parseInt(control.value)) {
231
- return {
232
- smallerThan: true
233
- };
234
- }
235
- return null;
236
- };
237
- };
238
-
239
- biggerThanQuota = (fieldName: string, quotaType: string) => {
240
- return (control: any) => {
241
- if (!control?.parent) {
242
- return null;
243
- }
244
- const matchingControl = control.parent.get(fieldName);
245
- const quotaTypeControl = control.parent.get(quotaType);
246
-
247
- if (quotaTypeControl && quotaTypeControl.value === MailboxQuotasType.custom && matchingControl.value && parseInt(matchingControl.value) > parseInt(control.value)) {
248
- return {
249
- biggerThan: true
250
- };
251
- }
252
- return null;
253
- };
254
- };
255
-
256
- rangeLimit = (fieldName: string) => {
257
- return (control: any) => {
258
- if (!control?.parent || !control.value) {
259
- return null;
260
- }
261
- const matchingControl = control.parent.get(fieldName);
262
- if ((control.value - matchingControl.value) > 50000) {
263
- return {
264
- rangeLimit: true
265
- };
266
- }
267
- return null;
268
- };
269
- };
270
-
271
- comparepatternParts = (fieldName: string) => {
272
- return (control: any) => {
273
- if (!control?.value) {
274
- return null;
275
- }
276
- const matches = control.value.match(/\[(.*?)\]/);
277
- if (matches) {
278
- const submatch = matches[1];
279
- const submatchsplit: number[] = submatch.split('-');
280
- for (let i = 0; i < submatchsplit.length; i++) {
281
- if (submatchsplit[i] >= submatchsplit[i + 1]) {
282
- return {
283
- comparepatternParts: true
284
- };
285
- }
286
- }
287
- }
288
- return null;
289
- };
290
- };
291
-
292
- matchPrefix = (fieldName: string) => {
293
- return (control: any) => {
294
- if (!control?.parent || !control.value) {
295
- return null;
296
- }
297
- const matchingControl = control.parent.get(fieldName);
298
- if ((matchingControl.value.startsWith('+') || control.value.startsWith('+') || matchingControl.value.startsWith('\\+') || control.value.startsWith('\\+')) && (control.value.charAt(0) !== matchingControl.value.charAt(0))) {
299
- return {
300
- matchPrefix: true
301
- };
302
- }
303
- return null;
304
- };
305
- };
306
-
307
- deviceNameValidator = (device: Device) => {
308
- return (control: any) => {
309
- if (!control.value || device.deviceKind === DeviceKind.deviceProfile) {
310
- return;
311
- }
312
- if (device.isCtiRoutePoint) {
313
- let err = '';
314
- if (!control.value.match(/^[a-zA-Z0-9-_.]+$/)) {
315
- err = 'pattern';
316
- }
317
- if (control.value.trim().length > 15) {
318
- err = 'maxLength';
319
- }
320
- return err ? {nameRule: err} : null;
321
- }
322
- if (device.deviceDefaults && !device.isCtiRoutePoint) {
323
- const ruleText = device.deviceDefaults.deviceNameRegex;
324
- const rule = new RegExp(ruleText, 'g');
325
- const caption = device.deviceDefaults?.deviceNameExplained;
326
- const match = (control.value || '').match(rule) || [];
327
- const exactMatch = match && control.value === match[0];
328
- if (rule && !exactMatch) {
329
- return {nameRule: {caption}};
330
- }
331
- }
332
- return null;
333
- };
334
- };
335
-
336
- deviceNameValueValidator = (device: Device, deviceName: string) => {
337
- return (control: any) => {
338
- if (!control.value || device.deviceKind === DeviceKind.deviceProfile) {
339
- return;
340
- }
341
- if (device.name && device.alreadyUsedName && device.name === device.alreadyUsedName) {
342
- return {nameRule: 'alreadyUsedName'};
343
- }
344
- if (device.isCtiRoutePoint) {
345
- let err = '';
346
- if (!deviceName.match(/^[a-zA-Z0-9-_.]+$/)) {
347
- err = 'pattern';
348
- }
349
- if (deviceName.trim().length > 15) {
350
- err = 'maxLength';
351
- }
352
- return err ? {nameRule: err} : null;
353
- }
354
- if (device.deviceDefaults && !device.isCtiRoutePoint) {
355
- const ruleText = device.deviceDefaults.deviceNameRegex;
356
- // console.log('Dev name rule - ', ruleText);
357
- const rule = new RegExp(ruleText, 'g');
358
- let caption = device.deviceDefaults.deviceNameExplained;
359
- if (!caption) {
360
- caption = ruleText;
361
- }
362
- const match = (deviceName || '').match(rule) || [];
363
- const exactMatch = match && deviceName === match[0];
364
- if (rule && !exactMatch) {
365
- return {nameRule: {caption}};
366
- }
367
- }
368
- return null;
369
- };
370
- };
371
-
372
- deviceDuplicatingNameValidator = (user: any, pkid ?: string, prefix?: string) => {
373
- return (control: any) => {
374
- if (!control.value || !user || !user.devices || user.devices.length === 0) {
375
- return;
376
- }
377
- const deviceName = prefix ? `${prefix}${control.value}` : control.value;
378
- const devicesWithTheSameName = user.devices.filter((device: Device) => device.name === deviceName);
379
- if (devicesWithTheSameName.length > 0) {
380
- if (!pkid) { // For new device
381
- return {duplicateNameRule: true};
382
- } else if (pkid !== devicesWithTheSameName[0].pkid) { // For updating device, avoid validating with itself
383
- return {duplicateNameRule: true};
384
- }
385
- }
386
- return null;
387
- };
388
- };
389
-
390
- conditionalRequired = (fieldName: string, requiredConditionValues: any[]) => {
391
- return (control: any) => {
392
- const parent1 = control.parent;
393
- if (!parent1 || !parent1.get(fieldName) || !parent1.get(fieldName).value) {
394
- return;
395
- }
396
- if (requiredConditionValues.includes(parent1.get(fieldName).value) && !control.value) {
397
- return {
398
- required: true
399
- };
400
- }
401
- return null;
402
- };
403
- };
404
-
405
- conditionalRequiredForGroupAdmin = (fieldName: string, requiredConditionValues: any[]) => {
406
- return (control: any) => {
407
- const parent1 = control.parent;
408
- if (!parent1 || !parent1.get(fieldName) || !parent1.get(fieldName).value || !parent1.get(fieldName).value.type) {
409
- return;
410
- }
411
- if (requiredConditionValues.includes(parent1.get(fieldName).value.type) && !control.value) {
412
- return {
413
- required: true
414
- };
415
- }
416
- return null;
417
- };
418
- };
419
-
420
- conditionalSiteGroupCheckForGroupAdmin = (fieldName: string, requiredConditionValues: any[]) => {
421
- return (control: any) => {
422
- const parent1 = control.parent;
423
- if (!parent1 || !parent1.get(fieldName) || !parent1.get(fieldName).value || !parent1.get(fieldName).value.type) {
424
- return;
425
- }
426
- if (parent1.get(fieldName).value && requiredConditionValues.includes(parent1.get(fieldName).value.type) &&
427
- parent1.get('siteGroup') && parent1.get('siteGroup').value &&
428
- parent1.get('siteGroup').value.siteGroupMembers && parent1.get('siteGroup').value.siteGroupMembers.length < 1) {
429
- return {
430
- hasSiteGroupError: true
431
- };
432
- }
433
- return null;
434
- };
435
- };
436
-
437
- requiredIfFieldIsEmptyForBLF = (fieldName: any) => {
438
- const DATE_PATTERN = '^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d$';
439
- return (control: any) => {
440
- const parent = control.parent;
441
- if (!parent || !parent.get(fieldName)) {
442
- return null;
443
- }
444
- if (!parent.get(fieldName).value && !control.value) {
445
- return {
446
- requiredEither: true,
447
- requiredBLFDN: true
448
- };
449
- }
450
- return null;
451
- };
452
- };
453
-
454
-
455
- validDate = (fieldName: string) => {
456
-
457
- return (control: any) => {
458
- const parent = control.parent;
459
- const ruleText = '^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d$';
460
- const rule = new RegExp(ruleText, 'g');
461
- const val = control.value && control.value.getDate();
462
- if (rule && !rule.test(val)) {
463
- return {pattern: true};
464
- }
465
- return null;
466
- };
467
- };
468
-
469
-
470
- matchOption = (optionType: string, list?: any, isFullList?: boolean) => {
471
- return (control: any) => {
472
- if (!control.value || control.value === DeviceTypes.CTI_ROUTE_POINT) {
473
- return null;
474
- }
475
- let optionList = list || this.getOptionsList(optionType);
476
- if (optionList && optionList.length) {
477
- if (!isFullList && optionType === 'directoryNumbers') {
478
- optionList = optionList.map((str: string) => str.indexOf(' ') > -1 ? str.substring(0, str.indexOf(' ')) : str);
479
- }
480
- if (!optionList.includes(control.value)) {
481
- return {
482
- matchOptions: true
483
- };
484
- }
485
- }
486
- return null;
487
- };
488
- };
489
-
490
- confidentialAccessLevel = (confidentialAccessMode: string) => {
491
- return (control: any) => {
492
- if (!control.value && !confidentialAccessMode) {
493
- return null;
494
- }
495
- if (!control.value) {
496
- return {
497
- required: true
498
- };
499
- }
500
- return null;
501
- };
502
- };
503
-
504
- noResultDN = (optionType: string, list?: any) => {
505
- return (control: any) => {
506
- if (!control.value || list === null) {
507
- return null;
508
- }
509
- if (list && list.length === 0) {
510
- return {
511
- noResultDNs: true
512
- };
513
- }
514
- return null;
515
- };
516
- };
517
-
518
- matchExtensionOption = (optionType: string, optionList?: any) => {
519
- return (control: any) => {
520
- if (!control.value) {
521
- return control.value;
522
- }
523
- // @ts-ignore
524
- const newList = [];
525
- if (optionList && optionList.length) {
526
- optionList.forEach((list: any) => {
527
- const newOptionList = this.getMatchExistingVmLineValue(list);
528
- newList.push(newOptionList);
529
- });
530
- // @ts-ignore
531
- if (newList && !newList.includes(control.value)) {
532
- return {
533
- matchOptions: true
534
- };
535
- }
536
- } else if (!optionList || !optionList.length) {
537
- return {
538
- matchOptions: true
539
- };
540
- }
541
- return null;
542
- };
543
- };
544
-
545
- public getMatchExistingVmLineValue(dnWithType: string): string {
546
- const ind = dnWithType.indexOf('Type:');
547
- let dn = dnWithType;
548
- if (ind > -1) {
549
- dn = dnWithType.slice(0, ind);
550
- dn = dn.trim();
551
- }
552
- return dn;
553
- }
554
-
555
- requiredEitherForVmExtension = (fieldName1: string, fieldName2: string) => {
556
- return (control: any) => {
557
- if (!control.parent) {
558
- return null;
559
- }
560
- const matchControl1 = control.parent.get(fieldName1).value;
561
- const matchControl2 = control.parent.get(fieldName2).value;
562
- if (!matchControl1 && !matchControl2) {
563
- return {
564
- requiredEitherForVmExtension: true
565
- };
566
- }
567
- return null;
568
- };
569
- };
570
-
571
- requiredEitherOne = (fieldName1: string, fieldName2: string) => {
572
- return (control: any) => {
573
- if (!control.parent) {
574
- return null;
575
- }
576
- const matchControl1 = control.parent.get(fieldName1) && control.parent.get(fieldName1).value;
577
- const matchControl2 = control.parent.get(fieldName2) && control.parent.get(fieldName2).value;
578
- if (!matchControl1 && !matchControl2) {
579
- return {
580
- requiredEitherOne: true
581
- };
582
- }
583
- return null;
584
- };
585
- };
586
-
587
- requiredByValue = (fieldName: string, requestedFieldVal: any) => {
588
- return (control: any) => {
589
- if (!control || !control.parent) {
590
- return null;
591
- }
592
- const fieldVal = control.parent.get(fieldName) && control.parent.get(fieldName).value;
593
- if (fieldVal && fieldVal === requestedFieldVal && !control.value) {
594
- return {
595
- required: true
596
- };
597
- }
598
- return null;
599
- };
600
- };
601
-
602
- OneExtensionEmpty = (fieldName1: string, fieldName2: string) => {
603
- return (control: any) => {
604
- if (!control.parent) {
605
- return null;
606
- }
607
- const matchControl1 = control.parent.get(fieldName1).value;
608
- const matchControl2 = control.parent.get(fieldName2).value;
609
- if (matchControl1 && matchControl2) {
610
- return {
611
- OneExtensionIsEmpty: true
612
- };
613
- }
614
- return null;
615
- };
616
- };
617
-
618
- requiredByCondition = (requiredBy: string, fieldName: any) => {
619
- return (control: any) => {
620
- if (!control.parent) {
621
- return null;
622
- }
623
- const requiredByControl = control.parent.get(requiredBy).value;
624
- const requiredControl = control.parent.get(fieldName).value;
625
- if (requiredByControl && !requiredControl) {
626
- return {
627
- required: true
628
- };
629
- }
630
- return null;
631
- };
632
- };
633
-
634
- private getOptionsList(token: string): string[] {
635
- switch (token) {
636
- case 'css':
637
- case 'rerouteCss':
638
- case 'callingSearchSpace':
639
- return this.siteSettingsService.callingSearchSpaceTypes;
640
- case 'reroutingCss':
641
- return this.siteSettingsService.siteDefaults && this.siteSettingsService.siteDefaults.cssFilter;
642
- case 'deviceType':
643
- return this.siteSettingsService.deviceTypes;
644
- case 'routePartition':
645
- return this.siteSettingsService.routePartitionNames;
646
- case 'routePartitionFiltered':
647
- return this.siteSettingsService.filteredRoutePartitionNames;
648
- case 'devicePools':
649
- return this.siteSettingsService.devicePools;
650
- case 'allRoutePartitions':
651
- return this.siteSettingsService.allRoutePartitionNames;
652
- case 'directoryNumbers':
653
- return this.siteSettingsService.directoryNumbers;
654
- default:
655
- return [];
656
- }
657
- }
658
-
659
- autocompleteType(control: any) {
660
- if (!control.value) {
661
- return null;
662
- }
663
- if (typeof control.value !== 'object' && control.value !== '') {
664
- return {
665
- stringEntered: true
666
- };
667
- }
668
- return null;
669
- }
670
-
671
-
672
- password(control: any) {
673
- const ruleNumeric = new RegExp(/\d+/, 'g');
674
- const ruleCapitals = new RegExp(/[A-Z]+/, 'g');
675
- const ruleSmall = new RegExp(/[a-z]+/, 'g');
676
- const ruleSpecial = new RegExp(/[!@#$%&\/=\?_\.,:;\-\\+]+/, 'g');
677
-
678
- const hasNumeric = +ruleNumeric.test(control.value);
679
- const hasCapitals = +ruleCapitals.test(control.value);
680
- const hasSmall = +ruleSmall.test(control.value);
681
- const hasSpecial = +ruleSpecial.test(control.value);
682
-
683
- if (hasNumeric + hasCapitals + hasSmall + hasSpecial < 3) {
684
- return {
685
- weakPassword: true
686
- };
687
- }
688
-
689
- return null;
690
- }
691
-
692
- verifyAutoAnswer(control: any) {
693
- if (!control?.value || control.value.length === 0) {
694
- return null;
695
- }
696
- let autoAnswerErrorLine = null;
697
- if (control.parent && control.parent.parent && control.parent.parent.parent && control.parent.parent.parent.parent) {
698
- const controlSNR = control.parent;
699
- const controlUser = control.parent.parent.parent.parent;
700
- const lineAssociations = controlSNR.get('lineAssociations');
701
- const lines = controlUser.get('lines');
702
- if (lines) {
703
- lineAssociations.value.forEach((lineAssociation: any) => {
704
- const autoAnswerLine = lines.controls.find((line: any) => line.get('directoryNumber').value.directoryNumber === lineAssociation.directoryNumber && line.get('directoryNumber').value.routePartitionName === lineAssociation.routePartitionName
705
- && line.get('autoAnswer').value !== 'Auto Answer Off');
706
- if (autoAnswerLine) {
707
- autoAnswerErrorLine = {
708
- autoAnswerErrorLine: lineAssociation.directoryNumber
709
- };
710
- }
711
- });
712
- }
713
- }
714
-
715
- return autoAnswerErrorLine;
716
- }
717
-
718
- verifyBeginEndTime(control: any) {
719
- const parent = control.parent;
720
- if (!parent || !parent.get('isActive') || !parent.get('allDay') || !parent.get('from') || !parent.get('to')) {
721
- return null;
722
- }
723
-
724
- if (parent.get('isActive').value) {
725
- if (!parent.get('allDay').value) {
726
- if (!parent.get('from').value || parent.get('from').value === 'No Office Hours'
727
- || !parent.get('to').value || parent.get('to').value === 'No Office Hours'
728
- || parent.get('from').value > parent.get('to').value) {
729
- return {
730
- fromGreaterThanTo: true
731
- };
732
- }
733
- }
734
- }
735
-
736
- return null;
737
- }
738
-
739
- time(control: any) {
740
- if (control.value && !timeRegex.test(control.value)) {
741
- return {timeFormat: true};
742
- }
743
- return null;
744
- }
745
-
746
-
747
- pinMultiCharacterCheck = (fieldName: string) => {
748
- // @ts-ignore
749
- return (control: any) => {
750
- if (!control.parent) {
751
- return null;
752
- }
753
- const matchingControl = control.parent.get(fieldName);
754
- const ruleMultiCharacter = new RegExp('([0-9])\\1{2}');
755
- if (matchingControl.value) {
756
- const hasMultiCharacter = ruleMultiCharacter.test(matchingControl.value);
757
- if (hasMultiCharacter) {
758
- return {
759
- multiCharacter: true
760
- };
761
- }
762
- }
763
- };
764
- };
765
-
766
- pinConsecutiveNumberCheck = (fieldName: string) => {
767
- // @ts-ignore
768
- return (control: any) => {
769
- if (!control.parent) {
770
- return null;
771
- }
772
- const matchingControl = control.parent.get(fieldName);
773
- const strToCheck = matchingControl.value;
774
- if (strToCheck && strToCheck.length > 1) {
775
- const resAsc = this.pinOrderCheck(strToCheck);
776
- if (resAsc === true) {
777
- return {
778
- consecutiveNumbers: true
779
- };
780
- }
781
- }
782
- };
783
- };
784
-
785
-
786
- pinOrderCheck(str: string): any {
787
- if (str) {
788
- const arr_num = ('' + str).split('');
789
- for (let i = 0; i < arr_num.length - 2; i++) {
790
- const num1 = parseInt(arr_num[i]);
791
- const num2 = parseInt(arr_num[i + 1]);
792
- const num3 = parseInt(arr_num[i + 2]);
793
- if ((num2 - num1) === 1 && (num3 - num2 === num2 - num1)) {
794
- return true;
795
- }
796
- }
797
- return false;
798
- }
799
- }
800
-
801
-
802
- pinMailboxExtensionCheck = (fieldName: string, extension: string) => {
803
- return (control: any) => {
804
- if (!control.parent) {
805
- return null;
806
- }
807
- const matchingControl = control.parent.get(fieldName);
808
- const strToCheck = matchingControl.value;
809
- if (strToCheck === extension || strToCheck.includes(extension)) {
810
- return {
811
- mailboxExtension: true
812
- };
813
- }
814
- return null;
815
- };
816
- };
817
-
818
- isItemAlreadyInList(item: any, list: any): boolean {
819
- if (!item || !list || !list.length) {
820
- return false;
821
- }
822
- for (const listItem of list) {
823
- if (item.equals(listItem)) {
824
- return true;
825
- }
826
- }
827
- return false;
828
- }
829
- }