@mediusinc/mng-commons 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/esm2020/lib/api/services/{abstract-crud-api.service.mjs → crud-api.abstract.service.mjs} +2 -2
  2. package/esm2020/lib/api/services/index.mjs +2 -2
  3. package/esm2020/lib/api/utils/medius-rest.util.mjs +1 -1
  4. package/esm2020/lib/api/utils/object-serializer.util.mjs +1 -1
  5. package/esm2020/lib/components/action/action.component.mjs +9 -7
  6. package/esm2020/lib/components/action/dialog/action-dialog.component.mjs +15 -26
  7. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -0
  8. package/esm2020/lib/components/action/models/action-execution.model.mjs +58 -0
  9. package/esm2020/lib/components/action/models/index.mjs +3 -0
  10. package/esm2020/lib/components/action/route/action-route.component.mjs +8 -8
  11. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +114 -0
  12. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +113 -0
  13. package/esm2020/lib/components/form/editor/form-editor.component.mjs +11 -12
  14. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +6 -6
  15. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +6 -6
  16. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +5 -5
  17. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +5 -5
  18. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +6 -6
  19. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +6 -6
  20. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +5 -5
  21. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +5 -5
  22. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +5 -5
  23. package/esm2020/lib/components/form/index.mjs +3 -3
  24. package/esm2020/lib/components/form/models/form-editor.event.mjs +7 -0
  25. package/esm2020/lib/components/form/models/index.mjs +2 -0
  26. package/esm2020/lib/components/layout/main-layout.component.mjs +36 -15
  27. package/esm2020/lib/components/layout/menu-item.component.mjs +4 -4
  28. package/esm2020/lib/components/layout/menu.component.mjs +6 -6
  29. package/esm2020/lib/components/layout/services/index.mjs +2 -0
  30. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +5 -5
  31. package/esm2020/lib/components/layout/topbar.component.mjs +35 -16
  32. package/esm2020/lib/components/tableview/models/index.mjs +2 -0
  33. package/esm2020/lib/components/tableview/models/table.event.mjs +16 -0
  34. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +2 -2
  35. package/esm2020/lib/components/tableview/services/index.mjs +2 -0
  36. package/esm2020/lib/components/tableview/services/tableview.component.service.mjs +17 -0
  37. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +4 -4
  38. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +3 -3
  39. package/esm2020/lib/components/tableview/table/table.component.mjs +11 -11
  40. package/esm2020/lib/components/tableview/tableview.component.mjs +11 -12
  41. package/esm2020/lib/config/formly.config.mjs +13 -13
  42. package/esm2020/lib/{models/config → config/models}/index.mjs +1 -1
  43. package/esm2020/lib/config/models/mng-config.model.mjs +2 -0
  44. package/esm2020/lib/data-providers/base.data-provider.mjs +24 -0
  45. package/esm2020/lib/data-providers/editor.data-provider.mjs +37 -0
  46. package/esm2020/lib/data-providers/index.mjs +6 -0
  47. package/esm2020/lib/data-providers/lookup.data-provider.mjs +16 -0
  48. package/esm2020/lib/data-providers/table.data-provider.mjs +2 -0
  49. package/esm2020/lib/data-providers/tableview.data-provider.mjs +17 -0
  50. package/esm2020/lib/descriptors/action.descriptor.mjs +332 -0
  51. package/esm2020/lib/descriptors/editor.descriptor.mjs +670 -0
  52. package/esm2020/lib/descriptors/field.validator.mjs +21 -0
  53. package/esm2020/lib/descriptors/index.mjs +8 -0
  54. package/esm2020/lib/descriptors/lookup.descriptor.mjs +2 -0
  55. package/esm2020/lib/descriptors/model.descriptor.mjs +34 -0
  56. package/esm2020/lib/descriptors/table.descriptor.mjs +401 -0
  57. package/esm2020/lib/descriptors/tableview.descriptor.mjs +131 -0
  58. package/esm2020/lib/directives/component.directive.mjs +23 -0
  59. package/esm2020/lib/directives/index.mjs +2 -1
  60. package/esm2020/lib/directives/template.directive.mjs +11 -7
  61. package/esm2020/lib/mng-commons.module.mjs +137 -70
  62. package/esm2020/lib/models/index.mjs +3 -0
  63. package/esm2020/lib/models/router.model.mjs +2 -0
  64. package/esm2020/lib/models/user.model.mjs +2 -0
  65. package/esm2020/lib/pipes/boolean.pipe.mjs +5 -5
  66. package/esm2020/lib/pipes/property-path.pipe.mjs +5 -5
  67. package/esm2020/lib/services/action.service.mjs +6 -7
  68. package/esm2020/lib/services/commons.service.mjs +5 -9
  69. package/esm2020/lib/services/configuration.service.mjs +2 -1
  70. package/esm2020/lib/services/providers/config-service.provider.mjs +10 -2
  71. package/esm2020/lib/services/providers/formly-config.provider.mjs +1 -1
  72. package/esm2020/lib/services/providers/index.mjs +2 -1
  73. package/esm2020/lib/services/tokens/browser-storage.token.mjs +6 -0
  74. package/esm2020/lib/services/tokens/index.mjs +3 -0
  75. package/esm2020/lib/services/tokens/module-config.token.mjs +3 -0
  76. package/esm2020/lib/types/index.mjs +3 -0
  77. package/esm2020/lib/types/type.decorator.mjs +7 -0
  78. package/esm2020/lib/types/type.model.mjs +2 -0
  79. package/esm2020/lib/utils/editor-formly.util.mjs +2 -2
  80. package/esm2020/lib/utils/i18n.util.mjs +1 -1
  81. package/esm2020/lib/utils/index.mjs +2 -1
  82. package/esm2020/lib/utils/model.util.mjs +1 -1
  83. package/esm2020/lib/utils/toast.util.mjs +2 -2
  84. package/esm2020/lib/utils/type.util.mjs +2 -2
  85. package/esm2020/public-api.mjs +12 -11
  86. package/fesm2015/mediusinc-mng-commons.mjs +509 -377
  87. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  88. package/fesm2020/mediusinc-mng-commons.mjs +502 -371
  89. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  90. package/lib/api/services/{abstract-crud-api.service.d.ts → crud-api.abstract.service.d.ts} +2 -2
  91. package/lib/api/services/index.d.ts +1 -1
  92. package/lib/api/utils/medius-rest.util.d.ts +1 -1
  93. package/lib/api/utils/object-serializer.util.d.ts +1 -1
  94. package/lib/components/action/action.component.d.ts +8 -8
  95. package/lib/components/action/dialog/action-dialog.component.d.ts +13 -16
  96. package/lib/{models/interfaces/confirmation-service.model.d.ts → components/action/models/action-confirmation-service.model.d.ts} +2 -2
  97. package/lib/{models/action/action.model.d.ts → components/action/models/action-execution.model.d.ts} +3 -3
  98. package/lib/components/action/models/index.d.ts +2 -0
  99. package/lib/components/action/route/action-route.component.d.ts +6 -6
  100. package/lib/components/form/autocomplete/{mng-autocomplete.component.d.ts → autocomplete.component.d.ts} +1 -1
  101. package/lib/components/form/dropdown/{mng-dropdown.component.d.ts → dropdown.component.d.ts} +1 -1
  102. package/lib/components/form/editor/form-editor.component.d.ts +6 -6
  103. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +4 -4
  104. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +4 -4
  105. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +3 -3
  106. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +4 -4
  107. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +4 -4
  108. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +4 -4
  109. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +3 -3
  110. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +3 -3
  111. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +3 -3
  112. package/lib/components/form/index.d.ts +2 -2
  113. package/lib/components/form/models/form-editor.event.d.ts +5 -0
  114. package/lib/components/form/models/index.d.ts +1 -0
  115. package/lib/components/layout/main-layout.component.d.ts +12 -4
  116. package/lib/components/layout/menu-item.component.d.ts +3 -3
  117. package/lib/components/layout/menu.component.d.ts +3 -3
  118. package/lib/components/layout/services/index.d.ts +1 -0
  119. package/lib/components/layout/services/main-layout.component.service.d.ts +3 -3
  120. package/lib/components/layout/topbar.component.d.ts +13 -6
  121. package/lib/components/tableview/models/index.d.ts +1 -0
  122. package/lib/{models/events/table-event.model.d.ts → components/tableview/models/table.event.d.ts} +2 -2
  123. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +2 -2
  124. package/lib/components/tableview/services/index.d.ts +1 -0
  125. package/lib/components/tableview/{tableview.component.service.d.ts → services/tableview.component.service.d.ts} +2 -2
  126. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +1 -1
  127. package/lib/components/tableview/table/column-value/column-value.component.d.ts +1 -1
  128. package/lib/components/tableview/table/table.component.d.ts +8 -8
  129. package/lib/components/tableview/tableview.component.d.ts +9 -10
  130. package/lib/config/formly.config.d.ts +3 -3
  131. package/lib/{models/config → config/models}/index.d.ts +0 -0
  132. package/lib/{models/config → config/models}/mng-config.model.d.ts +0 -3
  133. package/lib/data-providers/base.data-provider.d.ts +17 -0
  134. package/lib/data-providers/editor.data-provider.d.ts +25 -0
  135. package/lib/data-providers/index.d.ts +5 -0
  136. package/lib/data-providers/lookup.data-provider.d.ts +14 -0
  137. package/lib/data-providers/table.data-provider.d.ts +6 -0
  138. package/lib/data-providers/tableview.data-provider.d.ts +15 -0
  139. package/lib/{models/descriptors/action-descriptor.model.d.ts → descriptors/action.descriptor.d.ts} +6 -3
  140. package/lib/{models/descriptors/editor-descriptor.model.d.ts → descriptors/editor.descriptor.d.ts} +5 -7
  141. package/lib/{models/validators → descriptors}/field.validator.d.ts +0 -0
  142. package/lib/descriptors/index.d.ts +7 -0
  143. package/lib/{models/interfaces/lookup.model.d.ts → descriptors/lookup.descriptor.d.ts} +3 -3
  144. package/lib/{models/descriptors/model-descriptor.model.d.ts → descriptors/model.descriptor.d.ts} +0 -0
  145. package/lib/{models/descriptors/table-descriptor.model.d.ts → descriptors/table.descriptor.d.ts} +5 -5
  146. package/lib/{models/descriptors/tableview-descriptor.model.d.ts → descriptors/tableview.descriptor.d.ts} +1 -3
  147. package/lib/directives/component.directive.d.ts +11 -0
  148. package/lib/directives/index.d.ts +1 -0
  149. package/lib/directives/template.directive.d.ts +7 -5
  150. package/lib/mng-commons.module.d.ts +70 -69
  151. package/lib/models/{router/index.d.ts → index.d.ts} +1 -0
  152. package/lib/models/router.model.d.ts +14 -0
  153. package/lib/models/{user/user.model.d.ts → user.model.d.ts} +0 -0
  154. package/lib/pipes/boolean.pipe.d.ts +3 -3
  155. package/lib/pipes/property-path.pipe.d.ts +3 -3
  156. package/lib/services/action.service.d.ts +6 -6
  157. package/lib/services/commons.service.d.ts +2 -4
  158. package/lib/services/providers/config-service.provider.d.ts +1 -1
  159. package/lib/services/providers/formly-config.provider.d.ts +1 -1
  160. package/lib/services/providers/index.d.ts +1 -0
  161. package/lib/services/tokens/browser-storage.token.d.ts +2 -0
  162. package/lib/services/tokens/index.d.ts +2 -0
  163. package/lib/services/tokens/module-config.token.d.ts +3 -0
  164. package/lib/{models/types → types}/index.d.ts +0 -0
  165. package/lib/{models/types → types}/type.decorator.d.ts +0 -0
  166. package/lib/{models/types → types}/type.model.d.ts +0 -0
  167. package/lib/utils/editor-formly.util.d.ts +1 -1
  168. package/lib/utils/i18n.util.d.ts +1 -1
  169. package/lib/utils/index.d.ts +1 -0
  170. package/lib/utils/model.util.d.ts +3 -3
  171. package/lib/utils/toast.util.d.ts +3 -3
  172. package/lib/utils/type.util.d.ts +1 -1
  173. package/{mediusinc-mng-commons-0.1.0.tgz → mediusinc-mng-commons-0.2.0.tgz} +0 -0
  174. package/package.json +1 -1
  175. package/public-api.d.ts +10 -9
  176. package/scss/common/layout/_help.scss +3 -3
  177. package/scss/common/layout/_landing.scss +1 -1
  178. package/scss/common/variables/layout/_common.scss +2 -0
  179. package/scss/common/variables/layout/_layout_dark.scss +4 -3
  180. package/scss/common/variables/layout/_layout_light.scss +4 -3
  181. package/scss/layout/default/_mng-variables-layout-light.scss +2 -2
  182. package/scss/mng-commons-dark.scss +0 -5
  183. package/scss/mng-commons-light.scss +0 -8
  184. package/scss/theme/default/_mng-variables-theme-light.scss +4 -4
  185. package/.pnpm-debug.log +0 -15
  186. package/esm2020/lib/components/form/autocomplete/mng-autocomplete.component.mjs +0 -114
  187. package/esm2020/lib/components/form/dropdown/mng-dropdown.component.mjs +0 -113
  188. package/esm2020/lib/components/tableview/tableview.component.service.mjs +0 -18
  189. package/esm2020/lib/models/action/action.model.mjs +0 -58
  190. package/esm2020/lib/models/action/index.mjs +0 -2
  191. package/esm2020/lib/models/config/mng-config.model.mjs +0 -3
  192. package/esm2020/lib/models/descriptors/action-descriptor.model.mjs +0 -325
  193. package/esm2020/lib/models/descriptors/editor-descriptor.model.mjs +0 -671
  194. package/esm2020/lib/models/descriptors/index.mjs +0 -6
  195. package/esm2020/lib/models/descriptors/model-descriptor.model.mjs +0 -34
  196. package/esm2020/lib/models/descriptors/table-descriptor.model.mjs +0 -401
  197. package/esm2020/lib/models/descriptors/tableview-descriptor.model.mjs +0 -133
  198. package/esm2020/lib/models/events/editor-event.model.mjs +0 -14
  199. package/esm2020/lib/models/events/index.mjs +0 -3
  200. package/esm2020/lib/models/events/table-event.model.mjs +0 -16
  201. package/esm2020/lib/models/interfaces/confirmation-service.model.mjs +0 -2
  202. package/esm2020/lib/models/interfaces/index.mjs +0 -3
  203. package/esm2020/lib/models/interfaces/lookup.model.mjs +0 -2
  204. package/esm2020/lib/models/providers/data-provider.model.mjs +0 -86
  205. package/esm2020/lib/models/providers/index.mjs +0 -2
  206. package/esm2020/lib/models/router/index.mjs +0 -2
  207. package/esm2020/lib/models/router/router.model.mjs +0 -2
  208. package/esm2020/lib/models/types/index.mjs +0 -3
  209. package/esm2020/lib/models/types/type.decorator.mjs +0 -7
  210. package/esm2020/lib/models/types/type.model.mjs +0 -2
  211. package/esm2020/lib/models/user/index.mjs +0 -2
  212. package/esm2020/lib/models/user/user.model.mjs +0 -2
  213. package/esm2020/lib/models/validators/field.validator.mjs +0 -21
  214. package/esm2020/lib/models/validators/index.mjs +0 -2
  215. package/lib/models/action/index.d.ts +0 -1
  216. package/lib/models/descriptors/index.d.ts +0 -5
  217. package/lib/models/events/editor-event.model.d.ts +0 -11
  218. package/lib/models/events/index.d.ts +0 -2
  219. package/lib/models/interfaces/index.d.ts +0 -2
  220. package/lib/models/providers/data-provider.model.d.ts +0 -62
  221. package/lib/models/providers/index.d.ts +0 -1
  222. package/lib/models/router/router.model.d.ts +0 -9
  223. package/lib/models/user/index.d.ts +0 -1
  224. package/lib/models/validators/index.d.ts +0 -1
@@ -1,14 +1,12 @@
1
- import { InjectionToken } from '@angular/core';
2
1
  import { Router } from '@angular/router';
3
2
  import { Title } from '@angular/platform-browser';
4
3
  import { MenuItem, PrimeNGConfig } from 'primeng/api';
5
4
  import { TranslateService } from '@ngx-translate/core';
6
5
  import { Observable } from 'rxjs';
7
6
  import { MngConfigurationService } from './configuration.service';
8
- import { MngModuleConfig } from '../models/config';
9
- import { IUser } from '../models/user/user.model';
7
+ import { MngModuleConfig } from '../config/models';
8
+ import { IUser } from '../models';
10
9
  import * as i0 from "@angular/core";
11
- export declare const BROWSER_STORAGE_IT: InjectionToken<Storage>;
12
10
  export declare class MngCommonsService {
13
11
  private router;
14
12
  private primengConfig;
@@ -1,5 +1,5 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { MngModuleConfig } from '../../models/config';
2
+ import { MngModuleConfig } from '../../config/models';
3
3
  import { MngConfigurationService } from '../configuration.service';
4
4
  export declare const mngConfigurationServiceProvider: (httpClient: HttpClient, moduleConfig: MngModuleConfig) => MngConfigurationService;
5
5
  export declare function mngConfigJsonAppInitializerProvider(configService: MngConfigurationService, moduleConfig: MngModuleConfig): () => import("rxjs").Observable<boolean>;
@@ -1,4 +1,4 @@
1
1
  import { TranslateService } from '@ngx-translate/core';
2
2
  import { ConfigOption } from '@ngx-formly/core';
3
- import { MngModuleConfig } from '../../models/config';
3
+ import { MngModuleConfig } from '../../config/models';
4
4
  export declare function mngFormlyConfigProvider(translate: TranslateService, moduleConfig?: MngModuleConfig): ConfigOption;
@@ -1,2 +1,3 @@
1
+ export * from './commons-init.provider';
1
2
  export * from './config-service.provider';
2
3
  export * from './formly-config.provider';
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const MNG_BROWSER_STORAGE_IT: InjectionToken<Storage>;
@@ -0,0 +1,2 @@
1
+ export * from './browser-storage.token';
2
+ export * from './module-config.token';
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { MngModuleConfig } from '../../config/models';
3
+ export declare const MNG_MODULE_CONFIG_IT: InjectionToken<MngModuleConfig>;
File without changes
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  import { FormlyFieldConfig } from '@ngx-formly/core';
2
- import { EditorDescriptor, AFieldDescriptor, FieldTabGroupDescriptor, FieldGroupDescriptor } from '../models/descriptors';
2
+ import { EditorDescriptor, AFieldDescriptor, FieldTabGroupDescriptor, FieldGroupDescriptor } from '../descriptors';
3
3
  export declare class EditorFormlyUtil {
4
4
  static createFormlyConfigFromDescriptor(descriptor: EditorDescriptor<any>): FormlyFieldConfig[];
5
5
  static createFormlyTabType(tabGroups: FieldTabGroupDescriptor<any>[]): FormlyFieldConfig[];
@@ -1,6 +1,6 @@
1
1
  import { TranslateService } from '@ngx-translate/core';
2
2
  import { Observable } from 'rxjs';
3
- import { ActionDescriptor, ModelDescriptor } from '../models/descriptors';
3
+ import { ActionDescriptor, ModelDescriptor } from '../descriptors';
4
4
  export declare class I18nUtil {
5
5
  static instantModelTranslation(translate: TranslateService, model: ModelDescriptor<any>, keyPath: string, customKey?: string, item?: any, fallbackKey?: string, i18nParams?: any): string | null;
6
6
  static instantActionTranslation(translate: TranslateService, action: ActionDescriptor<any>, keyPath: string, customKey?: string, item?: any, fallbackKey?: string, functionNameKey?: string, i18nParams?: any): string | null;
@@ -1,4 +1,5 @@
1
1
  export * from './editor-formly.util';
2
2
  export * from './i18n.util';
3
3
  export * from './model.util';
4
+ export * from './toast.util';
4
5
  export * from './type.util';
@@ -1,7 +1,7 @@
1
- import { ClassType } from '../models/types';
2
- import { ILookup } from '../models/interfaces';
1
+ import { ClassType } from '../types';
2
+ import { ILookupDescriptor } from '../descriptors';
3
3
  export declare class ModelUtil {
4
4
  static findIdAttribute<T>(classType: ClassType<T>): string | null;
5
5
  static findTitleAttribute<T>(classType: ClassType<T>): string | null;
6
- static trySetLookupItemsProperties<T>(lookup: ILookup<T>): void;
6
+ static trySetLookupItemsProperties<T>(lookup: ILookupDescriptor<T>): void;
7
7
  }
@@ -1,6 +1,6 @@
1
- import { TranslateService } from "@ngx-translate/core";
2
- import { ActionDescriptor, TableDescriptor } from "../models/descriptors";
3
- import { TableviewComponentService } from "../components/tableview/tableview.component.service";
1
+ import { TranslateService } from '@ngx-translate/core';
2
+ import { ActionDescriptor, TableDescriptor } from '../descriptors';
3
+ import { TableviewComponentService } from '../components/tableview/services';
4
4
  export declare class ToastUtil {
5
5
  static tableNotificationError(translationService: TranslateService, table: TableDescriptor<any>, error: any, tableview?: TableviewComponentService<any, any>): void;
6
6
  static actionNotificationSuccess(translationService: TranslateService, action: ActionDescriptor<any>, functionName: string, customTitleKey?: string, customMessageKey?: string, tableview?: TableviewComponentService<any, any>, item?: any): void;
@@ -1,5 +1,5 @@
1
1
  import 'reflect-metadata';
2
- import { ClassType } from '../models/types';
2
+ import { ClassType } from '../types';
3
3
  export declare class TypeUtil {
4
4
  static defineReflectTypeName(targetType: ClassType<any>, typeName?: string): void;
5
5
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediusinc/mng-commons",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "peerDependencies": {
5
5
  "@angular/core": "^13.1.0",
6
6
  "@angular/common": "^13.1.0",
package/public-api.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './lib/mng-commons.module';
2
2
  export * from './lib/api/services';
3
+ export * from './lib/components/layout/services';
4
+ export * from './lib/components/tableview/services';
3
5
  export * from './lib/services';
4
6
  export * from './lib/services/providers';
5
7
  export * from './lib/api/utils';
@@ -13,12 +15,11 @@ export * from './lib/components/tableview';
13
15
  export * from './lib/directives';
14
16
  export * from './lib/pipes';
15
17
  export * from './lib/api/models';
16
- export * from './lib/models/config';
17
- export * from './lib/models/descriptors';
18
- export * from './lib/models/events';
19
- export * from './lib/models/interfaces';
20
- export * from './lib/models/providers';
21
- export * from './lib/models/router';
22
- export * from './lib/models/types';
23
- export * from './lib/models/user';
24
- export * from './lib/models/validators';
18
+ export * from './lib/components/action/models';
19
+ export * from './lib/components/form/models';
20
+ export * from './lib/config/models';
21
+ export * from './lib/config';
22
+ export * from './lib/data-providers';
23
+ export * from './lib/descriptors';
24
+ export * from './lib/models';
25
+ export * from './lib/types';
@@ -142,15 +142,15 @@
142
142
  }
143
143
 
144
144
  &:nth-child(1) {
145
- background-image: linear-gradient(180deg, rgba(28, 28, 44, 0) 33.85%, rgba(27, 27, 44, 0.8) 80.77%), url("./~/assets/images/mng/pages/help/blog1.jpg");
145
+ background-image: linear-gradient(180deg, rgba(28, 28, 44, 0) 33.85%, rgba(27, 27, 44, 0.8) 80.77%), url("#{$baseHref}assets/images/mng/pages/help/blog1.jpg");
146
146
  }
147
147
 
148
148
  &:nth-child(2) {
149
- background-image: linear-gradient(186.73deg, rgba(28, 28, 44, 0) 46.89%, rgba(27, 27, 44, 0.8) 95.1%), url("./~/assets/images/mng/pages/help/blog2.jpg");
149
+ background-image: linear-gradient(186.73deg, rgba(28, 28, 44, 0) 46.89%, rgba(27, 27, 44, 0.8) 95.1%), url("#{$baseHref}assets/images/mng/pages/help/blog2.jpg");
150
150
  }
151
151
 
152
152
  &:nth-child(3) {
153
- background-image: linear-gradient(180deg, rgba(28, 28, 44, 0) 33.85%, rgba(27, 27, 44, 0.8) 80.77%), url("./~/assets/images/mng/pages/help/blog3.jpg");
153
+ background-image: linear-gradient(180deg, rgba(28, 28, 44, 0) 33.85%, rgba(27, 27, 44, 0.8) 80.77%), url("#{$baseHref}assets/images/mng/pages/help/blog3.jpg");
154
154
  }
155
155
  }
156
156
  }
@@ -10,7 +10,7 @@
10
10
  #header {
11
11
  width: 100%;
12
12
  min-height: 1000px;
13
- background: url("./~/assets/images/mng/landing/landing-header-2x.jpg") top left no-repeat;
13
+ background: url("#{$baseHref}assets/images/mng/landing/landing-header-2x.jpg") top left no-repeat;
14
14
  background-size: cover;
15
15
  padding: 2.5rem 3rem;
16
16
 
@@ -8,3 +8,5 @@ $letterSpacing:normal !default;
8
8
  $borderRadius:8px !default;
9
9
  $tabletBreakpoint:991px !default;
10
10
  $phoneBreakpoint:576px !default;
11
+
12
+ $baseHref: './~/' !default;
@@ -1,7 +1,7 @@
1
1
  @import './_common';
2
2
 
3
3
  $bodyBg: linear-gradient(180deg, #2E323F 0%, #0A061A 100%) !default;
4
- $bodyImage: url("./~/assets/images/mng/effect-ondark.png") !default;
4
+ $bodyImage: url("#{$baseHref}assets/images/mng/effect-ondark.png") !default;
5
5
  $textColor: #ffffff !default;
6
6
  $textSecondaryColor: #C8CCD8 !default;
7
7
  $textThirdColor: #868C9B !default;
@@ -42,6 +42,7 @@ $submenuItemTextColor: $textColor !default;
42
42
  $submenuItemHoverTextColor: $textColor !default;
43
43
  $submenuItemHoverBg: rgba(255, 255, 255, 0.05) !default;
44
44
  $activeSubmenuItemTextColor: $primaryColor !default;
45
+ $submenuHeaderFontWeight: 500 !default;
45
46
 
46
47
  $overlayMenuActiveBg: rgba(255, 255, 255, 0.05) !default;
47
48
  $overlayMenuItemActiveBg: $primaryColor !default;
@@ -66,5 +67,5 @@ $progressBarBg: rgba(255, 255, 255, 0.1) !default;
66
67
 
67
68
  //pages
68
69
  $helpHeaderBg: linear-gradient(179.2deg, rgba(15, 139, 253, 0.2) 0.69%, rgba(15, 139, 253, 0) 108.44%), rgba(255, 255, 255, 0.05) !default;
69
- $helpHeaderImage: url("./~/assets/images/mng/effect-ondark.svg") !default;
70
- $exceptionPagesImage: url("./~/assets/images/mng/pages/exception-ondark.png") !default;
70
+ $helpHeaderImage: url("#{$baseHref}assets/images/mng/effect-ondark.svg") !default;
71
+ $exceptionPagesImage: url("#{$baseHref}assets/images/mng/pages/exception-ondark.png") !default;
@@ -1,7 +1,7 @@
1
1
  @import './_common';
2
2
 
3
3
  $bodyBg: linear-gradient(180deg, #F6F9FC 0%, #ECECF9 100%) !default;
4
- $bodyImage: url("./~/assets/images/mng/effect-onlight.png") !default;
4
+ $bodyImage: url("#{$baseHref}assets/images/mng/effect-onlight.png") !default;
5
5
  $textColor:#44486D !default;
6
6
  $textSecondaryColor:#676B89 !default;
7
7
  $textThirdColor: #8A8EA6 !default;
@@ -42,6 +42,7 @@ $submenuItemTextColor: $textColor !default;
42
42
  $submenuItemHoverTextColor: $textColor !default;
43
43
  $submenuItemHoverBg: rgba(68, 72, 109, 0.07) !default;
44
44
  $activeSubmenuItemTextColor: $primaryColor !default;
45
+ $submenuHeaderFontWeight: 500 !default;
45
46
 
46
47
  $overlayMenuActiveBg: rgba(68, 72, 109, 0.07) !default;
47
48
  $overlayMenuItemActiveBg: $primaryColor !default;
@@ -66,5 +67,5 @@ $progressBarBg: rgba(68, 72, 109, 0.12) !default;
66
67
 
67
68
  //pages
68
69
  $helpHeaderBg: linear-gradient(179.2deg, rgba(15, 139, 253, 0.15) 0.69%, rgba(15, 139, 253, 0) 108.44%), rgba(255, 255, 255, 0.9) !default;
69
- $helpHeaderImage: url("./~/assets/images/mng/effect-onlight.svg") !default;
70
- $exceptionPagesImage: url("./~/assets/images/mng/pages/exception-onlight.png") !default;
70
+ $helpHeaderImage: url("#{$baseHref}assets/images/mng/effect-onlight.svg") !default;
71
+ $exceptionPagesImage: url("#{$baseHref}assets/images/mng/pages/exception-onlight.png") !default;
@@ -1,2 +1,2 @@
1
- $primaryColor: #397289;
2
- $primaryTextColor: #ffffff;
1
+ $primaryColor: #397289 !default;
2
+ $primaryTextColor: #ffffff !default;
@@ -1,10 +1,5 @@
1
1
  /* You can add global styles to this file, and also import other style files */
2
2
 
3
- // libs
4
- //@import "~node_modules/primeng/resources/primeng.min.css";
5
- //@import "~node_modules/primeflex/primeflex.scss";
6
- //@import "~node_modules/primeicons/primeicons.css";
7
-
8
3
  // theme and layout
9
4
  @import "layout/default/layout-dark.scss";
10
5
  @import "theme/default/theme-dark.scss";
@@ -1,13 +1,5 @@
1
1
  /* You can add global styles to this file, and also import other style files */
2
2
 
3
- // libs
4
- //@import "~node_modules/primeng/resources/primeng.min.css";
5
- //@import "~node_modules/primeflex/primeflex.scss";
6
- //@import "~node_modules/primeicons/primeicons.css";
7
-
8
3
  // theme and layout
9
4
  @import "layout/default/layout-light.scss";
10
5
  @import "theme/default/theme-light.scss";
11
- // dark
12
- //@import "layout/default/layout-dark.scss";
13
- //@import "theme/default/theme-dark.scss";
@@ -1,8 +1,8 @@
1
- $primaryColor: #397289;
1
+ $primaryColor: #397289 !default;
2
2
  $primaryLightColor: scale-color($primaryColor, $lightness: 60%) !default;
3
3
  $primaryDarkColor: scale-color($primaryColor, $lightness: -10%) !default;
4
4
  $primaryDarkerColor: scale-color($primaryColor, $lightness: -20%) !default;
5
- $primaryTextColor: #ffffff;
5
+ $primaryTextColor: #ffffff !default;;
6
6
 
7
- $highlightBg: $primaryColor;
8
- $highlightTextColor: $primaryTextColor;
7
+ $highlightBg: $primaryColor !default;
8
+ $highlightTextColor: $primaryTextColor !default;
package/.pnpm-debug.log DELETED
@@ -1,15 +0,0 @@
1
- {
2
- "0 debug pnpm:scope": {
3
- "selected": 1
4
- },
5
- "1 error pnpm": {
6
- "code": "ERR_PNPM_GIT_NOT_UNCLEAN",
7
- "hint": "If you want to disable Git checks on publish, set the \"git-checks\" setting to \"false\", or run again with \"--no-git-checks\".",
8
- "err": {
9
- "name": "pnpm",
10
- "message": "Unclean working tree. Commit or stash changes first.",
11
- "code": "ERR_PNPM_GIT_NOT_UNCLEAN",
12
- "stack": "pnpm: Unclean working tree. Commit or stash changes first.\n at Object.handler [as publish] (C:\\Users\\Luka\\AppData\\Roaming\\npm\\pnpm-global\\3\\node_modules\\.pnpm\\registry.npmjs.org\\pnpm\\6.26.1\\node_modules\\pnpm\\dist\\pnpm.cjs:175203:17)\n at processTicksAndRejections (internal/process/task_queues.js:93:5)\n at async C:\\Users\\Luka\\AppData\\Roaming\\npm\\pnpm-global\\3\\node_modules\\.pnpm\\registry.npmjs.org\\pnpm\\6.26.1\\node_modules\\pnpm\\dist\\pnpm.cjs:180175:21\n at async run (C:\\Users\\Luka\\AppData\\Roaming\\npm\\pnpm-global\\3\\node_modules\\.pnpm\\registry.npmjs.org\\pnpm\\6.26.1\\node_modules\\pnpm\\dist\\pnpm.cjs:180149:34)\n at async runPnpm (C:\\Users\\Luka\\AppData\\Roaming\\npm\\pnpm-global\\3\\node_modules\\.pnpm\\registry.npmjs.org\\pnpm\\6.26.1\\node_modules\\pnpm\\dist\\pnpm.cjs:180360:5)\n at async C:\\Users\\Luka\\AppData\\Roaming\\npm\\pnpm-global\\3\\node_modules\\.pnpm\\registry.npmjs.org\\pnpm\\6.26.1\\node_modules\\pnpm\\dist\\pnpm.cjs:180352:7"
13
- }
14
- }
15
- }
@@ -1,114 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
2
- import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { Subject } from 'rxjs';
4
- import { finalize, first } from 'rxjs/operators';
5
- import { MediusFilterMatchType, MediusQueryParamBuilder } from '../../../api/models';
6
- import { AutoComplete } from 'primeng/autocomplete';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "primeng/autocomplete";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@ngx-translate/core";
12
- export const MNG_AUTOCOMPLETE_VALUE_ACCESSOR = {
13
- provide: NG_VALUE_ACCESSOR,
14
- useExisting: forwardRef(() => MngAutocompleteComponent),
15
- multi: true
16
- };
17
- export class MngAutocompleteComponent {
18
- constructor(injector) {
19
- this.injector = injector;
20
- this.multiselect = false;
21
- this.className = null;
22
- this.dropdownClassName = null;
23
- this.onChange = new EventEmitter();
24
- this.suggestionsSubject = new Subject();
25
- this.searchSubscription = null;
26
- this.dataProviderService = null;
27
- this.onChangeFn = () => { };
28
- this.onTouchedFn = () => { };
29
- this.autocompleteFormControl = new FormControl();
30
- this.suggestions$ = this.suggestionsSubject.asObservable();
31
- this.isLoading = false;
32
- }
33
- ngOnInit() {
34
- if (this.dataProvider) {
35
- this.dataProviderService = this.dataProvider.serviceType
36
- ? this.injector.get(this.dataProvider.serviceType)
37
- : null;
38
- }
39
- else {
40
- console.warn(`Data provider should be provided for MngAutocompleteComponent.`);
41
- }
42
- }
43
- onSearch(event) {
44
- if (this.searchSubscription) {
45
- // try to cancel existing HTTP request subscription
46
- this.searchSubscription.unsubscribe();
47
- }
48
- if (this.dataProvider) {
49
- this.isLoading = true;
50
- const queryParamBuilder = MediusQueryParamBuilder.create();
51
- if (this.itemsLabelProperty) {
52
- queryParamBuilder.withSort(this.itemsLabelProperty);
53
- }
54
- if (event.query && event.query.length > 0 && this.itemsLabelProperty) {
55
- queryParamBuilder.withFilter(this.itemsLabelProperty, event.query, undefined, MediusFilterMatchType.StartsWith);
56
- }
57
- this.searchSubscription = this.dataProvider.lookup(queryParamBuilder.build(), this.dataProviderService, event.query)
58
- .pipe(first(), finalize(() => this.isLoading = false))
59
- .subscribe((res) => {
60
- this.suggestionsSubject.next(res);
61
- });
62
- }
63
- }
64
- onSelect(value) {
65
- this.onChangeFn(value);
66
- this.onChange.next(value);
67
- }
68
- registerOnChange(fn) {
69
- this.onChangeFn = fn;
70
- }
71
- registerOnTouched(fn) {
72
- this.onTouchedFn = fn;
73
- }
74
- setDisabledState(isDisabled) {
75
- if (isDisabled) {
76
- this.autocompleteFormControl.disable();
77
- }
78
- else {
79
- this.autocompleteFormControl.enable();
80
- }
81
- }
82
- writeValue(obj) {
83
- this.autocompleteFormControl.setValue(obj, { emitEvent: false });
84
- if (this.primeAutocomplete) {
85
- this.primeAutocomplete.writeValue(obj);
86
- }
87
- }
88
- }
89
- MngAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngAutocompleteComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
90
- MngAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: { dataProvider: "dataProvider", dataKeyProperty: "dataKeyProperty", itemsLabelProperty: "itemsLabelProperty", multiselect: "multiselect", placeholder: "placeholder", className: "className", dropdownClassName: "dropdownClassName" }, outputs: { onChange: "onChange" }, providers: [MNG_AUTOCOMPLETE_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeAutocomplete", first: true, predicate: AutoComplete, descendants: true }], ngImport: i0, template: "<p-autoComplete [formControl]=\"autocompleteFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dropdown]=\"true\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [field]=\"$any(itemsLabelProperty)\"\n [suggestions]=\"(suggestions$ | async) ?? []\"\n [multiple]=\"multiselect\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutcomplete.noMatches' | translate\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n", components: [{ type: i1.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "virtualScroll", "itemSize", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "field", "scrollHeight", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "suggestions"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe, "translate": i4.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngAutocompleteComponent, decorators: [{
92
- type: Component,
93
- args: [{ selector: 'mng-autocomplete', providers: [MNG_AUTOCOMPLETE_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-autoComplete [formControl]=\"autocompleteFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dropdown]=\"true\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [field]=\"$any(itemsLabelProperty)\"\n [suggestions]=\"(suggestions$ | async) ?? []\"\n [multiple]=\"multiselect\"\n [showEmptyMessage]=\"true\"\n [emptyMessage]=\"'mngAutcomplete.noMatches' | translate\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (completeMethod)=\"onSearch($event)\"\n (onSelect)=\"onSelect($event)\"\n appendTo=\"body\"\n dropdownMode=\"current\">\n</p-autoComplete>\n" }]
94
- }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { dataProvider: [{
95
- type: Input
96
- }], dataKeyProperty: [{
97
- type: Input
98
- }], itemsLabelProperty: [{
99
- type: Input
100
- }], multiselect: [{
101
- type: Input
102
- }], placeholder: [{
103
- type: Input
104
- }], className: [{
105
- type: Input
106
- }], dropdownClassName: [{
107
- type: Input
108
- }], onChange: [{
109
- type: Output
110
- }], primeAutocomplete: [{
111
- type: ViewChild,
112
- args: [AutoComplete]
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5nLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9hdXRvY29tcGxldGUvbW5nLWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9hdXRvY29tcGxldGUvbW5nLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBb0IsVUFBVSxFQUFZLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pKLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFhLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRW5GLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBRWxELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFxQjtJQUM3RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7SUFDdkQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBUUYsTUFBTSxPQUFPLHdCQUF3QjtJQXdCakMsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQW5CN0Is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QUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLFVBQVUsRUFBRTtZQUNaLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUMxQzthQUFNO1lBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQzs7cUhBekZRLHdCQUF3Qjt5R0FBeEIsd0JBQXdCLDhUQUh0QixDQUFDLCtCQUErQixDQUFDLDZFQWVqQyxZQUFZLGdEQ2xDM0IsZ3lCQWdCQTsyRkRNYSx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0ksa0JBQWtCLGFBRWpCLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07K0ZBSXRDLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRTBCLGlCQUFpQjtzQkFBakQsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEV4aXN0aW5nUHJvdmlkZXIsIGZvcndhcmRSZWYsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCAgRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmluYWxpemUsIGZpcnN0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TWVkaXVzRmlsdGVyTWF0Y2hUeXBlLCBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0lMb29rdXBEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL21vZGVscy9wcm92aWRlcnMnO1xuaW1wb3J0IHtBdXRvQ29tcGxldGV9IGZyb20gJ3ByaW1lbmcvYXV0b2NvbXBsZXRlJztcblxuZXhwb3J0IGNvbnN0IE1OR19BVVRPQ09NUExFVEVfVkFMVUVfQUNDRVNTT1I6IEV4aXN0aW5nUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTW5nQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctYXV0b2NvbXBsZXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW5nLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbTU5HX0FVVE9DT01QTEVURV9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBASW5wdXQoKSBkYXRhUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPGFueSwgYW55PjtcbiAgICBASW5wdXQoKSBkYXRhS2V5UHJvcGVydHk/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXRlbXNMYWJlbFByb3BlcnR5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG11bHRpc2VsZWN0OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmd8bnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZHJvcGRvd25DbGFzc05hbWU6IHN0cmluZ3xudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlKSBwcml2YXRlIHByaW1lQXV0b2NvbXBsZXRlPzogQXV0b0NvbXBsZXRlO1xuXG4gICAgcHJpdmF0ZSBzdWdnZXN0aW9uc1N1YmplY3Q6IFN1YmplY3Q8QXJyYXk8YW55Pj4gPSBuZXcgU3ViamVjdDxBcnJheTxhbnk+PigpO1xuICAgIHByaXZhdGUgc2VhcmNoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb258bnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBkYXRhUHJvdmlkZXJTZXJ2aWNlOiBhbnkgPSBudWxsO1xuICAgIHByaXZhdGUgb25DaGFuZ2VGbjogYW55ID0gKCkgPT4geyB9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkRm46IGFueSA9ICgpID0+IHsgfTtcblxuICAgIHB1YmxpYyBhdXRvY29tcGxldGVGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPEFycmF5PGFueT4+ID0gdGhpcy5zdWdnZXN0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZVxuICAgICAgICAgICAgICAgID8gdGhpcy5pbmplY3Rvci5nZXQ8YW55Pih0aGlzLmRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSlcbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYERhdGEgcHJvdmlkZXIgc2hvdWxkIGJlIHByb3ZpZGVkIGZvciBNbmdBdXRvY29tcGxldGVDb21wb25lbnQuYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlYXJjaChldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgLy8gdHJ5IHRvIGNhbmNlbCBleGlzdGluZyBIVFRQIHJlcXVlc3Qgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtQnVpbGRlciA9IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXNMYWJlbFByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aFNvcnQodGhpcy5pdGVtc0xhYmVsUHJvcGVydHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV2ZW50LnF1ZXJ5ICYmIGV2ZW50LnF1ZXJ5Lmxlbmd0aCA+IDAgJiYgdGhpcy5pdGVtc0xhYmVsUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtQnVpbGRlci53aXRoRmlsdGVyKHRoaXMuaXRlbXNMYWJlbFByb3BlcnR5LCBldmVudC5xdWVyeSwgdW5kZWZpbmVkLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuU3RhcnRzV2l0aClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhUHJvdmlkZXIubG9va3VwKHF1ZXJ5UGFyYW1CdWlsZGVyLmJ1aWxkKCksIHRoaXMuZGF0YVByb3ZpZGVyU2VydmljZSwgZXZlbnQucXVlcnkpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3VnZ2VzdGlvbnNTdWJqZWN0Lm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUZuID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZEZuID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlRm9ybUNvbnRyb2wuc2V0VmFsdWUob2JqLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIGlmICh0aGlzLnByaW1lQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLnByaW1lQXV0b2NvbXBsZXRlLndyaXRlVmFsdWUob2JqKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxwLWF1dG9Db21wbGV0ZSBbZm9ybUNvbnRyb2xdPVwiYXV0b2NvbXBsZXRlRm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIkYW55KHBsYWNlaG9sZGVyKVwiXG4gICAgICAgICAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkYXRhS2V5XT1cIiRhbnkoZGF0YUtleVByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgW2ZpZWxkXT1cIiRhbnkoaXRlbXNMYWJlbFByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgW3N1Z2dlc3Rpb25zXT1cIihzdWdnZXN0aW9ucyQgfCBhc3luYykgPz8gW11cIlxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICAgICAgW3Nob3dFbXB0eU1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2VtcHR5TWVzc2FnZV09XCInbW5nQXV0Y29tcGxldGUubm9NYXRjaGVzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiJGFueShjbGFzc05hbWUpXCJcbiAgICAgICAgICAgICAgICBbcGFuZWxTdHlsZUNsYXNzXT1cIiRhbnkoZHJvcGRvd25DbGFzc05hbWUpXCJcbiAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgZHJvcGRvd25Nb2RlPVwiY3VycmVudFwiPlxuPC9wLWF1dG9Db21wbGV0ZT5cbiJdfQ==
@@ -1,113 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core';
2
- import { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { ReplaySubject } from 'rxjs';
4
- import { first } from 'rxjs/operators';
5
- import { Dropdown } from 'primeng/dropdown';
6
- import { MediusQueryParamBuilder } from '../../../api/models';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "primeng/dropdown";
9
- import * as i2 from "primeng/multiselect";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@angular/forms";
12
- export const MNG_DROPDOWN_VALUE_ACCESSOR = {
13
- provide: NG_VALUE_ACCESSOR,
14
- useExisting: forwardRef(() => MngDropdownComponent),
15
- multi: true
16
- };
17
- export class MngDropdownComponent {
18
- constructor(injector) {
19
- this.injector = injector;
20
- this.multiselect = false;
21
- this.showClear = true;
22
- this.className = null;
23
- this.dropdownClassName = null;
24
- this.onChange = new EventEmitter();
25
- this.itemsSubject = new ReplaySubject(1);
26
- this.dataProviderService = null;
27
- this.onChangeFn = () => { };
28
- this.onTouchedFn = () => { };
29
- this.dropdownFormControl = new FormControl();
30
- this.items$ = this.itemsSubject.asObservable();
31
- }
32
- ngOnInit() {
33
- this.dropdownFormControl.valueChanges
34
- .subscribe(v => {
35
- this.onChangeFn(v);
36
- this.onChange.next(v);
37
- });
38
- if (this.dataProvider) {
39
- this.dataProviderService = this.dataProvider.serviceType
40
- ? this.injector.get(this.dataProvider.serviceType)
41
- : null;
42
- const queryParamBuilder = MediusQueryParamBuilder.create();
43
- this.dataProvider.lookup(queryParamBuilder.build(), this.dataProviderService)
44
- .pipe(first())
45
- .subscribe(res => {
46
- this.itemsSubject.next(res);
47
- });
48
- if (!this.dropdownFormControl?.value) {
49
- this.items$.pipe(first()).subscribe(res => {
50
- // TODO: check if really only way
51
- if (res.length === 1) {
52
- const value = this.itemsValueProperty ? res[0][this.itemsValueProperty] : res[0];
53
- this.dropdownFormControl?.patchValue(value);
54
- console.log('patched dropdown form value with', value);
55
- }
56
- });
57
- }
58
- }
59
- else {
60
- console.warn(`Data provider should be provided for MngDropdownComponent.`);
61
- }
62
- }
63
- registerOnChange(fn) {
64
- this.onChangeFn = fn;
65
- }
66
- registerOnTouched(fn) {
67
- this.onTouchedFn = fn;
68
- }
69
- setDisabledState(isDisabled) {
70
- if (isDisabled) {
71
- this.dropdownFormControl.disable();
72
- }
73
- else {
74
- this.dropdownFormControl.enable();
75
- }
76
- }
77
- writeValue(obj) {
78
- this.dropdownFormControl.setValue(obj, { emitEvent: false });
79
- if (this.primeDropdown) {
80
- this.primeDropdown.writeValue(obj);
81
- }
82
- }
83
- }
84
- MngDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngDropdownComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
85
- MngDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: MngDropdownComponent, selector: "mng-dropdown", inputs: { dataProvider: "dataProvider", dataKeyProperty: "dataKeyProperty", itemsLabelProperty: "itemsLabelProperty", itemsValueProperty: "itemsValueProperty", multiselect: "multiselect", placeholder: "placeholder", showClear: "showClear", className: "className", dropdownClassName: "dropdownClassName" }, outputs: { onChange: "onChange" }, providers: [MNG_DROPDOWN_VALUE_ACCESSOR], viewQueries: [{ propertyName: "primeDropdown", first: true, predicate: Dropdown, descendants: true }], ngImport: i0, template: "<p-dropdown *ngIf=\"!multiselect; else pMultiselect\"\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"(items$ | async) ?? []\"\n [showClear]=\"showClear\"\n [autoDisplayFirst]=\"false\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (onChange)=\"onChange.emit($event.value)\"\n appendTo=\"body\">\n</p-dropdown>\n<ng-template #pMultiselect>\n <p-multiSelect display=\"chip\"\n [formControl]=\"dropdownFormControl\"\n [defaultLabel]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"(items$ | async) ?? []\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n [filter]=\"false\"\n (onChange)=\"onChange.emit($event.value)\"\n appendTo=\"body\">\n </p-multiSelect>\n</ng-template>\n", components: [{ type: i1.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }, { type: i2.MultiSelect, selector: "p-multiSelect", inputs: ["style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "autoZIndex", "baseZIndex", "filterBy", "virtualScroll", "itemSize", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "scrollHeight", "defaultLabel", "placeholder", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onPanelShow", "onPanelHide"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MngDropdownComponent, decorators: [{
87
- type: Component,
88
- args: [{ selector: 'mng-dropdown', providers: [MNG_DROPDOWN_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-dropdown *ngIf=\"!multiselect; else pMultiselect\"\n [formControl]=\"dropdownFormControl\"\n [placeholder]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"(items$ | async) ?? []\"\n [showClear]=\"showClear\"\n [autoDisplayFirst]=\"false\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n (onChange)=\"onChange.emit($event.value)\"\n appendTo=\"body\">\n</p-dropdown>\n<ng-template #pMultiselect>\n <p-multiSelect display=\"chip\"\n [formControl]=\"dropdownFormControl\"\n [defaultLabel]=\"$any(placeholder)\"\n [dataKey]=\"$any(dataKeyProperty)\"\n [optionLabel]=\"$any(itemsLabelProperty)\"\n [optionValue]=\"$any(itemsValueProperty)\"\n [options]=\"(items$ | async) ?? []\"\n [styleClass]=\"$any(className)\"\n [panelStyleClass]=\"$any(dropdownClassName)\"\n [filter]=\"false\"\n (onChange)=\"onChange.emit($event.value)\"\n appendTo=\"body\">\n </p-multiSelect>\n</ng-template>\n" }]
89
- }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { dataProvider: [{
90
- type: Input
91
- }], dataKeyProperty: [{
92
- type: Input
93
- }], itemsLabelProperty: [{
94
- type: Input
95
- }], itemsValueProperty: [{
96
- type: Input
97
- }], multiselect: [{
98
- type: Input
99
- }], placeholder: [{
100
- type: Input
101
- }], showClear: [{
102
- type: Input
103
- }], className: [{
104
- type: Input
105
- }], dropdownClassName: [{
106
- type: Input
107
- }], onChange: [{
108
- type: Output
109
- }], primeDropdown: [{
110
- type: ViewChild,
111
- args: [Dropdown]
112
- }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW5nLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21uZy1jb21tb25zL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Ryb3Bkb3duL21uZy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbmctY29tbW9ucy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9kcm9wZG93bi9tbmctZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQW9CLFVBQVUsRUFBWSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6SixPQUFPLEVBQXVCLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBGLE9BQU8sRUFBYSxhQUFhLEVBQVUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRTVELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFxQjtJQUN6RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7SUFDbkQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBUUYsTUFBTSxPQUFPLG9CQUFvQjtJQXdCN0IsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCN0IsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFN0IsY0FBUyxHQUFHLElBQUks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LEVBQUUsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQzs7aUhBckZRLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDRYQUhsQixDQUFDLDJCQUEyQixDQUFDLHlFQWlCN0IsUUFBUSxnRENwQ3ZCLCsxQ0E2QkE7MkZEUGEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNJLGNBQWMsYUFFYixDQUFDLDJCQUEyQixDQUFDLG1CQUN2Qix1QkFBdUIsQ0FBQyxNQUFNOytGQUl0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUVzQixhQUFhO3NCQUF6QyxTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgRXhpc3RpbmdQcm92aWRlciwgZm9yd2FyZFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaXJzdH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtEcm9wZG93bn0gZnJvbSAncHJpbWVuZy9kcm9wZG93bic7XG5cbmltcG9ydCB7SUxvb2t1cERhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Byb3ZpZGVycyc7XG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyfSBmcm9tICcuLi8uLi8uLi9hcGkvbW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IE1OR19EUk9QRE9XTl9WQUxVRV9BQ0NFU1NPUjogRXhpc3RpbmdQcm92aWRlciA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNbmdEcm9wZG93bkNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW5nLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtNTkdfRFJPUERPV05fVkFMVUVfQUNDRVNTT1JdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Ryb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICBASW5wdXQoKSBkYXRhUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPGFueSwgYW55PjtcbiAgICBASW5wdXQoKSBkYXRhS2V5UHJvcGVydHk/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgaXRlbXNMYWJlbFByb3BlcnR5Pzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGl0ZW1zVmFsdWVQcm9wZXJ0eT86IHN0cmluZztcbiAgICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHNob3dDbGVhciA9IHRydWU7XG4gICAgQElucHV0KCkgY2xhc3NOYW1lOiBzdHJpbmd8bnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgZHJvcGRvd25DbGFzc05hbWU6IHN0cmluZ3xudWxsID0gbnVsbDtcblxuICAgIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoRHJvcGRvd24pIHByaXZhdGUgcHJpbWVEcm9wZG93bj86IERyb3Bkb3duO1xuXG4gICAgcHJpdmF0ZSBpdGVtc1N1YmplY3Q6IFN1YmplY3Q8QXJyYXk8YW55Pj4gPSBuZXcgUmVwbGF5U3ViamVjdDxBcnJheTxhbnk+PigxKTtcbiAgICBwcml2YXRlIGRhdGFQcm92aWRlclNlcnZpY2U6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBvbkNoYW5nZUZuOiBhbnkgPSAoKSA9PiB7IH07XG4gICAgcHJpdmF0ZSBvblRvdWNoZWRGbjogYW55ID0gKCkgPT4geyB9O1xuXG4gICAgcHVibGljIGRyb3Bkb3duRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gICAgcHVibGljIGl0ZW1zJDogT2JzZXJ2YWJsZTxBcnJheTxhbnk+PiA9IHRoaXMuaXRlbXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgICAgICB0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbih2KTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLm5leHQodik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyU2VydmljZSA9IHRoaXMuZGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlXG4gICAgICAgICAgICAgICAgPyB0aGlzLmluamVjdG9yLmdldDxhbnk+KHRoaXMuZGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlKVxuICAgICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgY29uc3QgcXVlcnlQYXJhbUJ1aWxkZXIgPSBNZWRpdXNRdWVyeVBhcmFtQnVpbGRlci5jcmVhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YVByb3ZpZGVyLmxvb2t1cChxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpLCB0aGlzLmRhdGFQcm92aWRlclNlcnZpY2UpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1zU3ViamVjdC5uZXh0KHJlcyk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kcm9wZG93bkZvcm1Db250cm9sPy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGNoZWNrIGlmIHJlYWxseSBvbmx5IHdheVxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLml0ZW1zVmFsdWVQcm9wZXJ0eSA/IHJlc1swXVt0aGlzLml0ZW1zVmFsdWVQcm9wZXJ0eV0gOiByZXNbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2w/LnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3BhdGNoZWQgZHJvcGRvd24gZm9ybSB2YWx1ZSB3aXRoJywgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYERhdGEgcHJvdmlkZXIgc2hvdWxkIGJlIHByb3ZpZGVkIGZvciBNbmdEcm9wZG93bkNvbXBvbmVudC5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Gb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJvcGRvd25Gb3JtQ29udHJvbC5zZXRWYWx1ZShvYmosIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgaWYgKHRoaXMucHJpbWVEcm9wZG93bikge1xuICAgICAgICAgICAgdGhpcy5wcmltZURyb3Bkb3duLndyaXRlVmFsdWUob2JqKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxwLWRyb3Bkb3duICpuZ0lmPVwiIW11bHRpc2VsZWN0OyBlbHNlIHBNdWx0aXNlbGVjdFwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZHJvcGRvd25Gb3JtQ29udHJvbFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJGFueShwbGFjZWhvbGRlcilcIlxuICAgICAgICAgICAgW2RhdGFLZXldPVwiJGFueShkYXRhS2V5UHJvcGVydHkpXCJcbiAgICAgICAgICAgIFtvcHRpb25MYWJlbF09XCIkYW55KGl0ZW1zTGFiZWxQcm9wZXJ0eSlcIlxuICAgICAgICAgICAgW29wdGlvblZhbHVlXT1cIiRhbnkoaXRlbXNWYWx1ZVByb3BlcnR5KVwiXG4gICAgICAgICAgICBbb3B0aW9uc109XCIoaXRlbXMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwic2hvd0NsZWFyXCJcbiAgICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCJcbiAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cIiRhbnkoY2xhc3NOYW1lKVwiXG4gICAgICAgICAgICBbcGFuZWxTdHlsZUNsYXNzXT1cIiRhbnkoZHJvcGRvd25DbGFzc05hbWUpXCJcbiAgICAgICAgICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZS5lbWl0KCRldmVudC52YWx1ZSlcIlxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCI+XG48L3AtZHJvcGRvd24+XG48bmctdGVtcGxhdGUgI3BNdWx0aXNlbGVjdD5cbiAgICA8cC1tdWx0aVNlbGVjdCBkaXNwbGF5PVwiY2hpcFwiXG4gICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImRyb3Bkb3duRm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0TGFiZWxdPVwiJGFueShwbGFjZWhvbGRlcilcIlxuICAgICAgICAgICAgICAgICAgIFtkYXRhS2V5XT1cIiRhbnkoZGF0YUtleVByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgICAgW29wdGlvbkxhYmVsXT1cIiRhbnkoaXRlbXNMYWJlbFByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgICAgW29wdGlvblZhbHVlXT1cIiRhbnkoaXRlbXNWYWx1ZVByb3BlcnR5KVwiXG4gICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiKGl0ZW1zJCB8IGFzeW5jKSA/PyBbXVwiXG4gICAgICAgICAgICAgICAgICAgW3N0eWxlQ2xhc3NdPVwiJGFueShjbGFzc05hbWUpXCJcbiAgICAgICAgICAgICAgICAgICBbcGFuZWxTdHlsZUNsYXNzXT1cIiRhbnkoZHJvcGRvd25DbGFzc05hbWUpXCJcbiAgICAgICAgICAgICAgICAgICBbZmlsdGVyXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwib25DaGFuZ2UuZW1pdCgkZXZlbnQudmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj5cbiAgICA8L3AtbXVsdGlTZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuIl19