@indigina/kendo 1.0.21085-beta3 → 1.1.2

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 (279) hide show
  1. package/README.md +1397 -13
  2. package/assets/fonts/FontAwesome.otf +0 -0
  3. package/assets/fonts/OpenSans-Bold-webfont.eot +0 -0
  4. package/assets/fonts/OpenSans-Bold-webfont.svg +1830 -0
  5. package/assets/fonts/OpenSans-Bold-webfont.ttf +0 -0
  6. package/assets/fonts/OpenSans-Bold-webfont.woff +0 -0
  7. package/assets/fonts/OpenSans-Italic-webfont.eot +0 -0
  8. package/assets/fonts/OpenSans-Italic-webfont.svg +1830 -0
  9. package/assets/fonts/OpenSans-Italic-webfont.ttf +0 -0
  10. package/assets/fonts/OpenSans-Italic-webfont.woff +0 -0
  11. package/assets/fonts/OpenSans-Regular-webfont.eot +0 -0
  12. package/assets/fonts/OpenSans-Regular-webfont.svg +1831 -0
  13. package/assets/fonts/OpenSans-Regular-webfont.ttf +0 -0
  14. package/assets/fonts/OpenSans-Regular-webfont.woff +0 -0
  15. package/assets/fonts/PT_Sans-Web-Bold.ttf +0 -0
  16. package/assets/fonts/PT_Sans-Web-Bold.woff2 +0 -0
  17. package/assets/fonts/PT_Sans-Web-Regular.ttf +0 -0
  18. package/assets/fonts/PT_Sans-Web-Regular.woff2 +0 -0
  19. package/assets/fonts/fontawesome-webfont.eot +0 -0
  20. package/assets/fonts/fontawesome-webfont.svg +2671 -0
  21. package/assets/fonts/fontawesome-webfont.ttf +0 -0
  22. package/assets/fonts/fontawesome-webfont.woff +0 -0
  23. package/assets/fonts/fontawesome-webfont.woff2 +0 -0
  24. package/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  25. package/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  26. package/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  27. package/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  28. package/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  29. package/assets/indigina-theme.css +23 -0
  30. package/assets/styles/Site.css +2284 -0
  31. package/assets/styles/external-fonts.css +12 -0
  32. package/assets/styles/kendoGrids.less +42 -37
  33. package/assets/styles/kendooveride.css +2 -2
  34. package/assets/styles/less/.csscomb.json +304 -0
  35. package/assets/styles/less/.csslintrc +19 -0
  36. package/assets/styles/less/inspiria/badgets_labels.less +67 -0
  37. package/assets/styles/less/inspiria/base.less +1464 -0
  38. package/assets/styles/less/inspiria/buttons.less +334 -0
  39. package/assets/styles/less/inspiria/chat.less +125 -0
  40. package/assets/styles/less/inspiria/custom-hub.less +537 -0
  41. package/assets/styles/less/inspiria/custom.less +504 -0
  42. package/assets/styles/less/inspiria/elements.less +2481 -0
  43. package/assets/styles/less/inspiria/landing.less +649 -0
  44. package/assets/styles/less/inspiria/md-skin.less +432 -0
  45. package/assets/styles/less/inspiria/media.less +129 -0
  46. package/assets/styles/less/inspiria/metismenu.less +121 -0
  47. package/assets/styles/less/inspiria/mixins.less +15 -0
  48. package/assets/styles/less/inspiria/navigation.less +656 -0
  49. package/assets/styles/less/inspiria/pages.less +1361 -0
  50. package/assets/styles/less/inspiria/rtl.less +284 -0
  51. package/assets/styles/less/inspiria/sidebar.less +197 -0
  52. package/assets/styles/less/inspiria/skins.less +472 -0
  53. package/assets/styles/less/inspiria/spinners.less +991 -0
  54. package/assets/styles/less/inspiria/theme-config.less +114 -0
  55. package/assets/styles/less/inspiria/top_navigation.less +128 -0
  56. package/assets/styles/less/inspiria/typography.less +0 -0
  57. package/assets/styles/less/inspiria/variables.less +47 -0
  58. package/assets/styles/less/styles-inspiria.less +61 -0
  59. package/assets/styles/styles-inspiria.css +2772 -0
  60. package/assets/styles/styles-inspiria.min.css +2 -0
  61. package/{esm2015/indigina-kendo.js → esm2020/indigina-kendo.mjs} +0 -0
  62. package/esm2020/lib/angular/extensions/ISubscriptionControl.mjs +2 -0
  63. package/esm2020/lib/angular/extensions/ReEntrySubscription.mjs +16 -0
  64. package/esm2020/lib/angular/forms/directives/debounce.directive.mjs +38 -0
  65. package/esm2020/lib/angular/forms/extensions/FormGroupWithErrors.mjs +32 -0
  66. package/esm2020/lib/angular/forms/widgets/field/field-input/field-input.component.mjs +39 -0
  67. package/esm2020/lib/angular/forms/widgets/field/field-input/number-input.component.mjs +43 -0
  68. package/esm2020/lib/angular/forms/widgets/field/field.component.mjs +59 -0
  69. package/esm2020/lib/angular/forms/widgets/general-errors/general-errors.component.mjs +24 -0
  70. package/esm2020/lib/angular/indigina.module.mjs +203 -0
  71. package/esm2020/lib/angular/models/AppSettings.mjs +13 -0
  72. package/esm2020/lib/angular/models/CustomHttpErrorResponse.mjs +2 -0
  73. package/esm2020/lib/angular/models/HttpCodes.mjs +10 -0
  74. package/esm2020/lib/angular/models/HttpMethods.mjs +7 -0
  75. package/esm2020/lib/angular/models/IdentifiedModel.mjs +2 -0
  76. package/esm2020/lib/angular/models/IndiginaConfiguration.mjs +11 -0
  77. package/esm2020/lib/angular/models/Language.mjs +2 -0
  78. package/esm2020/lib/angular/models/NamedModel.mjs +2 -0
  79. package/esm2020/lib/angular/services/http.service.mjs +90 -0
  80. package/esm2020/lib/angular/services/locale-settings.service.mjs +45 -0
  81. package/esm2020/lib/angular/services/settings.service.mjs +44 -0
  82. package/esm2020/lib/angular/services/toastr.service.mjs +26 -0
  83. package/esm2020/lib/angular/widgets/live-updates-control/live-updates-control.component.mjs +23 -0
  84. package/esm2020/lib/angular/widgets/side-menu/MenuItem.mjs +2 -0
  85. package/esm2020/lib/angular/widgets/side-menu/menu-item-group/menu-item-group.component.mjs +66 -0
  86. package/esm2020/lib/angular/widgets/side-menu/side-menu.component.mjs +37 -0
  87. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/AbstractContentResolver.mjs +12 -0
  88. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/ContentResolver.mjs +12 -0
  89. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/Converters/EnumTypeGetter.mjs +6 -0
  90. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/Converters/JsonConverter.mjs +95 -0
  91. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/Converters/TextConverter.mjs +11 -0
  92. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/Converters/XmlConverter.mjs +41 -0
  93. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/IContentResolver.mjs +2 -0
  94. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/Resolvers/JsonResolver.mjs +18 -0
  95. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/Resolvers/TextResolver.mjs +12 -0
  96. package/esm2020/lib/angular/widgets/tree-view/ContentResolver/Resolvers/XmlResolver.mjs +21 -0
  97. package/esm2020/lib/angular/widgets/tree-view/models/Brackets.mjs +2 -0
  98. package/esm2020/lib/angular/widgets/tree-view/models/ContentTypesFormat.mjs +7 -0
  99. package/esm2020/lib/angular/widgets/tree-view/models/ResolverResult.mjs +2 -0
  100. package/esm2020/lib/angular/widgets/tree-view/models/TreeViewNode.mjs +25 -0
  101. package/esm2020/lib/angular/widgets/tree-view/models/TreeViewNodeTypes.mjs +8 -0
  102. package/esm2020/lib/angular/widgets/tree-view/tree-view-node/tree-view-node.component.mjs +40 -0
  103. package/esm2020/lib/angular/widgets/tree-view/tree-view.component.mjs +80 -0
  104. package/esm2020/lib/components/account-menu/account-menu.component.mjs +54 -0
  105. package/esm2020/lib/components/azure-login-callback/azure-login-callback.component.mjs +39 -0
  106. package/esm2020/lib/components/language-selector/language-selector.component.mjs +44 -0
  107. package/esm2020/lib/config/msal-instance.factory.mjs +27 -0
  108. package/esm2020/lib/directives/requirePermission.directive.mjs +66 -0
  109. package/esm2020/lib/interceptors/auth-headers.interceptor.mjs +32 -0
  110. package/esm2020/lib/kendo.module.mjs +286 -0
  111. package/esm2020/lib/models/ActivityFilter.mjs +2 -0
  112. package/esm2020/lib/models/AuthProviders.mjs +6 -0
  113. package/esm2020/lib/models/AzureB2CSettings.mjs +2 -0
  114. package/esm2020/lib/models/CustomFilter.mjs +2 -0
  115. package/esm2020/lib/models/CustomFilterElement.mjs +2 -0
  116. package/esm2020/lib/models/FieldTypes.mjs +8 -0
  117. package/esm2020/lib/models/FilterTargets.mjs +6 -0
  118. package/{esm2015/lib/models/Member.js → esm2020/lib/models/Member.mjs} +0 -0
  119. package/esm2020/lib/models/MemberBase.mjs +2 -0
  120. package/{esm2015/lib/models/MemberTypes.js → esm2020/lib/models/MemberTypes.mjs} +0 -0
  121. package/{esm2015/lib/models/OidcSettings.js → esm2020/lib/models/OidcSettings.mjs} +0 -0
  122. package/esm2020/lib/models/Operators.mjs +18 -0
  123. package/{esm2015/lib/models/Page.js → esm2020/lib/models/Page.mjs} +0 -0
  124. package/{esm2015/lib/models/PermissionTypes.js → esm2020/lib/models/PermissionTypes.mjs} +0 -0
  125. package/{esm2015/lib/models/Permissions.js → esm2020/lib/models/Permissions.mjs} +0 -0
  126. package/esm2020/lib/models/SystemInfo.mjs +2 -0
  127. package/{esm2015/lib/services/IActivityEndpoints.js → esm2020/lib/services/IActivityEndpoints.mjs} +0 -0
  128. package/{esm2015/lib/services/IEntityEndpoints.js → esm2020/lib/services/IEntityEndpoints.mjs} +0 -0
  129. package/{esm2015/lib/services/IEntityService.js → esm2020/lib/services/IEntityService.mjs} +1 -1
  130. package/esm2020/lib/services/account.service.mjs +24 -0
  131. package/esm2020/lib/services/activity.filter.service.mjs +202 -0
  132. package/esm2020/lib/services/auth-provider.resolver.mjs +38 -0
  133. package/esm2020/lib/services/auth.providers/AuthProvider.mjs +3 -0
  134. package/esm2020/lib/services/auth.providers/azureb2c.provider.mjs +44 -0
  135. package/esm2020/lib/services/auth.providers/oauth.provider.mjs +40 -0
  136. package/esm2020/lib/services/base.account.service.mjs +87 -0
  137. package/esm2020/lib/services/endpoints.mjs +63 -0
  138. package/{esm2015/lib/services/entity.service.js → esm2020/lib/services/entity.service.mjs} +1 -1
  139. package/esm2020/lib/services/permissions.service.mjs +56 -0
  140. package/esm2020/lib/services/signalr/EventNames.mjs +6 -0
  141. package/esm2020/lib/services/signalr/signalr.service.mjs +73 -0
  142. package/esm2020/lib/widgets/activity-filter/FilterConverter.mjs +78 -0
  143. package/esm2020/lib/widgets/activity-filter/activity-filter.component.mjs +123 -0
  144. package/esm2020/lib/widgets/confirm-dialog/confirm-dialog.component.mjs +35 -0
  145. package/esm2020/lib/widgets/current-timezone/current-timezone.component.mjs +19 -0
  146. package/esm2020/lib/widgets/entity-edit/IFormAdapter.mjs +2 -0
  147. package/esm2020/lib/widgets/entity-edit/buttons-bar/buttons-bar.component.mjs +21 -0
  148. package/esm2020/lib/widgets/entity-edit/entity-edit-form.component.mjs +67 -0
  149. package/esm2020/lib/widgets/entity-edit/entity-edit.component.mjs +23 -0
  150. package/esm2020/lib/widgets/entity-edit/field-dropdown/field-dropdown.component.mjs +45 -0
  151. package/esm2020/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.mjs +45 -0
  152. package/esm2020/lib/widgets/entity-list/Command.mjs +2 -0
  153. package/esm2020/lib/widgets/entity-list/Field.mjs +2 -0
  154. package/esm2020/lib/widgets/entity-list/UrlSerializer.mjs +54 -0
  155. package/esm2020/lib/widgets/entity-list/entity-list.component.mjs +201 -0
  156. package/esm2020/lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component.mjs +51 -0
  157. package/esm2020/lib/widgets/excel-export-button/excel-export-button.component.mjs +14 -0
  158. package/esm2020/lib/widgets/footer-bar/footer-bar.component.mjs +11 -0
  159. package/esm2020/lib/widgets/modal-window/modal-window.component.mjs +28 -0
  160. package/esm2020/lib/widgets/multicheck-filter/multicheck-filter.component.mjs +85 -0
  161. package/esm2020/lib/widgets/top-bar/top-bar.component.mjs +19 -0
  162. package/esm2020/public-api.mjs +70 -0
  163. package/fesm2015/indigina-kendo.mjs +3136 -0
  164. package/fesm2015/indigina-kendo.mjs.map +1 -0
  165. package/fesm2020/indigina-kendo.mjs +3116 -0
  166. package/fesm2020/indigina-kendo.mjs.map +1 -0
  167. package/indigina-kendo.d.ts +1 -0
  168. package/lib/angular/extensions/ISubscriptionControl.d.ts +5 -0
  169. package/lib/angular/extensions/ReEntrySubscription.d.ts +11 -0
  170. package/lib/angular/forms/directives/debounce.directive.d.ts +14 -0
  171. package/lib/angular/forms/extensions/FormGroupWithErrors.d.ts +14 -0
  172. package/lib/angular/forms/widgets/field/field-input/field-input.component.d.ts +15 -0
  173. package/lib/angular/forms/widgets/field/field-input/number-input.component.d.ts +14 -0
  174. package/lib/angular/forms/widgets/field/field.component.d.ts +19 -0
  175. package/lib/angular/forms/widgets/general-errors/general-errors.component.d.ts +10 -0
  176. package/lib/angular/indigina.module.d.ts +33 -0
  177. package/lib/angular/models/AppSettings.d.ts +14 -0
  178. package/lib/angular/models/CustomHttpErrorResponse.d.ts +4 -0
  179. package/lib/angular/models/HttpCodes.d.ts +8 -0
  180. package/lib/angular/models/HttpMethods.d.ts +2 -0
  181. package/lib/angular/models/IdentifiedModel.d.ts +3 -0
  182. package/lib/angular/models/IndiginaConfiguration.d.ts +9 -0
  183. package/lib/angular/models/Language.d.ts +4 -0
  184. package/lib/angular/models/NamedModel.d.ts +4 -0
  185. package/lib/angular/services/http.service.d.ts +26 -0
  186. package/lib/angular/services/locale-settings.service.d.ts +15 -0
  187. package/lib/angular/services/settings.service.d.ts +14 -0
  188. package/lib/angular/services/toastr.service.d.ts +13 -0
  189. package/lib/angular/widgets/live-updates-control/live-updates-control.component.d.ts +10 -0
  190. package/lib/angular/widgets/side-menu/MenuItem.d.ts +8 -0
  191. package/lib/angular/widgets/side-menu/menu-item-group/menu-item-group.component.d.ts +18 -0
  192. package/lib/angular/widgets/side-menu/side-menu.component.d.ts +12 -0
  193. package/lib/angular/widgets/tree-view/ContentResolver/AbstractContentResolver.d.ts +7 -0
  194. package/lib/angular/widgets/tree-view/ContentResolver/ContentResolver.d.ts +6 -0
  195. package/lib/angular/widgets/tree-view/ContentResolver/Converters/EnumTypeGetter.d.ts +2 -0
  196. package/lib/angular/widgets/tree-view/ContentResolver/Converters/JsonConverter.d.ts +7 -0
  197. package/lib/angular/widgets/tree-view/ContentResolver/Converters/TextConverter.d.ts +4 -0
  198. package/lib/angular/widgets/tree-view/ContentResolver/Converters/XmlConverter.d.ts +6 -0
  199. package/lib/angular/widgets/tree-view/ContentResolver/IContentResolver.d.ts +4 -0
  200. package/lib/angular/widgets/tree-view/ContentResolver/Resolvers/JsonResolver.d.ts +5 -0
  201. package/lib/angular/widgets/tree-view/ContentResolver/Resolvers/TextResolver.d.ts +5 -0
  202. package/lib/angular/widgets/tree-view/ContentResolver/Resolvers/XmlResolver.d.ts +5 -0
  203. package/lib/angular/widgets/tree-view/models/Brackets.d.ts +4 -0
  204. package/lib/angular/widgets/tree-view/models/ContentTypesFormat.d.ts +5 -0
  205. package/lib/angular/widgets/tree-view/models/ResolverResult.d.ts +6 -0
  206. package/lib/angular/widgets/tree-view/models/TreeViewNode.d.ts +15 -0
  207. package/lib/angular/widgets/tree-view/models/TreeViewNodeTypes.d.ts +6 -0
  208. package/lib/angular/widgets/tree-view/tree-view-node/tree-view-node.component.d.ts +15 -0
  209. package/lib/angular/widgets/tree-view/tree-view.component.d.ts +31 -0
  210. package/lib/components/account-menu/account-menu.component.d.ts +4 -1
  211. package/lib/components/azure-login-callback/azure-login-callback.component.d.ts +14 -0
  212. package/lib/components/language-selector/language-selector.component.d.ts +5 -1
  213. package/lib/config/msal-instance.factory.d.ts +3 -0
  214. package/lib/directives/requirePermission.directive.d.ts +21 -0
  215. package/lib/interceptors/auth-headers.interceptor.d.ts +11 -0
  216. package/lib/kendo.module.d.ts +39 -1
  217. package/lib/models/ActivityFilter.d.ts +13 -0
  218. package/lib/models/AuthProviders.d.ts +4 -0
  219. package/lib/models/AzureB2CSettings.d.ts +5 -0
  220. package/lib/models/CustomFilter.d.ts +9 -0
  221. package/lib/models/CustomFilterElement.d.ts +12 -0
  222. package/lib/models/FieldTypes.d.ts +6 -0
  223. package/lib/models/FilterTargets.d.ts +4 -0
  224. package/lib/models/MemberBase.d.ts +1 -1
  225. package/lib/models/Operators.d.ts +16 -0
  226. package/lib/models/SystemInfo.d.ts +3 -0
  227. package/lib/services/IEntityService.d.ts +3 -3
  228. package/lib/services/account.service.d.ts +12 -13
  229. package/lib/services/activity.filter.service.d.ts +33 -0
  230. package/lib/services/auth-provider.resolver.d.ts +15 -0
  231. package/lib/services/auth.providers/AuthProvider.d.ts +8 -0
  232. package/lib/services/auth.providers/azureb2c.provider.d.ts +14 -0
  233. package/lib/services/auth.providers/oauth.provider.d.ts +15 -0
  234. package/lib/services/base.account.service.d.ts +19 -0
  235. package/lib/services/endpoints.d.ts +3 -0
  236. package/lib/services/entity.service.d.ts +5 -4
  237. package/lib/services/permissions.service.d.ts +10 -5
  238. package/lib/services/signalr/EventNames.d.ts +4 -0
  239. package/lib/services/signalr/signalr.service.d.ts +17 -0
  240. package/lib/widgets/activity-filter/FilterConverter.d.ts +5 -0
  241. package/lib/widgets/activity-filter/activity-filter.component.d.ts +32 -0
  242. package/lib/widgets/confirm-dialog/confirm-dialog.component.d.ts +15 -0
  243. package/lib/widgets/current-timezone/current-timezone.component.d.ts +9 -0
  244. package/lib/widgets/entity-edit/IFormAdapter.d.ts +9 -0
  245. package/lib/widgets/entity-edit/buttons-bar/buttons-bar.component.d.ts +8 -0
  246. package/lib/widgets/entity-edit/entity-edit-form.component.d.ts +20 -0
  247. package/lib/widgets/entity-edit/entity-edit.component.d.ts +16 -0
  248. package/lib/widgets/entity-edit/field-dropdown/field-dropdown.component.d.ts +22 -0
  249. package/lib/widgets/entity-edit/field-multiselect/field-multiselect.component.d.ts +22 -0
  250. package/lib/widgets/entity-list/Command.d.ts +7 -0
  251. package/lib/widgets/entity-list/Field.d.ts +6 -0
  252. package/lib/widgets/entity-list/UrlSerializer.d.ts +2 -0
  253. package/lib/widgets/entity-list/entity-list.component.d.ts +61 -0
  254. package/lib/widgets/entity-list/field-dropdownlist/field-dropdownlist.component.d.ts +22 -0
  255. package/lib/widgets/excel-export-button/excel-export-button.component.d.ts +5 -0
  256. package/lib/widgets/footer-bar/footer-bar.component.d.ts +3 -0
  257. package/lib/widgets/modal-window/modal-window.component.d.ts +12 -0
  258. package/lib/widgets/multicheck-filter/multicheck-filter.component.d.ts +25 -0
  259. package/lib/widgets/top-bar/top-bar.component.d.ts +3 -0
  260. package/package.json +32 -9
  261. package/public-api.d.ts +87 -21
  262. package/assets/kendo-theme.css +0 -12
  263. package/bundles/indigina-kendo.umd.js +0 -886
  264. package/bundles/indigina-kendo.umd.js.map +0 -1
  265. package/bundles/indigina-kendo.umd.min.js +0 -2
  266. package/bundles/indigina-kendo.umd.min.js.map +0 -1
  267. package/esm2015/lib/components/account-menu/account-menu.component.js +0 -53
  268. package/esm2015/lib/components/language-selector/language-selector.component.js +0 -46
  269. package/esm2015/lib/kendo.module.js +0 -107
  270. package/esm2015/lib/models/MemberBase.js +0 -2
  271. package/esm2015/lib/services/account.service.js +0 -86
  272. package/esm2015/lib/services/endpoints.js +0 -53
  273. package/esm2015/lib/services/permissions.service.js +0 -49
  274. package/esm2015/lib/widgets/footer-bar/footer-bar.component.js +0 -11
  275. package/esm2015/lib/widgets/top-bar/top-bar.component.js +0 -17
  276. package/esm2015/public-api.js +0 -25
  277. package/fesm2015/indigina-kendo.js +0 -446
  278. package/fesm2015/indigina-kendo.js.map +0 -1
  279. package/indigina-kendo.metadata.json +0 -1
package/README.md CHANGED
@@ -1,25 +1,1409 @@
1
- # Kendo
1
+ # @indigina/kendo
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.0.5.
3
+ The library contains shared components for Indigina projects.
4
4
 
5
- ## Code scaffolding
5
+ > ### Important notice:
6
+ >
7
+ > The library exports all included packages, which means you can import any dependent package of the '@indigina/kendo'.
6
8
 
7
- Run `ng generate component component-name --project kendo` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project kendo`.
9
+ ---
8
10
 
9
- > Note: Don't forget to add `--project kendo` or else it will be added to the default project in your `angular.json` file.
11
+ ### Table of Contents
10
12
 
11
- ## Build
13
+ 1. [Install](#install)
12
14
 
13
- Run `ng build kendo` to build the project. The build artifacts will be stored in the `dist/` directory.
15
+ 2. [Configuration](#library-configuration)
14
16
 
15
- ## Publishing
17
+ - [Complete Library Configuration](#complete-library-configuration)
16
18
 
17
- After building your library with `ng build kendo`, go to the dist folder `cd dist/kendo` and run `npm publish`.
19
+ 3. [Components](#components)
18
20
 
19
- ## Running unit tests
21
+ - [AccountMenu Component](#accountmenu-component)
20
22
 
21
- Run `ng test kendo` to execute the unit tests via [Karma](https://karma-runner.github.io).
23
+ - [Form Components](#form-components)
22
24
 
23
- ## Further help
25
+ - [FormGroupWithErrors](#formgroupwitherrors)
24
26
 
25
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
27
+ - [General-Errors Component](#general-errors-component)
28
+
29
+ - [FieldInput Component](#fieldinput-component)
30
+
31
+ - [NumberInput Component](#numberinput-component)
32
+
33
+ - [LanguageSelector Component](#languageselector-component)
34
+
35
+ - [Widget Components](#widget-components)
36
+
37
+ - [ActivityFilter Component](#activityfilter-component)
38
+
39
+ - [ConfirmDialog Component](#confirmdialog-component)
40
+
41
+ - [CurrentTimezone Component](#currenttimezone-component)
42
+
43
+ - [EntityList Component](#entitylist-component)
44
+
45
+ - [EntityEdit Component](#entityedit-component)
46
+
47
+ - [ExcelExportButton Component](#excelexportbutton-component)
48
+
49
+ - [FooterBar Component](#footerbar-component)
50
+
51
+ - [ModalWindow Component](#modalwindow-component)
52
+
53
+ - [MulticheckFilter Component](#multicheckfilter-component)
54
+
55
+ - [TopBar Component](#topbar-component)
56
+
57
+ - [Side-Menu Component](#side-menu-component)
58
+
59
+ - [Tree-View Component](#tree-view-component)
60
+
61
+ 4. [Directives](#directives)
62
+
63
+ - [Debounce Directive](#debounce-directive)
64
+
65
+ - [RequirePermission Directive](#requirepermission-directive)
66
+
67
+ 5. [Services](#services)
68
+
69
+ - [AccountService](#accountservice)
70
+
71
+ - [ActivityFilterService](#activityfilterservice)
72
+
73
+ - [AppToastrService](#apptoastrservice)
74
+
75
+ - [BaseAccountService](#baseaccountservice)
76
+
77
+ - [EntityService](#entityservice)
78
+
79
+ - [HttpService](#httpservice)
80
+
81
+ - [PermissionsService](#permissionsservice)
82
+
83
+ - [TranslateSettingsService](#translatesettingsservice)
84
+
85
+ 6. [Models](#models)
86
+
87
+ - [ActivityFilter](#activityfilter)
88
+
89
+ - [AppSettings](#appsettings)
90
+
91
+ - [CustomFilter](#customfilter)
92
+
93
+ - [CustomFilterElement](#customfilterelement)
94
+
95
+ - [CustomHttpErrorResponse](#customhttperrorresponse)
96
+
97
+ - [FieldTypes](#fieldtypes)
98
+
99
+ - [FilterTargets](#filtertargets)
100
+
101
+ - [HttpCodes](#httpcodes)
102
+
103
+ - [HttpMethods](#httpmethods)
104
+
105
+ - [IdentifiedModel](#identifiedmodel)
106
+
107
+ - [IndiginaConfiguration](#indiginaconfiguration)
108
+
109
+ - [Language](#language)
110
+
111
+ - [Member](#member)
112
+
113
+ - [MemberBase](#memberbase)
114
+
115
+ - [MemberTypes](#membertypes)
116
+
117
+ - [NamedModel](#namedmodel)
118
+
119
+ - [OidcSettings](#oidcsettings)
120
+
121
+ - [Operators](#operators)
122
+
123
+ - [Page](#page)
124
+
125
+ - [Permissions](#permissions)
126
+
127
+ - [PermissionTypes](#permissiontypes)
128
+
129
+ 7. [Provided Packages](#provided-packages)
130
+
131
+ 8. [Exports Table](#exports-table)
132
+
133
+ ---
134
+
135
+ # Install
136
+
137
+ ## Before installing.
138
+
139
+ > The library depends on the next packages: **@ngx-translate**, **ngx-clipboard**, **angular-oauth2-oidc**, **angular-oauth2-oidc-jwks**, **@microsoft/signalr** and includes most of the [kendo](https://www.telerik.com/kendo-angular-ui).
140
+ >
141
+ > If your application depends on the following packages, you should remove them from **"package.json"** file.
142
+ >
143
+ > **_Make sure your_ package.json _file does not contain the packages '@indigina/kendo' depends on._**
144
+
145
+ To install the package you'll need to enter the command at the terminal:
146
+
147
+ npm i @indigina/kendo@latest --save
148
+
149
+ Open your module file e.g. app.module.ts and update **imports** array:
150
+
151
+ import { IndiginaModule, KendoModule } from '@indigina/kendo';
152
+ import { ReactiveFormsModule } from '@angular/forms';
153
+
154
+ ...
155
+
156
+ imports: [
157
+ ...
158
+ IndiginaModule,
159
+ KendoModule,
160
+ ReactiveFormsModule,
161
+ ...
162
+ ]
163
+
164
+ Also, you need to setup the routes and import **RouterModule**. [How to Setup](https://angular.io/api/router/RouterModule)
165
+
166
+ Open your global style file for application e.g. **styles.css** and add the following:
167
+
168
+ @import @indigina/kendo/assets/indigina-theme.css
169
+ @import @indigina/kendo/assets/kendo-theme.css
170
+
171
+ ---
172
+
173
+ > The **@indigina/kendo** provides the TranslationModule from **@ngx-translate** package (List of [provided packages](#provided-packages)). You can use **translate** pipe without any additional includes in your app.
174
+ >
175
+ > The **@indigina/kendo** also provides **_TranslateSettingsService_** for set or get current locale [See more](#translatesettingsservice).
176
+ >
177
+ > For setup **TranslationModule** see [Library Configuration](#library-configuration)
178
+
179
+ ---
180
+
181
+ # Library Configuration
182
+
183
+ To configure the library you must use an [**IndiginaConfiguration**](https://www.npmjs.com/package/@indigina/angular#indiginaconfiguration) interface
184
+
185
+ **IndiginaConfiguration** abstract class is provided from @indigina/angular library configuration.
186
+
187
+ When you configure the **'@indigina/kendo'** then the config is passed to **'@indigina/angular'**.
188
+
189
+ For configure library you must use a [**IndiginaConfiguration**](#indiginaconfiguration) interface
190
+
191
+ **IndiginaConfiguration** abstract class is provided for @indigina/angular library configuration.
192
+
193
+ ### IndiginaConfiguration class overview
194
+
195
+ | Param Name | Required | Type | Description |
196
+ | ----------- | -------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
197
+ | langs | no | TranslateLoader | The Translate module config. If you provide **langs** then @indigina/angular use the factory config, fo more information see [original documentation](https://www.npmjs.com/package/@ngx-translate/core). And see an example of [Setup TranslationModule](#setup-translationmodule) |
198
+ | appSettings | no | AppSettings | The basic Application settings for working with server endpoint. |
199
+
200
+ ## Setup TranslationModule
201
+
202
+ For setup **TranslationModule** you need to pass the TranslateLoader to the library, for example, open your module file e.g. **app.module.ts**, and update next:
203
+
204
+ ...
205
+
206
+ const langs = {
207
+ 'en' = {
208
+ UserName: 'User Name',
209
+ },
210
+ 'ru' = {
211
+ UserName: 'Имя пользователя',
212
+ },
213
+ getTranslations(lang: string): Observable<any> {
214
+ if (Object.keys(this).includes(lang)) {
215
+ return of(this[lang]);
216
+ }
217
+
218
+ return of(this['en']);
219
+ }
220
+ }
221
+
222
+ ...
223
+
224
+ imports: [
225
+ ...
226
+ KendoModule.forRoot({ langs })
227
+ ...
228
+ ]
229
+
230
+ ## Setup AppSettings
231
+
232
+ To use the most of the services you need to setup a library with appSettings.
233
+ For that you need to pass [AppSettings](https://www.npmjs.com/package/@indigina/angular#appsettings) to library, for example open your module file e.g. **app.module.ts** and update next:
234
+
235
+ ...
236
+
237
+ const appSettings = {
238
+ apiUrl: 'http://localhost:8080/',
239
+ accountUrl: 'http://localhost:3000/signin/',
240
+ toastrTimeOut: 3000
241
+ }
242
+
243
+ ...
244
+
245
+ imports: [
246
+ ...
247
+ KendoModule.forRoot({ appSettings })
248
+ ...
249
+ ]
250
+
251
+ ---
252
+
253
+ ## Complete library configuration
254
+
255
+ To take full advantage of the library and use **environments** for separate builds e.g. development/production, you need to setup the library as follows:
256
+
257
+ 1. Open your environment file e.g. **environments/environmet.ts** and update following:
258
+
259
+ export const environment = {
260
+ production: false,
261
+ appSettings: {
262
+ apiUrl: 'http://localhost:8080/',
263
+ accountUrl: 'https://sso.localhost:8000/',
264
+ toastrTimeOut: 3000,
265
+ },
266
+ };
267
+
268
+ 2. Open your module file e.g. **app.module.ts** and update following:
269
+
270
+ import { environment } from '../environments/environment';
271
+
272
+ ...
273
+
274
+ const langs = {
275
+ 'en' = {
276
+ UserName: 'User Name',
277
+ },
278
+ 'ru' = {
279
+ UserName: 'Имя пользователя',
280
+ },
281
+ getTranslations(lang: string): Observable<any> {
282
+ if (Object.keys(this).includes(lang)) {
283
+ return of(this[lang]);
284
+ }
285
+
286
+ return of(this['en']);
287
+ }
288
+ }
289
+
290
+ ...
291
+
292
+ imports: [
293
+ ...
294
+ KendoModule.forRoot({ appSettings: environment.appSettings, langs })
295
+ ...
296
+ ]
297
+
298
+ ---
299
+
300
+ # Components
301
+
302
+ ## AccountMenu Component
303
+
304
+ ### Overview
305
+
306
+ Selector: **account-menu**
307
+
308
+ Thats already included in [TopBar Component](#topbar-component).
309
+
310
+ This component shows menu items for current user:
311
+
312
+ - **User info** - shows avatar and username.
313
+ - **Change Language** - Shows [LanguageSelector Component](#languageselector-component) for change current culture.
314
+ - **Account** - Link to **_accountUrl_** from [_*IndiginaConfiguration*_](https://www.npmjs.com/package/@indigina/angular#indiginaconfiguration) provided by @indigina/angular module.
315
+ - **Logout** - Link on the server-endpoint to logout.
316
+
317
+ ### The component accepts input parameters:
318
+
319
+ - **user: Member** - the current user. Member [description](#member).
320
+
321
+ ### Usage:
322
+
323
+ <account-menu [user]="currentUser"></account-menu>
324
+
325
+ ---
326
+
327
+ ## Form Components
328
+
329
+ ### FormGroupWithErrors
330
+
331
+ This is an extension of FormGroup class which provides the additional public methods:
332
+
333
+ - Get control by name.
334
+
335
+ getControl(name: string): AbstractControl;
336
+
337
+ - Sets errors by control names
338
+
339
+ applyServerErrors(
340
+ error: {title?: string, errors: {[key: string]: string[]}},
341
+ form?: FromGroupWithErrors
342
+ ): void;
343
+
344
+ * where form - target form class (default is **_this_** )
345
+
346
+ ---
347
+
348
+ ### General-Errors Component
349
+
350
+ This component shows the general errors for **FormGroup**. Provides a public method:
351
+
352
+ setErrors(errors: string): void;
353
+
354
+ Used input parameters:
355
+
356
+ - **[form: FormGroup]** - FormGroup to set the general errors.
357
+
358
+ ---
359
+
360
+ ### FieldInput Component
361
+
362
+ #### Overview
363
+
364
+ Selector: **field-input**
365
+ Basically, this is extended angular FormControl Class, that shows **_input_** HTML Element with label and supports validators (like **_required_** etc.).
366
+
367
+ Used input parameters:
368
+
369
+ - **[labelKey: string]** - the text for label and input placeholder. This value will be translated by **_translate_** pipe inside (@ngx-translate package)
370
+ - **[fieldName: string]** - the name of input
371
+ - **[disabled: boolean]** - allows to dynamically control the disablement of an input field
372
+
373
+ This component may use only inside **_form-group_** directive.
374
+
375
+ #### Usage
376
+
377
+ <field-input fieldName="userName" labelKey="Dto.UserName" required>
378
+
379
+ ---
380
+
381
+ ### NumberInput Component
382
+
383
+ #### Overview
384
+
385
+ Selector: **number-input**
386
+ Class extended of FieldInput Component for number inputs. It has all inputs and validators inherent to FieldInput. FormControl value for this input has number type.
387
+
388
+ Additional input parameters:
389
+
390
+ - **[isPositive: boolean]** - allows to set only positive numbers (by default has _false_ value).
391
+
392
+ This component may use only inside **_form-group_** directive.
393
+
394
+ #### Usage
395
+
396
+ <number-input fieldName="userName" labelKey="Dto.UserName" required>
397
+
398
+ ---
399
+
400
+ ## LanguageSelector Component
401
+
402
+ ### Overview
403
+
404
+ Selector: **language-selector**
405
+
406
+ This component displays a window with a list of available languages. And lets you choose one.
407
+
408
+ Used input parameters:
409
+
410
+ - **visible: boolean** - sets the show/hide window
411
+
412
+ Output parameters:
413
+
414
+ - **visibleChange: boolean** - emits event when visible property switched.
415
+
416
+ ### Usage:
417
+
418
+ <language-selector [(visible)]="languageSelectorVisible"></language-selector>
419
+
420
+ ---
421
+
422
+ ## Widget Components
423
+
424
+ ### ActivityFilter Component
425
+
426
+ #### Overview
427
+
428
+ Selector: **activity-filter**
429
+
430
+ Component to show set of UI filters. This component works with [ActivityFilterService](#activityfilterservice).
431
+ Can render content inside tag declaration.
432
+
433
+ Used input parameters:
434
+
435
+ - **showArchiveSwitcher: boolean** - set true to show switcher.
436
+ - **showSearhText: boolean** - - set true to show search text field input.
437
+ - **customFilterElements: CustomFilterElement[]** - set of [CustomFilterElement](#customfilterelement)
438
+ - **filterService: ActivityFilterService** - the filter service to work
439
+
440
+ #### Usage
441
+
442
+ <activity-filter
443
+ [customFilterElements]="customFilterElements"
444
+ [showSearhText]="false"
445
+ [showArchiveSwitcher]="false"
446
+ [filterService]="filterService"
447
+ >
448
+ <span>Additional content</span>
449
+ </activity-filter>
450
+
451
+ ---
452
+
453
+ ### ConfirmDialog Component
454
+
455
+ #### Overview
456
+
457
+ Selector: **confirm-dialog**
458
+
459
+ This component shows a modal dialog with **Cancel** and **Confirm** buttons.
460
+
461
+ You can control the component by the public method **open**
462
+
463
+ public open(content: string, callback () => void)
464
+
465
+ Arguments:
466
+
467
+ - **content** - content to show
468
+ - **callback** - called only when user press confirm button
469
+
470
+ #### Usage
471
+
472
+ You can create the component with **confirm-dialog** import
473
+
474
+ import { ConfirmDialogComponent } from '@indigina/kendo';
475
+
476
+ ...
477
+
478
+ public dialog: ConfirmDialogComponent;
479
+
480
+ Then you can call the open method anywhere you need:
481
+
482
+ public confirmHandler() {
483
+ // do something
484
+ }
485
+
486
+ public showDialog() {
487
+ const content = this.translate.instant("Are you shure?")
488
+ this.dialog(content, () => this.confirmHandler())
489
+ }
490
+
491
+ And in the template you need to include as follows:
492
+
493
+ <confirm-dialog #confirmDialog></confirm-dialog>
494
+
495
+ ---
496
+
497
+ ### CurrentTimezone Component
498
+
499
+ #### Overview
500
+
501
+ Selector: current-timezone
502
+
503
+ This component shows current time zone.
504
+
505
+ #### Usage:
506
+
507
+ <current-timezone></current-timezone>
508
+
509
+ ---
510
+
511
+ ### EntityList Component
512
+
513
+ #### Overview
514
+
515
+ Selector: **entity-list**
516
+
517
+ This component shows entities from the standard REST backend application that uses ODataQuery. The view is using the [kendo-grid](https://www.telerik.com/kendo-angular-ui/components/grid/) component.
518
+
519
+ The server backend base path is setup in the [IndiginaConfiguration](https://www.npmjs.com/package/@indigina/angular#indiginaconfiguration) at the appSettings.apiUrl.
520
+
521
+ Used input parameters:
522
+
523
+ - **service: IEntityService&lt;NamedModel&gt;** - Service with data retrieval implementation. You can extend the exported **abstract class [_*EntityService*_](#entityservice)** with default implementation.
524
+ - **filters: Array&lt;FilterDescriptor | CompositeFilterDescriptor&gt;** - spicifies data filtration. You can getting more information about generic types on [kendo-data-query](https://www.npmjs.com/package/@progress/kendo-data-query) npm.
525
+ - **fields?: Field[]** - field list to show from dataset. **Field** - Interface which describes:
526
+
527
+ | name | type | description |
528
+ | --------- | ------- | -------------------------------------------------------- |
529
+ | name | string | the field name in the dataset. |
530
+ | title | string | the title which shows in the header in data-grid column. |
531
+ | sortable? | boolean | indicates if a column is sortable. Default is "true". |
532
+ | position? | number | indicates columns order. "Name" coulumn position is 0. |
533
+
534
+ - **commands?: Command[]** - array of custom, developer defined commands. **Command** - Interface which describes:
535
+
536
+ | name | type | required | description |
537
+ | --------- | -------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
538
+ | name | string | no | The name of command. |
539
+ | title | srtring | no | The title which shows in template. |
540
+ | iconClass | string | no | You can use font-awesome or some other classes. You can sets this property for show icon by the class, for example usage font-awesome classes: fa fa-trash |
541
+ | handler | (data: NamedModel) => void | yes | The click event handler for future command button |
542
+
543
+ - **rowClass?: (dataItem: NamedModel, index: number) => {}** - calculates css classes based on a current dataItem.
544
+
545
+ Output parameters:
546
+
547
+ - **filterChange: CompositeFilterDescriptor** - emits event when filter is changed.
548
+
549
+ #### Usage:
550
+
551
+ <entity-list [service]="service"></entity-list>
552
+
553
+ ---
554
+
555
+ ### EntityEditForm Component
556
+
557
+ #### Overview
558
+
559
+ Selector: **entity-edit-form**
560
+
561
+ The component shows specific edit form for single entity, for example: Selected entity in [EntityList Component](#entitylist-component).
562
+ It includes default save actions. Used like wrapper of form for entity.
563
+
564
+ Used input parameters:
565
+
566
+ - **title: string** - The title to show at top.
567
+ - **adapter: IFormAdapter&lt;IdentifiedModel&gt;** - accepts form adapter, see usage of [EntityEdit Component](#entityedit-component)
568
+
569
+ #### Usage:
570
+
571
+ <entity-edit-form title="User Details" [adapter]="adapter">
572
+ <div *ngIf="form" [formGroup]="form">
573
+ <field-input
574
+ fieldName="userName"
575
+ labelKey="Username"
576
+ maxlength="200"
577
+ required
578
+ >
579
+
580
+ ....
581
+
582
+ </div>
583
+ </entity-edit-form>
584
+
585
+ ---
586
+
587
+ ### EntityEdit Component
588
+
589
+ #### Overview
590
+
591
+ Selector: -
592
+
593
+ Thats abstract class which implements IFormAdapter. Used by [EntityEditForm Component](#entityeditform-component) as adapter input attribute.
594
+
595
+ Declaration:
596
+
597
+ abstract class EntityEditComponent<T extends IdentifiedModel>
598
+
599
+ IdentifiedModel - Interface exported by [@indigina/angular](https://www.npmjs.com/package/@indigina/angular#identifiedmodel)
600
+
601
+ #### Usage:
602
+
603
+ export class UserEditComponent extends EntityEditComponent<User> {
604
+ constructor (service: UserDataService) {
605
+ base(service);
606
+ }
607
+ }
608
+
609
+ ---
610
+
611
+ ### ExcelExportButton Component
612
+
613
+ #### Overview
614
+
615
+ Selector: **excel-export-button**
616
+
617
+ Basically, this is styled button component for default kendo-grid Excel Export Action.
618
+
619
+ This component used in [EntityList Component](#entitylist-component) by default.
620
+
621
+ #### Usage
622
+
623
+ <ng-template kendoGridToolbarTemplate>
624
+ <excel-export-button></excel-export-button>
625
+ </ng-template>
626
+
627
+ ---
628
+
629
+ ### FooterBar Component
630
+
631
+ #### Overview
632
+
633
+ Selector: **footer-bar**
634
+
635
+ Component to show standard Indigina styled footer.
636
+
637
+ #### Usage
638
+
639
+ <footer-bar>Footer Content</footer-bar>
640
+
641
+ ---
642
+
643
+ ### ModalWindow Component
644
+
645
+ #### Overview
646
+
647
+ Selector: **modal-window**
648
+
649
+ This component shows a modal window with content provided from the inner content of the selector tag.
650
+
651
+ Used input parameters:
652
+
653
+ - **callbackPath: string** - the callback path to navigate when the window has closed.
654
+
655
+ #### Usage
656
+
657
+ For example, you have an **UserProfileComponent** with table of basic profile fields and you want to show detaled user profile by clicking the button.
658
+ At first you need to add the following template at the end of **UserProfileComponent**:
659
+
660
+ ...
661
+ <router-outlet></router-outlet>
662
+
663
+ It is necessery to show the child component, suppose the **DetailedUserProfileComponent**.
664
+
665
+ The next step is to add route into children property of the parent component route configuration. Usualy the **app-routing.module.ts** file in your application. It can be done like this:
666
+
667
+ ...
668
+ {
669
+ path: '/profiles',
670
+ component: UserProfileComponent,
671
+ children: [
672
+ {
673
+ path: ':id',
674
+ component: DetailedUserProfileComponent,
675
+ },
676
+ ],
677
+ },
678
+
679
+ And the last step is to add the following into **DetailedUserProfileComponent** template:
680
+
681
+ <modal-window [callbackPath]="callbackPath">The content of modal window</modal-window>
682
+
683
+ For example, you can use '/' constant as callbackPath. That means that after the modal window has been closed, the router will navigate to '/',which is a root path of the application.
684
+
685
+ ---
686
+
687
+ ### MulticheckFilter Component
688
+
689
+ #### Overview
690
+
691
+ Selector: **multicheck-filter**
692
+
693
+ Component provides nested filters as the list of the values of selected field to the kendo-grid.
694
+
695
+ Used input parameters:
696
+
697
+ - **currentFilter: CompositeFilterDescriptor** - the current kendo-grid filter
698
+ - **data: NamedModel[]** - list of values for field to can add to filter
699
+ - **filterService: FilterService** - service exported from [**kendo-angular-grid**](https://www.telerik.com/kendo-angular-ui/components/grid/)
700
+ - **field: string** - name of field to filter
701
+
702
+ #### Usage
703
+
704
+ <multicheck-filter
705
+ field="Id"
706
+ [filterService]="filterService"
707
+ [currentFilter]="gridState.filter"
708
+ [data]="users"
709
+ >
710
+ </multicheck-filter>
711
+
712
+ ---
713
+
714
+ ### TopBar Component
715
+
716
+ #### Overview
717
+
718
+ Selector: **top-bar**
719
+
720
+ Component display [AccountMenu Component](#accountmenu-component) and [SideMenu Component](https://www.npmjs.com/package/@indigina/angular#side-menu-component) toggler.
721
+
722
+ Used input parameters:
723
+
724
+ - **currentUser: Member** - the current user for [AccountMenu Component](#accountmenu-component)
725
+
726
+ #### Usage
727
+
728
+ <top-bar [currentUser]="user"></top-bar>
729
+
730
+ ---
731
+
732
+ ## Side-Menu Component
733
+
734
+ Selector: **side-menu**
735
+
736
+ This component displays a menu.
737
+ Used input parameter **[items]** with type **MenuItem[]**:
738
+
739
+ ### MenuItem type overview
740
+
741
+ | Param name | Required | Type | Description |
742
+ | ------------- | -------- | ---------- | ------------------------------------------------------------------------------------------- |
743
+ | **text** | yes | string | Text to show. It will be translated by **_translate_** pipe inside (@ngx-translate package) |
744
+ | **url** | no | string | Use for external url link |
745
+ | **link** | no | string | Use for internal url route |
746
+ | **iconClass** | no | string | The class of icon. For exapmle: 'fa fa-dashboard' |
747
+ | **expanded** | no | boolean | You can set expand flag manually. Child elements are displayed if flag is set to **_true_** |
748
+ | **items** | no | MenuItem[] | Collection of child menu items |
749
+
750
+ ### Side-Menu Component Usage
751
+
752
+ Inside the template class
753
+
754
+ <side-menu [items]="items">
755
+
756
+ Inside your component class
757
+
758
+ public items: MenuItem[];
759
+
760
+ ...
761
+
762
+ this.items = [
763
+ {
764
+ text: 'Home',
765
+ iconClass: 'fa fa-home',
766
+ link: '/'
767
+ },
768
+ {
769
+ text: 'Management',
770
+ iconClass: 'fa fa-dashboard',
771
+ items: [
772
+ {
773
+ text: 'Users',
774
+ iconClass: 'fa fa-user',
775
+ link: '/users',
776
+ },
777
+ {
778
+ text: 'Roles',
779
+ iconClass: 'fa fa-user-plus',
780
+ link: '/users/roles',
781
+ },
782
+ ]
783
+ }
784
+ ];
785
+
786
+ ---
787
+
788
+ ## Tree-View Component
789
+
790
+ Selector: **tree-view**
791
+
792
+ This component shows any type of content (XML, JSON) as a tree. The text data will be rendered inside the `<pre>` tag.
793
+ The component accepts input parameters:
794
+
795
+ - **[data: string]** - the data to view
796
+ - **[maxTextLength: number] (optional)** - the maximum text length that will be displayed, otherwise hidden and expand button is shown (default is **1200**)
797
+ - **[maxRootItems: number] (optional)** - the maximum root nodes that will be displayed, otherwise hidden and expand button is shown (default is **10**)
798
+
799
+ ### Tree-View Component Usage:
800
+
801
+ <tree-view [data]="data"></tree-view>
802
+
803
+
804
+ <tree-view [data]="data" [maxRootItems]="15"></tree-view>
805
+
806
+ ---
807
+
808
+ # Directives
809
+
810
+ ## Debounce Directive
811
+
812
+ Selector: **[appDebouce]**
813
+
814
+ This directive is applicable to input elements.
815
+
816
+ This directive adds a delay and emits output Event **debounceKeyup** with input data.
817
+
818
+ Used input parameters:
819
+
820
+ - **debounceTime** - time to delay in **_ms_** (default is 500)
821
+
822
+ #### Usage
823
+
824
+ <input appDebouce (debounceKeyup)="search($event.target.value)" />
825
+
826
+ ---
827
+
828
+ ## RequirePermission Directive
829
+
830
+ ### Overview
831
+
832
+ Selector: **[requirePermission]**
833
+
834
+ This directive is shows element only when current user has specific permission.
835
+
836
+ Used input parameters:
837
+
838
+ - **permissionType: PermissionTypes | PermissionTypes[]** - specifies the permission type to check. See [PermissionTypes](#permissiontypes).
839
+
840
+ - **permissionCategory?: string** - permission category to check.
841
+
842
+ #### Usage
843
+
844
+ <a [routerLink]="/link" requirePermission permissionType="Create">link</a>
845
+
846
+ ---
847
+
848
+ # Services
849
+
850
+ ## AccountService
851
+
852
+ This service extends of [BaseAccountService](#baseaccountservice) and implements the **isAdmin** abstract method.
853
+
854
+ ---
855
+
856
+ ## ActivityFilterService
857
+
858
+ This service provides current [ActivityFilter](#activityfilter) and [gridState](https://www.telerik.com/kendo-angular-ui/components/data-query/api/State/) by the subscription.
859
+
860
+ ### Public Methods Provided:
861
+
862
+ - **reset()** - Clearing **currentFilter** to default values with populating **currentFilter** and **currentGridState**.
863
+ - **clearFilter()** - Clearing **currentFilter** to default values without populating **currentFilter** and **currentGridState**.
864
+ - **setFilter(filter: ActivityFilter)** - Sets **currentFilter** from the **filter** values, without populating **currentFilter** and **currentGridState**.
865
+ - **applyFilter(filter: ActivityFilter)** - Sets **currentFilter** from the **filter** values, then populating **currentFilter** and **currentGridState**.
866
+ - **setToday()** - Sets dates for current day time range, then populating **currentFilter** and **currentGridState**.
867
+ - **setTodayDates()** - Sets dates for current day time range without populating **currentFilter** and **currentGridState**.
868
+ - **setGridState(state: State)** - Sets currentFilter from **state**, then populating **currentFilter** and **currentGridState**.
869
+
870
+ ### Public Properties Provided:
871
+
872
+ - **currentFilter: ActivityFilter** - store current filter
873
+ - **currentGridState: State** - store current gridState
874
+ - **filter$** - Observable stream for subscription. Returns **[ActivityFilter](#activityfilter)**
875
+ - **gridState$** - Observable stream for subscription. Returns **[State](https://www.telerik.com/kendo-angular-ui/components/data-query/api/State/)**
876
+
877
+ ---
878
+
879
+ ## AppToastrService
880
+
881
+ This service provides a public methods to show toast messages.
882
+
883
+ > ## Important Notice:
884
+ >
885
+ > This service require to configure Library for default **toastrTimeOut** see the [Configure Library](#configure-library) section
886
+
887
+ ### Public Methods Provided:
888
+
889
+ - **showError(message: string, title: string = 'Error'): void** - shows the stylized error message
890
+ - **showSuccess(message: string, title: string = ''): void** - shows the stylized success message
891
+
892
+ ---
893
+
894
+ ## BaseAccountService
895
+
896
+ This is an abstract generic class of service that provides current user and initiates authentication flow. That service uses OAuthService from [angular-oauth2-oidc](https://www.npmjs.com/package/angular-oauth2-oidc) for authentication.
897
+
898
+ ### Public Methods Provided:
899
+
900
+ - **login()** - initiates authentication flow
901
+ - **logout()** - allows current user to logout
902
+ - **getCurrentUser(): Observable&lt;Member&gt;** - returns current authenticated user, initiates authenticate if not authenticated
903
+ - **abstract isAdmin(member: T): boolean** - declares a method that indicates the user is admin.
904
+
905
+ ---
906
+
907
+ ## EntityService
908
+
909
+ This is an abstract generic class which declares public methods for work with entities on server endpoint using **REST**.
910
+
911
+ Declaration:
912
+
913
+ export abstract class EntityService<T extends IdentifiedModel>
914
+ implements IEntityService<T> {
915
+ constructor(
916
+ protected httpService: HttpService,
917
+ protected endpoints: IEntityEndpoints
918
+ ) {}
919
+
920
+ ...
921
+
922
+ }
923
+
924
+ Where **IEntityEndpoints** - Interface which describe:
925
+
926
+ | name | type | required | description |
927
+ | ---------------------- | ------ | -------- | ----------------------------------------------- |
928
+ | path | string | yes | Name of entity, example 'user' |
929
+ | entityPath(id: string) | string | yes | returns path to target entity, exapmle 'user/1' |
930
+ | query(state: State) | string | yes | returns entity path with odata-filter |
931
+
932
+ ### Public Methods Provided:
933
+
934
+ - **getPage(state: State): Observable&lt;Page&lt;T&gt;&gt;** - accept state of kendo-grid and returns paged result. See [Page](#page)
935
+ - **get(id: string): Observable&lt;T&gt;** - get single entity from endpoint.
936
+ - **delete(id: string): Observable&lt;object&gt;** - delete entity by id.
937
+ - **save(model: T): Observable&lt;T&gt;** - create or modify entity.
938
+
939
+ ---
940
+
941
+ ## HttpService
942
+
943
+ This service provides public methods for get any content from server endpoint.
944
+
945
+ > ## Important Notice:
946
+ >
947
+ > This service require [AppToastrService](#apptoastrservice) to configure Library for **apiUrl** see the [Configure Library](#configure-library) section
948
+
949
+ ### Standard Error Handling
950
+
951
+ All public methods provided by **HttpService** have standard error handling based on Http Status codes.
952
+
953
+ > ## Exceptional case:
954
+ >
955
+ > When the service receives a connection error then shows a toast message from the **HttpErrorResponse** class.
956
+
957
+ ---
958
+
959
+ #### Error Handle Actions
960
+
961
+ | Http Status Code | Status Name | Action |
962
+ | ---------------- | --------------------- | --------------------------------------------------------- |
963
+ | 401 | Unauthorised | Shows toast message and navigate to **'home'** route |
964
+ | 403 | Frobidden | Shows toast message and navigate to **'forbidden'** route |
965
+ | 404 | NotFound | Shows toast message and navigate to **'/'** route |
966
+ | 500 | Internal Server Error | Show toast message and returns null |
967
+ | any | | throws error |
968
+
969
+ ### Public Methods Provided:
970
+
971
+ - **get&lt;T&gt;(path: string): Observable&lt;T&gt;** - make a _*GET*_ request and return a response.
972
+ - **post&lt;T&gt;(path: string, data: T): Observable&lt;T&gt;** - make a _*POST*_ request with data and return a response.
973
+ - **put&lt;T&gt;(path: string, data: T): Observable&lt;T&gt;** - make a _*PUT*_ request with data and return a response.
974
+ - **delete(path: string): Observable&lt;object&gt;** - make a _*DELETE*_ request to endpoint and return a response.
975
+
976
+ > \*path - is target endpoint without a basic apiUrl part
977
+
978
+ ---
979
+
980
+ ## PermissionsService
981
+
982
+ This service gets permissions from server endpoint.
983
+
984
+ ### Public Methods Provided:
985
+
986
+ - **getAll(memberType: MemberTypes): Observable&lt;Permissions&gt;** - get all permissions for selected member type. See [MemberTypes](#membertypes)
987
+ - **getMine(): Observable&lt;Permissions&gt;** - get permissions of the current user.
988
+
989
+ ---
990
+
991
+ ## TranslateSettingsService
992
+
993
+ This service provides public methods for managing the current locale for an application.
994
+
995
+ ### Public Methods Provided:
996
+
997
+ - **getLocales(): {name: string, code: string}** - returns a list of supported languages
998
+ - **getLocale(): string** - returns the current locale code
999
+ - **setLocale(locale: string): void** - sets input **locale** code as current and switch TranslateModule to current
1000
+
1001
+ ---
1002
+
1003
+ # Models
1004
+
1005
+ ## ActivityFilter
1006
+
1007
+ > Type: _interface_
1008
+
1009
+ > Extends: -
1010
+
1011
+ > Description: The model that stores UI filter.
1012
+
1013
+ ### Overview
1014
+
1015
+ | Prop name | Required | Type | Description |
1016
+ | --------------- | -------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------------ |
1017
+ | dateTo | no | Date | The ending date in selection for filtering |
1018
+ | dateFrom | no | Date | The starting date in selection for filtering |
1019
+ | switchToArchive | yes | Boolean | Sign of going to the archive |
1020
+ | searchText | no | String | The text to search |
1021
+ | skip | no | number | The number of skip records. See [State](https://www.telerik.com/kendo-angular-ui/components/data-query/api/State/) |
1022
+ | take | no | number | The number of take records. See [State](https://www.telerik.com/kendo-angular-ui/components/data-query/api/State/) |
1023
+ | group | no | Array&lt;GroupDescriptor&gt; | The 'group by' filter. See [State](https://www.telerik.com/kendo-angular-ui/components/data-query/api/State/) |
1024
+ | sort | no | Array&lt;SortDescriptor&gt; | The sort filter. See [State](https://www.telerik.com/kendo-angular-ui/components/data-query/api/State/) |
1025
+ | customFilters | no | Array&lt;CustomFilter&gt; | The array of custom filters. See [CustomFilter](#customfilter) model |
1026
+
1027
+ ---
1028
+
1029
+ ## AppSettings
1030
+
1031
+ > Type: _abstract class_
1032
+
1033
+ > Extends: -
1034
+
1035
+ > Description: The model for configuration [HttpService](#httpservice) and [AppToastrService](#apptoastrservice).
1036
+
1037
+ ### Overview
1038
+
1039
+ | Prop name | Required | Type | Description |
1040
+ | --------------- | -------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1041
+ | apiUrl | yes | string | The base endpoint server url |
1042
+ | accountUrl | yes | string | The url to account server |
1043
+ | toastrTimeOut | yes | number | Timeout to auto close toast message |
1044
+ | signalRLogLevel | no | LogLevel (enum) | This optoin is idicate what SignalR log information do you can see in the console. By default is _*None*_. See more about [LogLevel](https://docs.microsoft.com/en-us/aspnet/core/signalr/diagnostics?view=aspnetcore-5.0#javascript-client-logging). |
1045
+
1046
+ ---
1047
+
1048
+ ## CustomFilter
1049
+
1050
+ > Type: _interface_
1051
+
1052
+ > Extends: -
1053
+
1054
+ > Description: The model that stores additional filter for UI.
1055
+
1056
+ ### Overview
1057
+
1058
+ | Prop name | Required | Type | Description |
1059
+ | ------------ | -------- | --------------------- | -------------------------------------------------------------------------------------------------------------------- |
1060
+ | field | yes | string | The name of the field to filtering |
1061
+ | operator | yes | Operators | The selection filter operator. See [Operators](#operators) |
1062
+ | value | no | string number boolean | The current value of the filter. If the value is null then filter item is clear |
1063
+ | values | no | Array&lt;string&gt; | The current value list of the filter. Used by multiselect type view. If the values is null then filter item is clear |
1064
+ | filterTarget | yes | FilterTargets | The target of filtering. See [FilterTargets](#filtertargets) |
1065
+
1066
+ ---
1067
+
1068
+ ## CustomFilterElement
1069
+
1070
+ > Type: _interface_
1071
+
1072
+ > Extends: -
1073
+
1074
+ > Description: The model that stores additional visible filter component.
1075
+
1076
+ ### Overview
1077
+
1078
+ | Prop name | Required | Type | Description |
1079
+ | ----------- | -------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
1080
+ | title | yes | string | The renderable title of the field with trying to translate. |
1081
+ | fieldType | yes | FieldTypes | The renderable type of field. See [FieldTypes](#fieldtypes) |
1082
+ | data | no | Array&lt;NamedModel&gt; Promise&lt;NamedModel[]&gt; | The dataset to select a variation from the list. Necessary only at list element types, like a dropdown. |
1083
+ | filter | yes | CustomFilter | The filter that the field uses. See [CustomFilter](#customfilter) |
1084
+ | valueField | no | string | The indicates column of data to use as filter value dropdown/multiselect |
1085
+ | placeholder | no | string | The placeholder of text and multiselect view fields |
1086
+ | change | no | (value: string \| number \| boolean \| string[]) => void | The Callback function is called when the value of the selected field changes. |
1087
+
1088
+ ---
1089
+
1090
+ ## CustomHttpErrorResponse
1091
+
1092
+ > Type: _declare class_
1093
+
1094
+ > Extends: HttpErrorResponse (from @angular/common/http)
1095
+
1096
+ > Description: Add title property to HttpErrorResponse Type.
1097
+
1098
+ ### Overview
1099
+
1100
+ | Prop name | Required | Type | Description |
1101
+ | --------- | -------- | ------ | ----------- |
1102
+ | title | yes | string | The title |
1103
+
1104
+ ---
1105
+
1106
+ ## FieldTypes
1107
+
1108
+ > Type: _enum_
1109
+
1110
+ > Extends: -
1111
+
1112
+ > Description: Enum for type of renderable element.
1113
+
1114
+ ### Overview
1115
+
1116
+ | Key | Description |
1117
+ | ----------- | ------------------------------------------------------------------------------ |
1118
+ | Text | For input with text type |
1119
+ | Checkbox | For checkbox input |
1120
+ | Dropdown | For input with dropdown type. Uses kendo-dropdown as renderable component |
1121
+ | Multiselect | For input with dropdown multiselect type. Uses kendo-multiselect as renderable |
1122
+
1123
+ ---
1124
+
1125
+ ## FilterTargets
1126
+
1127
+ > Type: _enum_
1128
+
1129
+ > Extends: -
1130
+
1131
+ > Description: Enum for setting how filter to affect.
1132
+
1133
+ ### Overview
1134
+
1135
+ | Key | Description |
1136
+ | ---- | ----------------------------------------------------- |
1137
+ | Url | The filter value will be set into URL |
1138
+ | Grid | The value will be set as OData query-selection filter |
1139
+
1140
+ ---
1141
+
1142
+ ## HttpCodes
1143
+
1144
+ > Type: _enum_
1145
+
1146
+ > Extends: -
1147
+
1148
+ > Description: Enum for http codes.
1149
+
1150
+ ### Overview
1151
+
1152
+ | Key | Value |
1153
+ | ------------------- | ----- |
1154
+ | BadRequest | 400 |
1155
+ | Forbidden | 403 |
1156
+ | InternalServerError | 500 |
1157
+ | NotFound | 404 |
1158
+ | OK | 200 |
1159
+ | Unauthorized | 401 |
1160
+
1161
+ ---
1162
+
1163
+ ## HttpMethods
1164
+
1165
+ > Type: _const_ : [NamedModel[]](#namedmodel)
1166
+
1167
+ > Extends: -
1168
+
1169
+ > Description: - .
1170
+
1171
+ ### Overview
1172
+
1173
+ | id | name |
1174
+ | ------ | ------ |
1175
+ | POST | POST |
1176
+ | PUT | PUT |
1177
+ | GET | GET |
1178
+ | DELETE | DELETE |
1179
+
1180
+ ---
1181
+
1182
+ ## IdentifiedModel
1183
+
1184
+ > Type: _interface_
1185
+
1186
+ > Extends: -
1187
+
1188
+ > Description: Declare _id_ field.
1189
+
1190
+ ### Overview
1191
+
1192
+ | Prop Name | Required | Type |
1193
+ | --------- | -------- | ------ |
1194
+ | id | yes | string |
1195
+
1196
+ ---
1197
+
1198
+ ## IndiginaConfiguration
1199
+
1200
+ > Type: _abstract class_
1201
+
1202
+ > Extends: -
1203
+
1204
+ > Description: Interface for configuration @indigina/angular library.
1205
+
1206
+ ### Overview
1207
+
1208
+ | Prop Name | Required | Type | Description |
1209
+ | --------- | -------- | --------------------------- | ---------------------------------- |
1210
+ | langs | no | TranslateLoader | Configuration for Translate Module |
1211
+ | name | no | [AppSettings](#appsettings) | Basic application environment |
1212
+
1213
+ ---
1214
+
1215
+ ## Language
1216
+
1217
+ > Type: _interface_
1218
+
1219
+ > Extends: -
1220
+
1221
+ > Description: The model that store language info.
1222
+
1223
+ ### Overview
1224
+
1225
+ | Prop name | Required | Type | Description |
1226
+ | --------- | -------- | ------ | ------------------------------------------- |
1227
+ | name | yes | string | The name of language. For example 'English' |
1228
+ | code | yes | string | The code of language. For example 'en' |
1229
+
1230
+ ---
1231
+
1232
+ ## Member
1233
+
1234
+ > Type: _interface_
1235
+
1236
+ > Extends: [MemberBase](#membrbase)
1237
+
1238
+ > Description: The model that store member info.
1239
+
1240
+ ### Overview
1241
+
1242
+ | Prop name | Required | Type | Description |
1243
+ | --------- | -------- | ----------- | ---------------------------------------------------------- |
1244
+ | type | yes | MemberTypes | Type of member user/admin. See [MemberTypes](#membertypes) |
1245
+
1246
+ ---
1247
+
1248
+ ## MemberBase
1249
+
1250
+ > Type: _interface_
1251
+
1252
+ > Extends: [NamedModel](#https://www.npmjs.com/package/@indigina/angular#namedmodel) from '@indigina/angular'
1253
+
1254
+ > Description: The model that store basic member info.
1255
+
1256
+ ### Overview
1257
+
1258
+ | Prop name | Required | Type | Description |
1259
+ | --------- | -------- | -------- | ------------------ |
1260
+ | userName | yes | string | The username |
1261
+ | email | yes | string | The email |
1262
+ | firstName | yes | string | The firstname |
1263
+ | lastName | yes | string | The lastname |
1264
+ | password | yes | string | The password |
1265
+ | roles | yes | string[] | The array of roles |
1266
+
1267
+ ---
1268
+
1269
+ ## MemberTypes
1270
+
1271
+ > Type: _enum_
1272
+
1273
+ > Extends: -
1274
+
1275
+ > Description: Enum for member type.
1276
+
1277
+ ### Overview
1278
+
1279
+ | Key | Value |
1280
+ | ----- | ------- |
1281
+ | Admin | 'Admin' |
1282
+ | User | 'User' |
1283
+
1284
+ ---
1285
+
1286
+ ## NamedModel
1287
+
1288
+ > Type: _interface_
1289
+
1290
+ > Extends: - [IdentifiedModel](#identifiedmodel)
1291
+
1292
+ > Description: Declare _name_ field with _id_ field which inherits from [IdentifiedModel](#identifiedmodel).
1293
+
1294
+ ### Overview
1295
+
1296
+ | Prop Name | Required | Type |
1297
+ | --------- | -------- | ------ |
1298
+ | name | yes | string |
1299
+
1300
+ ---
1301
+
1302
+ ## OidcSettings
1303
+
1304
+ > Type: _interface_
1305
+
1306
+ > Extends: -
1307
+
1308
+ > Description: The model that store basic config for OAuthService.
1309
+
1310
+ ### Overview
1311
+
1312
+ | Prop name | Required | Type | Description |
1313
+ | --------- | -------- | ------ | -------------------------------- |
1314
+ | clientId | yes | string | The clientId for SSO server |
1315
+ | authority | yes | string | The SSO server auth url |
1316
+ | issuer | yes | string | The SSO server url to check auth |
1317
+
1318
+ ---
1319
+
1320
+ ## Operators
1321
+
1322
+ > Type: _enum_
1323
+
1324
+ > Extends: -
1325
+
1326
+ > Description: Enum to set OData query-selection filter operator.
1327
+
1328
+ ### Overview
1329
+
1330
+ | Key | Value | Description |
1331
+ | -------------- | ---------------- | ----------------------------------------------------------------------- |
1332
+ | eq | 'eq' | equal to |
1333
+ | neq | 'neq' | not equal to |
1334
+ | isnull | 'isnull' | is equal to null |
1335
+ | isnotnull | 'isnotnull' | is not equal to null |
1336
+ | lt | 'lt' | less than |
1337
+ | lte | 'lte' | less than or equal to |
1338
+ | gt | 'gt' | greater than |
1339
+ | gte | 'gte' | greater than or equal to |
1340
+ | startswith | 'startswith' | Indicates to value is start with. Supported for string fields only. |
1341
+ | endswith | 'endswith' | Indicates to value is ends with. Supported for string fields only. |
1342
+ | contains | 'contains' | Indicates to value is countains. Supported for string fields only. |
1343
+ | doesnotcontain | 'doesnotcontain' | Indicates to value does not countain. Supported for string fields only. |
1344
+ | isempty | 'isempty' | Indicates to value is empty. Supported for string fields only. |
1345
+ | isnotempty | 'isnotempty' | Indicates to value is not empty. Supported for string fields only. |
1346
+
1347
+ ---
1348
+
1349
+ ## Page<T>
1350
+
1351
+ > Type: _interface_
1352
+
1353
+ > Extends: -
1354
+
1355
+ > Description: The model that store paged response for kendo-grid.
1356
+
1357
+ ### Overview
1358
+
1359
+ | Prop name | Required | Type | Description |
1360
+ | --------- | -------- | ------ | ---------------------------- |
1361
+ | data | yes | T[] | Entity list |
1362
+ | total | yes | number | All available entities count |
1363
+
1364
+ ---
1365
+
1366
+ ## Permissions
1367
+
1368
+ > Type: _interface_
1369
+
1370
+ > Extends: -
1371
+
1372
+ > Description: Model that store PermissionCategory as key and [PermissionTypes](#permissiontypes) as value
1373
+
1374
+ ### Overview
1375
+
1376
+ | Prop name | Required | Type | Description |
1377
+ | ------------- | -------- | ----------------- | ------------------------------- |
1378
+ | [key: string] | yes | PermissionTypes[] | Permissions from Category (key) |
1379
+
1380
+ ---
1381
+
1382
+ ## PermissionTypes
1383
+
1384
+ > Type: _enum_
1385
+
1386
+ > Extends: -
1387
+
1388
+ > Description: Enum for permission type.
1389
+
1390
+ ### Overview
1391
+
1392
+ | Key | Value |
1393
+ | ------ | -------- |
1394
+ | Create | 'Create' |
1395
+ | Delete | 'Delete' |
1396
+ | Edit | 'Edit' |
1397
+ | View | 'View' |
1398
+ | Set | 'Set' |
1399
+
1400
+ ---
1401
+
1402
+ # Provided packages
1403
+
1404
+ - [@angular/platform-browser/animations](https://angular.io/api/platform-browser/animations)
1405
+ - [@ngx-translate/core](https://www.npmjs.com/package/@ngx-translate/core)
1406
+ - [ngx-clipboard](https://www.npmjs.com/package/ngx-clipboard)
1407
+ - [ngx-toastr](https://www.npmjs.com/package/ngx-toastr)
1408
+ - [angular-oauth2-oidc](https://github.com/manfredsteyer/angular-oauth2-oidc)
1409
+ - [moment-timezone](https://www.npmjs.com/package/moment-timezone) as **momentTimezone** const