@bnsights/bbsf-controls 1.0.85 → 1.0.87

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 (219) hide show
  1. package/README.md +6 -1
  2. package/bnsights-bbsf-controls-1.0.87.tgz +0 -0
  3. package/bnsights-bbsf-controls.d.ts +1 -1
  4. package/esm2020/bnsights-bbsf-controls.mjs +5 -0
  5. package/esm2020/lib/Shared/Directives/template-name.directive.mjs +18 -0
  6. package/{esm2015/lib/Shared/Enums/CalendarView.js → esm2020/lib/Shared/Enums/CalendarView.mjs} +0 -0
  7. package/{esm2015/lib/Shared/Enums/ControlLayout.js → esm2020/lib/Shared/Enums/ControlLayout.mjs} +0 -0
  8. package/{esm2015/lib/Shared/Enums/Countries.js → esm2020/lib/Shared/Enums/Countries.mjs} +0 -0
  9. package/{esm2015/lib/Shared/Enums/Enums.js → esm2020/lib/Shared/Enums/Enums.mjs} +0 -0
  10. package/{esm2015/lib/Shared/Enums/FileType.js → esm2020/lib/Shared/Enums/FileType.mjs} +0 -0
  11. package/{esm2015/lib/Shared/Enums/FilterType.js → esm2020/lib/Shared/Enums/FilterType.mjs} +0 -0
  12. package/{esm2015/lib/Shared/Enums/FontSize.js → esm2020/lib/Shared/Enums/FontSize.mjs} +0 -0
  13. package/{esm2015/lib/Shared/Enums/ForceDirection.js → esm2020/lib/Shared/Enums/ForceDirection.mjs} +0 -0
  14. package/{esm2015/lib/Shared/Enums/IconPosition.js → esm2020/lib/Shared/Enums/IconPosition.mjs} +0 -0
  15. package/{esm2015/lib/Shared/Enums/ImageType.js → esm2020/lib/Shared/Enums/ImageType.mjs} +0 -0
  16. package/{esm2015/lib/Shared/Enums/InputType.js → esm2020/lib/Shared/Enums/InputType.mjs} +0 -0
  17. package/{esm2015/lib/Shared/Enums/Insert.js → esm2020/lib/Shared/Enums/Insert.mjs} +0 -0
  18. package/{esm2015/lib/Shared/Enums/LanguageMode.js → esm2020/lib/Shared/Enums/LanguageMode.mjs} +0 -0
  19. package/{esm2015/lib/Shared/Enums/LanguageValidation.js → esm2020/lib/Shared/Enums/LanguageValidation.mjs} +0 -0
  20. package/{esm2015/lib/Shared/Enums/Misc.js → esm2020/lib/Shared/Enums/Misc.mjs} +0 -0
  21. package/{esm2015/lib/Shared/Enums/PagingActionMode.js → esm2020/lib/Shared/Enums/PagingActionMode.mjs} +0 -0
  22. package/{esm2015/lib/Shared/Enums/Para.js → esm2020/lib/Shared/Enums/Para.mjs} +0 -0
  23. package/{esm2015/lib/Shared/Enums/PickerType.js → esm2020/lib/Shared/Enums/PickerType.mjs} +0 -0
  24. package/{esm2015/lib/Shared/Enums/SelectMode.js → esm2020/lib/Shared/Enums/SelectMode.mjs} +0 -0
  25. package/{esm2015/lib/Shared/Enums/StartView.js → esm2020/lib/Shared/Enums/StartView.mjs} +0 -0
  26. package/{esm2015/lib/Shared/Enums/Style.js → esm2020/lib/Shared/Enums/Style.mjs} +0 -0
  27. package/{esm2015/lib/Shared/Enums/StyleConfirmationMode.js → esm2020/lib/Shared/Enums/StyleConfirmationMode.mjs} +0 -0
  28. package/{esm2015/lib/Shared/Enums/TagInputView.js → esm2020/lib/Shared/Enums/TagInputView.mjs} +0 -0
  29. package/{esm2015/lib/Shared/Enums/menu-list-enum.js → esm2020/lib/Shared/Enums/menu-list-enum.mjs} +0 -0
  30. package/{esm2015/lib/Shared/Models/Attribute.js → esm2020/lib/Shared/Models/Attribute.mjs} +0 -0
  31. package/{esm2015/lib/Shared/Models/AutocompleteDTO.js → esm2020/lib/Shared/Models/AutocompleteDTO.mjs} +0 -0
  32. package/{esm2015/lib/Shared/Models/AutocompleteOptions.js → esm2020/lib/Shared/Models/AutocompleteOptions.mjs} +0 -0
  33. package/{esm2015/lib/Shared/Models/CalendarEventDTO.js → esm2020/lib/Shared/Models/CalendarEventDTO.mjs} +0 -0
  34. package/{esm2015/lib/Shared/Models/CalendarOptions.js → esm2020/lib/Shared/Models/CalendarOptions.mjs} +0 -0
  35. package/{esm2015/lib/Shared/Models/CancelDTO.js → esm2020/lib/Shared/Models/CancelDTO.mjs} +0 -0
  36. package/{esm2015/lib/Shared/Models/CaptchaStyle.js → esm2020/lib/Shared/Models/CaptchaStyle.mjs} +0 -0
  37. package/{esm2015/lib/Shared/Models/CheckBoxOptions.js → esm2020/lib/Shared/Models/CheckBoxOptions.mjs} +0 -0
  38. package/{esm2015/lib/Shared/Models/ConfirmationModalOptions.js → esm2020/lib/Shared/Models/ConfirmationModalOptions.mjs} +0 -0
  39. package/{esm2015/lib/Shared/Models/ControlOptionsBase.js → esm2020/lib/Shared/Models/ControlOptionsBase.mjs} +0 -0
  40. package/{esm2015/lib/Shared/Models/CustomValidation.js → esm2020/lib/Shared/Models/CustomValidation.mjs} +0 -0
  41. package/{esm2015/lib/Shared/Models/DropdownListItem.js → esm2020/lib/Shared/Models/DropdownListItem.mjs} +0 -0
  42. package/{esm2015/lib/Shared/Models/DropdownOptions.js → esm2020/lib/Shared/Models/DropdownOptions.mjs} +0 -0
  43. package/{esm2015/lib/Shared/Models/EditPersonalImage.js → esm2020/lib/Shared/Models/EditPersonalImage.mjs} +0 -0
  44. package/{esm2015/lib/Shared/Models/EnglishArabicDTO.js → esm2020/lib/Shared/Models/EnglishArabicDTO.mjs} +0 -0
  45. package/{esm2015/lib/Shared/Models/FileDTO.js → esm2020/lib/Shared/Models/FileDTO.mjs} +0 -0
  46. package/{esm2015/lib/Shared/Models/FileUploadModel.js → esm2020/lib/Shared/Models/FileUploadModel.mjs} +0 -0
  47. package/{esm2015/lib/Shared/Models/FileUploadOptions.js → esm2020/lib/Shared/Models/FileUploadOptions.mjs} +0 -0
  48. package/{esm2015/lib/Shared/Models/FilterItem.js → esm2020/lib/Shared/Models/FilterItem.mjs} +0 -0
  49. package/{esm2015/lib/Shared/Models/FormOptions.js → esm2020/lib/Shared/Models/FormOptions.mjs} +0 -0
  50. package/{esm2015/lib/Shared/Models/HtmlEditorOptions.js → esm2020/lib/Shared/Models/HtmlEditorOptions.mjs} +0 -0
  51. package/{esm2015/lib/Shared/Models/ImageUploadOptions.js → esm2020/lib/Shared/Models/ImageUploadOptions.mjs} +0 -0
  52. package/{esm2015/lib/Shared/Models/MapAutoCompleteOptions.js → esm2020/lib/Shared/Models/MapAutoCompleteOptions.mjs} +0 -0
  53. package/{esm2015/lib/Shared/Models/MapAutocompleteDTO.js → esm2020/lib/Shared/Models/MapAutocompleteDTO.mjs} +0 -0
  54. package/{esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js → esm2020/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs} +0 -0
  55. package/{esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js → esm2020/lib/Shared/Models/MultiLingualTextAreaOptions.mjs} +0 -0
  56. package/{esm2015/lib/Shared/Models/MultilingualControlOptionsBase.js → esm2020/lib/Shared/Models/MultilingualControlOptionsBase.mjs} +0 -0
  57. package/{esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js → esm2020/lib/Shared/Models/MultilingualTextBoxOptions.mjs} +0 -0
  58. package/{esm2015/lib/Shared/Models/MultipleFileUploadModel.js → esm2020/lib/Shared/Models/MultipleFileUploadModel.mjs} +0 -0
  59. package/{esm2015/lib/Shared/Models/PagingDTO.js → esm2020/lib/Shared/Models/PagingDTO.mjs} +0 -0
  60. package/{esm2015/lib/Shared/Models/PagingOptions.js → esm2020/lib/Shared/Models/PagingOptions.mjs} +0 -0
  61. package/{esm2015/lib/Shared/Models/PagingPayload.js → esm2020/lib/Shared/Models/PagingPayload.mjs} +0 -0
  62. package/{esm2015/lib/Shared/Models/PhoneOptions.js → esm2020/lib/Shared/Models/PhoneOptions.mjs} +0 -0
  63. package/{esm2015/lib/Shared/Models/ProfileImageUploadOptions.js → esm2020/lib/Shared/Models/ProfileImageUploadOptions.mjs} +0 -0
  64. package/{esm2015/lib/Shared/Models/ProfilePictureDTO.js → esm2020/lib/Shared/Models/ProfilePictureDTO.mjs} +0 -0
  65. package/{esm2015/lib/Shared/Models/RadioButtonItem.js → esm2020/lib/Shared/Models/RadioButtonItem.mjs} +0 -0
  66. package/{esm2015/lib/Shared/Models/RadioButtonOptions.js → esm2020/lib/Shared/Models/RadioButtonOptions.mjs} +0 -0
  67. package/{esm2015/lib/Shared/Models/RangeNumber.js → esm2020/lib/Shared/Models/RangeNumber.mjs} +0 -0
  68. package/{esm2015/lib/Shared/Models/Recaptcha.js → esm2020/lib/Shared/Models/Recaptcha.mjs} +0 -0
  69. package/{esm2015/lib/Shared/Models/RecaptchaOptions.js → esm2020/lib/Shared/Models/RecaptchaOptions.mjs} +0 -0
  70. package/{esm2015/lib/Shared/Models/RepeaterField.js → esm2020/lib/Shared/Models/RepeaterField.mjs} +0 -0
  71. package/{esm2015/lib/Shared/Models/RepeaterOptions.js → esm2020/lib/Shared/Models/RepeaterOptions.mjs} +0 -0
  72. package/{esm2015/lib/Shared/Models/SaveDTO.js → esm2020/lib/Shared/Models/SaveDTO.mjs} +0 -0
  73. package/{esm2015/lib/Shared/Models/TagsInputDTO.js → esm2020/lib/Shared/Models/TagsInputDTO.mjs} +0 -0
  74. package/{esm2015/lib/Shared/Models/TagsInputOptions.js → esm2020/lib/Shared/Models/TagsInputOptions.mjs} +0 -0
  75. package/{esm2015/lib/Shared/Models/TextAreaOptions.js → esm2020/lib/Shared/Models/TextAreaOptions.mjs} +0 -0
  76. package/{esm2015/lib/Shared/Models/TextBoxOptions.js → esm2020/lib/Shared/Models/TextBoxOptions.mjs} +0 -0
  77. package/{esm2015/lib/Shared/Models/ToggleslideOptions.js → esm2020/lib/Shared/Models/ToggleslideOptions.mjs} +0 -0
  78. package/{esm2015/lib/Shared/Models/UploadPersonalImage.js → esm2020/lib/Shared/Models/UploadPersonalImage.mjs} +0 -0
  79. package/{esm2015/lib/Shared/Models/bread-crumb.js → esm2020/lib/Shared/Models/bread-crumb.mjs} +0 -0
  80. package/{esm2015/lib/Shared/Models/control-filter-Item.js → esm2020/lib/Shared/Models/control-filter-Item.mjs} +0 -0
  81. package/{esm2015/lib/Shared/Models/datePickerOptions.js → esm2020/lib/Shared/Models/datePickerOptions.mjs} +1 -1
  82. package/{esm2015/lib/Shared/Models/filter-options.js → esm2020/lib/Shared/Models/filter-options.mjs} +0 -0
  83. package/{esm2015/lib/Shared/Models/page-header-options.js → esm2020/lib/Shared/Models/page-header-options.mjs} +0 -0
  84. package/esm2020/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +21 -0
  85. package/esm2020/lib/Shared/Pipes/bbsf-date.pipe.mjs +21 -0
  86. package/esm2020/lib/Shared/components/app-base-component.mjs +198 -0
  87. package/esm2020/lib/Shared/components/ng-tag-input.mjs +336 -0
  88. package/{esm2015/lib/Shared/config/environment.js → esm2020/lib/Shared/config/environment.mjs} +0 -0
  89. package/esm2020/lib/Shared/default_intl.mjs +29 -0
  90. package/esm2020/lib/Shared/services/ControlUtility.mjs +162 -0
  91. package/esm2020/lib/Shared/services/GlobalSettings.service.mjs +30 -0
  92. package/esm2020/lib/Shared/services/OnPagingFiltersChange.service.mjs +24 -0
  93. package/esm2020/lib/Shared/services/render-component-service.service.mjs +30 -0
  94. package/esm2020/lib/Shared/services/validationErrorMassage.service.mjs +137 -0
  95. package/esm2020/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +245 -0
  96. package/esm2020/lib/controls/Calendar/Calendar.component.mjs +172 -0
  97. package/esm2020/lib/controls/CheckBox/CheckBox.component.mjs +114 -0
  98. package/esm2020/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +136 -0
  99. package/esm2020/lib/controls/DateTimePicker/DateTimePicker.component.mjs +217 -0
  100. package/esm2020/lib/controls/DropdownList/DropdownList.component.mjs +179 -0
  101. package/esm2020/lib/controls/FileUplaod/FileUplaod.component.mjs +453 -0
  102. package/esm2020/lib/controls/Form/Form.component.mjs +101 -0
  103. package/esm2020/lib/controls/HtmlEditor/HtmlEditor.component.mjs +223 -0
  104. package/esm2020/lib/controls/ImageUpload/ImageUpload.component.mjs +350 -0
  105. package/esm2020/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +325 -0
  106. package/esm2020/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +427 -0
  107. package/esm2020/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +427 -0
  108. package/esm2020/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +426 -0
  109. package/esm2020/lib/controls/Paging/JwPagination.component.mjs +156 -0
  110. package/esm2020/lib/controls/Paging/Paging.component.mjs +312 -0
  111. package/esm2020/lib/controls/Phone/Phone.component.mjs +124 -0
  112. package/esm2020/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +354 -0
  113. package/esm2020/lib/controls/RadioButton/RadioButton.component.mjs +106 -0
  114. package/esm2020/lib/controls/Recaptcha/Recaptcha.component.mjs +132 -0
  115. package/esm2020/lib/controls/Repeater/repeater/repeater.component.mjs +125 -0
  116. package/esm2020/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +750 -0
  117. package/esm2020/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +21 -0
  118. package/esm2020/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +108 -0
  119. package/esm2020/lib/controls/TagsInput/TagsInput.component.mjs +268 -0
  120. package/esm2020/lib/controls/TextArea/TextArea.component.mjs +192 -0
  121. package/esm2020/lib/controls/TextBox/TextBox.component.mjs +266 -0
  122. package/esm2020/lib/controls/Toggleslide/toggleslide.component.mjs +84 -0
  123. package/esm2020/lib/controls/bbsf-controls.module.mjs +401 -0
  124. package/esm2020/lib/controls/page-header-component/page-header-component.component.mjs +37 -0
  125. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  126. package/fesm2015/{bnsights-bbsf-controls.js → bnsights-bbsf-controls.mjs} +1872 -1625
  127. package/fesm2015/bnsights-bbsf-controls.mjs.map +1 -0
  128. package/fesm2020/bnsights-bbsf-controls.mjs +8938 -0
  129. package/fesm2020/bnsights-bbsf-controls.mjs.map +1 -0
  130. package/lib/Shared/Directives/template-name.directive.d.ts +3 -0
  131. package/lib/Shared/Models/datePickerOptions.d.ts +1 -1
  132. package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +3 -0
  133. package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +3 -0
  134. package/lib/Shared/components/app-base-component.d.ts +3 -0
  135. package/lib/Shared/components/ng-tag-input.d.ts +3 -0
  136. package/lib/Shared/default_intl.d.ts +3 -0
  137. package/lib/Shared/services/ControlUtility.d.ts +3 -0
  138. package/lib/Shared/services/GlobalSettings.service.d.ts +3 -0
  139. package/lib/Shared/services/OnPagingFiltersChange.service.d.ts +3 -0
  140. package/lib/Shared/services/render-component-service.service.d.ts +3 -0
  141. package/lib/Shared/services/validationErrorMassage.service.d.ts +3 -0
  142. package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +4 -0
  143. package/lib/controls/Calendar/Calendar.component.d.ts +3 -0
  144. package/lib/controls/CheckBox/CheckBox.component.d.ts +4 -0
  145. package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +3 -0
  146. package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +8 -2
  147. package/lib/controls/DropdownList/DropdownList.component.d.ts +4 -0
  148. package/lib/controls/FileUplaod/FileUplaod.component.d.ts +5 -0
  149. package/lib/controls/Form/Form.component.d.ts +3 -0
  150. package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +4 -0
  151. package/lib/controls/ImageUpload/ImageUpload.component.d.ts +3 -0
  152. package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +3 -0
  153. package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +3 -0
  154. package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +3 -0
  155. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +3 -0
  156. package/lib/controls/Paging/JwPagination.component.d.ts +3 -0
  157. package/lib/controls/Paging/Paging.component.d.ts +3 -0
  158. package/lib/controls/Phone/Phone.component.d.ts +7 -1
  159. package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +3 -0
  160. package/lib/controls/RadioButton/RadioButton.component.d.ts +3 -0
  161. package/lib/controls/Recaptcha/Recaptcha.component.d.ts +4 -0
  162. package/lib/controls/Repeater/repeater/repeater.component.d.ts +3 -0
  163. package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +3 -0
  164. package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +3 -0
  165. package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +3 -0
  166. package/lib/controls/TagsInput/TagsInput.component.d.ts +4 -0
  167. package/lib/controls/TextArea/TextArea.component.d.ts +4 -0
  168. package/lib/controls/TextBox/TextBox.component.d.ts +4 -0
  169. package/lib/controls/Toggleslide/toggleslide.component.d.ts +4 -0
  170. package/lib/controls/bbsf-controls.module.d.ts +74 -0
  171. package/lib/controls/page-header-component/page-header-component.component.d.ts +3 -0
  172. package/package.json +20 -8
  173. package/bnsights-bbsf-controls-1.0.85.tgz +0 -0
  174. package/bnsights-bbsf-controls.metadata.json +0 -1
  175. package/bundles/bnsights-bbsf-controls.umd.js +0 -9326
  176. package/bundles/bnsights-bbsf-controls.umd.js.map +0 -1
  177. package/esm2015/bnsights-bbsf-controls.js +0 -6
  178. package/esm2015/lib/Shared/Directives/template-name.directive.js +0 -18
  179. package/esm2015/lib/Shared/Pipes/bbsf-date-time.pipe.js +0 -20
  180. package/esm2015/lib/Shared/Pipes/bbsf-date.pipe.js +0 -20
  181. package/esm2015/lib/Shared/components/app-base-component.js +0 -198
  182. package/esm2015/lib/Shared/components/ng-tag-input.js +0 -323
  183. package/esm2015/lib/Shared/default_intl.js +0 -29
  184. package/esm2015/lib/Shared/services/ControlUtility.js +0 -164
  185. package/esm2015/lib/Shared/services/GlobalSettings.service.js +0 -28
  186. package/esm2015/lib/Shared/services/OnPagingFiltersChange.service.js +0 -22
  187. package/esm2015/lib/Shared/services/render-component-service.service.js +0 -30
  188. package/esm2015/lib/Shared/services/validationErrorMassage.service.js +0 -137
  189. package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +0 -248
  190. package/esm2015/lib/controls/Calendar/Calendar.component.js +0 -176
  191. package/esm2015/lib/controls/CheckBox/CheckBox.component.js +0 -114
  192. package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +0 -139
  193. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +0 -215
  194. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +0 -178
  195. package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +0 -347
  196. package/esm2015/lib/controls/Form/Form.component.js +0 -106
  197. package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +0 -222
  198. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +0 -347
  199. package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +0 -325
  200. package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +0 -429
  201. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +0 -430
  202. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +0 -429
  203. package/esm2015/lib/controls/Paging/JwPagination.component.js +0 -129
  204. package/esm2015/lib/controls/Paging/Paging.component.js +0 -312
  205. package/esm2015/lib/controls/Phone/Phone.component.js +0 -119
  206. package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +0 -349
  207. package/esm2015/lib/controls/RadioButton/RadioButton.component.js +0 -108
  208. package/esm2015/lib/controls/Recaptcha/Recaptcha.component.js +0 -131
  209. package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +0 -117
  210. package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +0 -748
  211. package/esm2015/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.js +0 -19
  212. package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +0 -108
  213. package/esm2015/lib/controls/TagsInput/TagsInput.component.js +0 -268
  214. package/esm2015/lib/controls/TextArea/TextArea.component.js +0 -191
  215. package/esm2015/lib/controls/TextBox/TextBox.component.js +0 -262
  216. package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +0 -83
  217. package/esm2015/lib/controls/bbsf-controls.module.js +0 -243
  218. package/esm2015/lib/controls/page-header-component/page-header-component.component.js +0 -32
  219. package/fesm2015/bnsights-bbsf-controls.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { ControlLayout } from "../Enums/ControlLayout";
3
+ import { LanguageMode } from "../Enums/LanguageMode";
4
+ import * as i0 from "@angular/core";
5
+ export class GlobalSettings {
6
+ constructor() {
7
+ /** to set type of view if MultilingualTextArea is Vertical or Horizontal */
8
+ this.ViewType = ControlLayout.Vertical;
9
+ /*multi control placement type*/
10
+ this.MultiControlPlacementType = ControlLayout.Horizontal;
11
+ /**To Set LanguageMode To MultipleLanguageText */
12
+ this.LanguageMode = LanguageMode.Both_Languages_are_visible;
13
+ this.HideAstericsWhenRequired = false;
14
+ //**To set maxlength warning message when equals limit
15
+ this.MaxLengthWarningLimit = 10;
16
+ //**Set any texbox maxlength default value
17
+ this.MaxLengthTextBox = 255;
18
+ //**Set any textArea maxlength default value
19
+ this.MaxLengthTextArea = 1000;
20
+ //**Set default image source
21
+ this.DefaultImageSrc = "./src/assets/images/uploadimg.png";
22
+ }
23
+ }
24
+ GlobalSettings.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GlobalSettings, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
+ GlobalSettings.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GlobalSettings, providedIn: 'root' });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GlobalSettings, decorators: [{
27
+ type: Injectable,
28
+ args: [{ providedIn: 'root' }]
29
+ }] });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2xvYmFsU2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9TaGFyZWQvc2VydmljZXMvR2xvYmFsU2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBR3JELE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRUUsOEVBQThFO1FBQzlFLGFBQVEsR0FBa0IsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxnQ0FBZ0M7UUFDaEMsOEJBQXlCLEdBQWtCLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDcEUsaURBQWlEO1FBQ2pELGlCQUFZLEdBQWlCLFlBQVksQ0FBQywwQkFBMEIsQ0FBQztRQUNyRSw2QkFBd0IsR0FBWSxLQUFLLENBQUM7UUFDMUMsc0RBQXNEO1FBQ3RELDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNuQywwQ0FBMEM7UUFDMUMscUJBQWdCLEdBQVcsR0FBRyxDQUFDO1FBQy9CLDRDQUE0QztRQUM1QyxzQkFBaUIsR0FBVyxJQUFJLENBQUM7UUFDakMsNEJBQTRCO1FBQzVCLG9CQUFlLEdBQVcsbUNBQW1DLENBQUM7S0FDL0Q7OzRHQWhCWSxjQUFjO2dIQUFkLGNBQWMsY0FERCxNQUFNOzRGQUNuQixjQUFjO2tCQUQxQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sTGF5b3V0IH0gZnJvbSBcIi4uL0VudW1zL0NvbnRyb2xMYXlvdXRcIjtcclxuaW1wb3J0IHsgRm9yY2VEaXJlY3Rpb24gfSBmcm9tIFwiLi4vRW51bXMvRm9yY2VEaXJlY3Rpb25cIjtcclxuaW1wb3J0IHsgTGFuZ3VhZ2VNb2RlIH0gZnJvbSBcIi4uL0VudW1zL0xhbmd1YWdlTW9kZVwiO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEdsb2JhbFNldHRpbmdzIHtcclxuICAvKiogIHRvIHNldCB0eXBlIG9mIHZpZXcgIGlmIE11bHRpbGluZ3VhbFRleHRBcmVhIGlzIFZlcnRpY2FsIG9yIEhvcml6b250YWwgKi9cclxuICBWaWV3VHlwZTogQ29udHJvbExheW91dCA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgLyptdWx0aSBjb250cm9sIHBsYWNlbWVudCB0eXBlKi9cclxuICBNdWx0aUNvbnRyb2xQbGFjZW1lbnRUeXBlOiBDb250cm9sTGF5b3V0ID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gIC8qKlRvIFNldCBMYW5ndWFnZU1vZGUgVG8gTXVsdGlwbGVMYW5ndWFnZVRleHQgKi9cclxuICBMYW5ndWFnZU1vZGU6IExhbmd1YWdlTW9kZSA9IExhbmd1YWdlTW9kZS5Cb3RoX0xhbmd1YWdlc19hcmVfdmlzaWJsZTtcclxuICBIaWRlQXN0ZXJpY3NXaGVuUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyoqVG8gc2V0IG1heGxlbmd0aCB3YXJuaW5nIG1lc3NhZ2Ugd2hlbiBlcXVhbHMgbGltaXRcclxuICBNYXhMZW5ndGhXYXJuaW5nTGltaXQ6IG51bWJlciA9IDEwO1xyXG4gIC8vKipTZXQgYW55IHRleGJveCBtYXhsZW5ndGggZGVmYXVsdCB2YWx1ZVxyXG4gIE1heExlbmd0aFRleHRCb3g6IG51bWJlciA9IDI1NTtcclxuICAvLyoqU2V0IGFueSB0ZXh0QXJlYSBtYXhsZW5ndGggZGVmYXVsdCB2YWx1ZVxyXG4gIE1heExlbmd0aFRleHRBcmVhOiBudW1iZXIgPSAxMDAwO1xyXG4gIC8vKipTZXQgZGVmYXVsdCBpbWFnZSBzb3VyY2VcclxuICBEZWZhdWx0SW1hZ2VTcmM6IHN0cmluZyA9IFwiLi9zcmMvYXNzZXRzL2ltYWdlcy91cGxvYWRpbWcucG5nXCI7XHJcbn1cclxuIl19
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class OnPagingFiltersChangeService {
5
+ constructor() {
6
+ this.subject = new Subject();
7
+ }
8
+ ChangeValue(value) {
9
+ this.subject.next(value);
10
+ }
11
+ ClearValue() {
12
+ this.subject.next();
13
+ }
14
+ GetValue() {
15
+ return this.subject.asObservable();
16
+ }
17
+ }
18
+ OnPagingFiltersChangeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OnPagingFiltersChangeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ OnPagingFiltersChangeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OnPagingFiltersChangeService, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: OnPagingFiltersChangeService, decorators: [{
21
+ type: Injectable,
22
+ args: [{ providedIn: 'root' }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT25QYWdpbmdGaWx0ZXJzQ2hhbmdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvU2hhcmVkL3NlcnZpY2VzL09uUGFnaW5nRmlsdGVyc0NoYW5nZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLDRCQUE0QjtJQUR6QztRQUVZLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0tBYXhDO0lBWEcsV0FBVyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7OzBIQWJRLDRCQUE0Qjs4SEFBNUIsNEJBQTRCLGNBRGYsTUFBTTs0RkFDbkIsNEJBQTRCO2tCQUR4QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE9uUGFnaW5nRmlsdGVyc0NoYW5nZVNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICAgIENoYW5nZVZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnN1YmplY3QubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgQ2xlYXJWYWx1ZSgpIHtcclxuICAgICAgICB0aGlzLnN1YmplY3QubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIEdldFZhbHVlKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Injectable } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class RenderComponentService {
4
+ constructor(componentFactoryResolver) {
5
+ this.componentFactoryResolver = componentFactoryResolver;
6
+ }
7
+ renderDynamicComponent(viewContainerRef, component, group, options, size = 0) {
8
+ let factory = this.componentFactoryResolver.resolveComponentFactory(component);
9
+ const componentRef = viewContainerRef.createComponent(factory);
10
+ componentRef.instance.group = group;
11
+ componentRef.instance.options = options;
12
+ if (size > 0) {
13
+ let htmlElement = componentRef.hostView.rootNodes[0];
14
+ // `element` is the element you want to wrap
15
+ var parent = htmlElement.parentNode;
16
+ var wrapper = document.createElement('div');
17
+ wrapper.className = `col-md-${size}`;
18
+ // set the wrapper as child (instead of the element)
19
+ parent.replaceChild(wrapper, htmlElement);
20
+ // set element as child of wrapper
21
+ wrapper.appendChild(htmlElement);
22
+ }
23
+ }
24
+ }
25
+ RenderComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RenderComponentService, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ RenderComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RenderComponentService });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: RenderComponentService, decorators: [{
28
+ type: Injectable
29
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }]; } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWNvbXBvbmVudC1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvU2hhcmVkL3NlcnZpY2VzL3JlbmRlci1jb21wb25lbnQtc2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0QsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQzs7QUFNNUgsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxZQUFxQix3QkFBa0Q7UUFBbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtJQUN2RSxDQUFDO0lBRUQsc0JBQXNCLENBQUksZ0JBQWtDLEVBQUUsU0FBYyxFQUFFLEtBQWdCLEVBQUUsT0FBWSxFQUFFLE9BQWUsQ0FBQztRQUM1SCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUksU0FBUyxDQUFDLENBQUE7UUFDakYsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFJLE9BQU8sQ0FBUSxDQUFDO1FBQ3pFLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNwQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDeEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ1osSUFBSSxXQUFXLEdBQUksWUFBWSxDQUFDLFFBQWlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztZQUM5Riw0Q0FBNEM7WUFDNUMsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUNwQyxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQTtZQUNwQyxvREFBb0Q7WUFDcEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDMUMsa0NBQWtDO1lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEM7SUFHSCxDQUFDOztvSEF2QlUsc0JBQXNCO3dIQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbWJlZGRlZFZpZXdSZWYsIEluamVjdGFibGUsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcblxyXG5cclxuICBASW5qZWN0YWJsZSgpXHJcbiAgZXhwb3J0IGNsYXNzIFJlbmRlckNvbXBvbmVudFNlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XHJcbiAgICB9XHJcbiAgXHJcbiAgICByZW5kZXJEeW5hbWljQ29tcG9uZW50PFQ+KHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIGNvbXBvbmVudDogYW55LCBncm91cDogRm9ybUdyb3VwLCBvcHRpb25zOiBhbnksIHNpemU6IG51bWJlciA9IDApIHtcclxuICAgICAgbGV0IGZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeTxUPihjb21wb25lbnQpXHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50PFQ+KGZhY3RvcnkpIGFzIGFueTtcclxuICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmdyb3VwID0gZ3JvdXA7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcHRpb25zID0gb3B0aW9ucztcclxuICAgICAgaWYgKHNpemUgPiAwKSB7XHJcbiAgICAgICAgbGV0IGh0bWxFbGVtZW50ID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgIC8vIGBlbGVtZW50YCBpcyB0aGUgZWxlbWVudCB5b3Ugd2FudCB0byB3cmFwXHJcbiAgICAgICAgdmFyIHBhcmVudCA9IGh0bWxFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICB3cmFwcGVyLmNsYXNzTmFtZSA9IGBjb2wtbWQtJHtzaXplfWBcclxuICAgICAgICAvLyBzZXQgdGhlIHdyYXBwZXIgYXMgY2hpbGQgKGluc3RlYWQgb2YgdGhlIGVsZW1lbnQpXHJcbiAgICAgICAgcGFyZW50LnJlcGxhY2VDaGlsZCh3cmFwcGVyLCBodG1sRWxlbWVudCk7XHJcbiAgICAgICAgLy8gc2V0IGVsZW1lbnQgYXMgY2hpbGQgb2Ygd3JhcHBlclxyXG4gICAgICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoaHRtbEVsZW1lbnQpO1xyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,137 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/http";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "@bnsights/bbsf-utilities";
6
+ export class ErrorMassageValidation {
7
+ // tslint:disable-next-line: deprecation
8
+ constructor(http, controlContainer, utilityService) {
9
+ this.http = http;
10
+ this.controlContainer = controlContainer;
11
+ this.utilityService = utilityService;
12
+ this.url = 'CheckEmailValidation';
13
+ ErrorMassageValidation.controlContainerstatic = this.controlContainer;
14
+ }
15
+ // tslint:disable-next-line: deprecation
16
+ static showerror(FormControlName) {
17
+ ;
18
+ let form = ErrorMassageValidation.controlContainerstatic.control;
19
+ let control = form.get(FormControlName);
20
+ //console.log(control)
21
+ control.setErrors({ 'minlength': true });
22
+ control.markAsTouched();
23
+ }
24
+ // isEmailRegisterd(Email: string)
25
+ // {
26
+ // let resource:object={
27
+ // email:Email
28
+ // };
29
+ // let body = JSON.stringify(resource);
30
+ // let headers = new Headers({ 'Content-Type': 'application/json' });
31
+ // let options = new RequestOptions({ headers: headers });
32
+ // return this.http.post(environment.baseUrl+this.url,body,options)
33
+ // .pipe(map(response => response.json()))
34
+ // }
35
+ getErrorMassageValidation(error) {
36
+ ;
37
+ let result = "";
38
+ switch (error.key) {
39
+ case "required":
40
+ result = this.utilityService.getResourceValue("RequiredValidationKey");
41
+ break;
42
+ case "email":
43
+ result = this.utilityService.getResourceValue("EmailValidationKey");
44
+ break;
45
+ case "EmailValidationKey":
46
+ result = this.utilityService.getResourceValue("EmailValidationKey");
47
+ break;
48
+ case "pattern":
49
+ result = this.utilityService.getResourceValue("NumberValidationKey");
50
+ break;
51
+ case "maxlength":
52
+ result = this.utilityService.getResourceValue("MaxLenghtValidationKey") + " " + error.value.requiredLength;
53
+ break;
54
+ case "minlength":
55
+ result = this.utilityService.getResourceValue("MinLenghtValidationKey") + " " + error.value.requiredLength;
56
+ break;
57
+ case "min":
58
+ result = this.utilityService.getResourceValue("MinValueValidationKey") + " " + error.value.min;
59
+ break;
60
+ case "max":
61
+ result = this.utilityService.getResourceValue("MaxValueValidationKey") + " " + error.value.max;
62
+ break;
63
+ case "IntegerNumberValidationKey":
64
+ result = this.utilityService.getResourceValue("IntegerNumberValidationKey");
65
+ break;
66
+ case "PositiveNumberValidationKey":
67
+ result = this.utilityService.getResourceValue("PositiveNumberValidationKey");
68
+ break;
69
+ case "validatePhoneNumber":
70
+ result = this.utilityService.getResourceValue("PhoneNumberValidationKey");
71
+ break;
72
+ case "mask":
73
+ result = this.utilityService.getResourceValue("MaskValidationKey") + " " + error.value.requiredMask;
74
+ break;
75
+ case "PasswordComplexityHasNumber":
76
+ result = this.utilityService.getResourceValue("PasswordComplexityHasNumber");
77
+ break;
78
+ case "ArabicLetterOnly":
79
+ result = this.utilityService.getResourceValue("ArabicLetterOnly");
80
+ break;
81
+ case "EnglishLetterOnly":
82
+ result = this.utilityService.getResourceValue("EnglishLetterOnly");
83
+ break;
84
+ case "ArabicIsRequiredAndOnly50CharactersEnglish":
85
+ result = this.utilityService.getResourceValue("ArabicIsRequiredAndOnly50CharactersEnglish");
86
+ break;
87
+ case "PasswordComplexityHasCapitalLetter":
88
+ result = this.utilityService.getResourceValue("PasswordComplexityHasCapitalLetter");
89
+ break;
90
+ case "PasswordComplexityHasSmallLetter":
91
+ result = this.utilityService.getResourceValue("PasswordComplexityHasSmallLetter");
92
+ break;
93
+ case "PasswordComplexityHasSpecialLetter":
94
+ result = this.utilityService.getResourceValue("PasswordComplexityHasSpecialLetter");
95
+ break;
96
+ case "MaxWordCountValidationKey":
97
+ result = this.utilityService.getResourceValue("MaxWordCountValidationKey") + " " + error.value;
98
+ break;
99
+ case "NewSelectionValidationKey":
100
+ result = this.utilityService.getResourceValue("NewSelectionValidationKey");
101
+ break;
102
+ case "MaxFileCountValidationKey":
103
+ result = this.utilityService.getResourceValue("MaxFileCountValidationKey") + " " + error.value;
104
+ break;
105
+ case "MinFileCountValidationKey":
106
+ result = this.utilityService.getResourceValue("MinFileCountValidationKey") + " " + error.value;
107
+ break;
108
+ case "MaxSizeForAllFilesInMB":
109
+ result = this.utilityService.getResourceValue("MaxSizeForAllFilesInMB") + " " + error.value;
110
+ break;
111
+ case "FileMaxSizeInMB":
112
+ result = this.utilityService.getResourceValue("FileMaxSizeInMB") + " " + error.value;
113
+ break;
114
+ case "ToolTipTypeError":
115
+ result = this.utilityService.getResourceValue("ToolTipTypeError") + " " + error.value;
116
+ break;
117
+ case "InvalidEndDate":
118
+ result = this.utilityService.getResourceValue("InvalidEndDate");
119
+ break;
120
+ case "InvalidStartDate":
121
+ result = this.utilityService.getResourceValue("InvalidStartDate");
122
+ break;
123
+ default:
124
+ break;
125
+ }
126
+ return result;
127
+ }
128
+ }
129
+ ErrorMassageValidation.controlContainerstatic = null;
130
+ ErrorMassageValidation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ErrorMassageValidation, deps: [{ token: i1.Http }, { token: i2.ControlContainer, optional: true }, { token: i3.UtilityService }], target: i0.ɵɵFactoryTarget.Injectable });
131
+ ErrorMassageValidation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ErrorMassageValidation });
132
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ErrorMassageValidation, decorators: [{
133
+ type: Injectable
134
+ }], ctorParameters: function () { return [{ type: i1.Http }, { type: i2.ControlContainer, decorators: [{
135
+ type: Optional
136
+ }] }, { type: i3.UtilityService }]; } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUXJELE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsd0NBQXdDO0lBQ3hDLFlBQW9CLElBQVUsRUFBc0IsZ0JBQWtDLEVBQVUsY0FBOEI7UUFBMUcsU0FBSSxHQUFKLElBQUksQ0FBTTtRQUFzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSTlILFFBQUcsR0FBRyxzQkFBc0IsQ0FBQztRQUYzQixzQkFBc0IsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUE7SUFDdkUsQ0FBQztJQUVELHdDQUF3QztJQUl4QyxNQUFNLENBQUMsU0FBUyxDQUFDLGVBQXVCO1FBQ3RDLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFvQixDQUFDO1FBQzlFLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFnQixDQUFDO1FBQ3ZELHNCQUFzQjtRQUN0QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsS0FBSztJQUNMLDJCQUEyQjtJQUMzQixtQkFBbUI7SUFDbkIsUUFBUTtJQUNSLDBDQUEwQztJQUMxQyx3RUFBd0U7SUFDeEUsNkRBQTZEO0lBQzdE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QU07WUFDUixLQUFLLGlCQUFpQjtnQkFDcEIsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDckYsTUFBTTtZQUNSLEtBQUssa0JBQWtCO2dCQUNyQixNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN0RixNQUFNO1lBQ1IsS0FBSyxnQkFBZ0I7Z0JBQ25CLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2hFLE1BQU07WUFDUixLQUFLLGtCQUFrQjtnQkFDckIsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDbEUsTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBN0hNLDZDQUFzQixHQUFHLElBQUksQ0FBQztvSEFGMUIsc0JBQXNCO3dIQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFGbEMsVUFBVTs7MEJBT3dCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwLCBSZXNwb25zZSwgSGVhZGVycywgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9odHRwJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcblxyXG5leHBvcnQgY2xhc3MgRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiB7XHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkZXByZWNhdGlvblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cCwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLCBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSkge1xyXG5cclxuICAgIEVycm9yTWFzc2FnZVZhbGlkYXRpb24uY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lclxyXG4gIH1cclxuICB1cmwgPSAnQ2hlY2tFbWFpbFZhbGlkYXRpb24nO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGVwcmVjYXRpb25cclxuXHJcblxyXG5cclxuICBzdGF0aWMgc2hvd2Vycm9yKEZvcm1Db250cm9sTmFtZTogc3RyaW5nKSB7XHJcbiAgICA7XHJcbiAgICBsZXQgZm9ybSA9IEVycm9yTWFzc2FnZVZhbGlkYXRpb24uY29udHJvbENvbnRhaW5lcnN0YXRpYy5jb250cm9sIGFzIEZvcm1Hcm91cDtcclxuICAgIGxldCBjb250cm9sID0gZm9ybS5nZXQoRm9ybUNvbnRyb2xOYW1lKSBhcyBGb3JtQ29udHJvbDtcclxuICAgIC8vY29uc29sZS5sb2coY29udHJvbClcclxuICAgIGNvbnRyb2wuc2V0RXJyb3JzKHsgJ21pbmxlbmd0aCc6IHRydWUgfSk7XHJcbiAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKVxyXG4gIH1cclxuXHJcbiAgLy8gIGlzRW1haWxSZWdpc3RlcmQoRW1haWw6IHN0cmluZykgXHJcbiAgLy8gIHtcclxuICAvLyAgICBsZXQgcmVzb3VyY2U6b2JqZWN0PXtcclxuICAvLyAgICAgIGVtYWlsOkVtYWlsXHJcbiAgLy8gICAgfTtcclxuICAvLyAgICBsZXQgYm9keSA9IEpTT04uc3RyaW5naWZ5KHJlc291cmNlKTtcclxuICAvLyAgICBsZXQgaGVhZGVycyA9IG5ldyBIZWFkZXJzKHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcclxuICAvLyAgICBsZXQgb3B0aW9ucyA9IG5ldyBSZXF1ZXN0T3B0aW9ucyh7IGhlYWRlcnM6IGhlYWRlcnMgfSk7XHJcbiAgLy8gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGVudmlyb25tZW50LmJhc2VVcmwrdGhpcy51cmwsYm9keSxvcHRpb25zKVxyXG4gIC8vICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5qc29uKCkpKVxyXG4gIC8vICB9XHJcblxyXG4gIGdldEVycm9yTWFzc2FnZVZhbGlkYXRpb24oZXJyb3I6IGFueSk6IHN0cmluZyB7XHJcbiAgICA7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBcIlwiXHJcbiAgICBzd2l0Y2ggKGVycm9yLmtleSkge1xyXG4gICAgICBjYXNlIFwicmVxdWlyZWRcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJSZXF1aXJlZFZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJlbWFpbFwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVtYWlsVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkVtYWlsVmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVtYWlsVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInBhdHRlcm5cIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOdW1iZXJWYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibWF4bGVuZ3RoXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWF4TGVuZ2h0VmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtaW5sZW5ndGhcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW5MZW5naHRWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZS5yZXF1aXJlZExlbmd0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1pblwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1pblZhbHVlVmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWUubWluO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibWF4XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWF4VmFsdWVWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZS5tYXg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJJbnRlZ2VyTnVtYmVyVmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkludGVnZXJOdW1iZXJWYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUG9zaXRpdmVOdW1iZXJWYWxpZGF0aW9uS2V5XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUG9zaXRpdmVOdW1iZXJWYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwidmFsaWRhdGVQaG9uZU51bWJlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBob25lTnVtYmVyVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1hc2tcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXNrVmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWUucmVxdWlyZWRNYXNrO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzTnVtYmVyXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzTnVtYmVyXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiQXJhYmljTGV0dGVyT25seVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFyYWJpY0xldHRlck9ubHlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJFbmdsaXNoTGV0dGVyT25seVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVuZ2xpc2hMZXR0ZXJPbmx5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiQXJhYmljSXNSZXF1aXJlZEFuZE9ubHk1MENoYXJhY3RlcnNFbmdsaXNoXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQXJhYmljSXNSZXF1aXJlZEFuZE9ubHk1MENoYXJhY3RlcnNFbmdsaXNoXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzQ2FwaXRhbExldHRlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc0NhcGl0YWxMZXR0ZXJcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJQYXNzd29yZENvbXBsZXhpdHlIYXNTbWFsbExldHRlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc1NtYWxsTGV0dGVyXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzU3BlY2lhbExldHRlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc1NwZWNpYWxMZXR0ZXJcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJNYXhXb3JkQ291bnRWYWxpZGF0aW9uS2V5XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWF4V29yZENvdW50VmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIk1heEZpbGVDb3VudFZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXhGaWxlQ291bnRWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIk1pbkZpbGVDb3VudFZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW5GaWxlQ291bnRWYWxpZGF0aW9uS2V5XCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIk1heFNpemVGb3JBbGxGaWxlc0luTUJcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYXhTaXplRm9yQWxsRmlsZXNJbk1CXCIpICsgXCIgXCIgKyBlcnJvci52YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkZpbGVNYXhTaXplSW5NQlwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkZpbGVNYXhTaXplSW5NQlwiKSArIFwiIFwiICsgZXJyb3IudmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJUb29sVGlwVHlwZUVycm9yXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVG9vbFRpcFR5cGVFcnJvclwiKSArIFwiIFwiICsgZXJyb3IudmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJJbnZhbGlkRW5kRGF0ZVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkludmFsaWRFbmREYXRlXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiSW52YWxpZFN0YXJ0RGF0ZVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkludmFsaWRTdGFydERhdGVcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,245 @@
1
+ import { Component, Input, Optional, Output, EventEmitter } from '@angular/core';
2
+ import { FormControl, Validators } from '@angular/forms';
3
+ import { AutocompleteDTO } from '../../Shared/Models/AutocompleteDTO';
4
+ import { noop, Observable, of } from 'rxjs';
5
+ import { map, switchMap, tap } from 'rxjs/operators';
6
+ import { HttpHeaders, HttpParams } from '@angular/common/http';
7
+ import { RequestOptionsModel } from '@bnsights/bbsf-utilities';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common/http";
10
+ import * as i2 from "../../Shared/services/validationErrorMassage.service";
11
+ import * as i3 from "@bnsights/bbsf-utilities";
12
+ import * as i4 from "../../Shared/services/ControlUtility";
13
+ import * as i5 from "@angular/forms";
14
+ import * as i6 from "../../Shared/services/GlobalSettings.service";
15
+ import * as i7 from "angular-ng-autocomplete";
16
+ import * as i8 from "@angular/common";
17
+ import * as i9 from "@angular/cdk/bidi";
18
+ import * as i10 from "ngx-intl-tel-input";
19
+ export class AutocompleteTextBoxComponent {
20
+ // tslint:disable-next-line: max-line-length
21
+ constructor(http, ErrorHandler, requestHandlerService, controlUtility, controlContainer, AutocompleteTextBoxControlHost, UtilityService, controlValidationService, globalSettings) {
22
+ this.http = http;
23
+ this.ErrorHandler = ErrorHandler;
24
+ this.requestHandlerService = requestHandlerService;
25
+ this.controlUtility = controlUtility;
26
+ this.controlContainer = controlContainer;
27
+ this.AutocompleteTextBoxControlHost = AutocompleteTextBoxControlHost;
28
+ this.UtilityService = UtilityService;
29
+ this.controlValidationService = controlValidationService;
30
+ this.globalSettings = globalSettings;
31
+ this.OnChange = new EventEmitter();
32
+ this.keyword = 'value';
33
+ this.Search = '';
34
+ this.Key = '';
35
+ this.Api = 'http';
36
+ this.Value = 'value';
37
+ this.NewSelectionValidationKey = '';
38
+ this.markAllAsTouched = false;
39
+ this.validationRules = [];
40
+ this.validationRulesasync = [];
41
+ this.dataList = [];
42
+ this.SelectedValue = "";
43
+ this.avatarImage = "./src/assets/images/userimg.png";
44
+ this.resetError = () => {
45
+ this.controlValidationService.RemoveGlobalError();
46
+ };
47
+ // onFocused(e) {
48
+ // // do something
49
+ // }
50
+ // onBlur(Value) {
51
+ // if (this.options.AllowNewSelection == true) {
52
+ // if (typeof (Value) == 'object') {
53
+ // this.AutocompleteTextBoxControl.setValue(Value);
54
+ // this.AutocompleteTextBoxControl.updateValueAndValidity()
55
+ // }
56
+ // else {
57
+ // let AutocompleteModel = new AutocompleteDTO();
58
+ // AutocompleteModel.value = Value;
59
+ // let model = new TypeaheadMatch(AutocompleteModel,Value);
60
+ // this.AutocompleteTextBoxControl.setValue(model);
61
+ // this.AutocompleteTextBoxControl.updateValueAndValidity()
62
+ // }
63
+ // }
64
+ // else {
65
+ // if (this.AutocompleteTextBoxControl.value == Value) {
66
+ // this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });
67
+ // this.AutocompleteTextBoxControl.markAsTouched();
68
+ // this.AutocompleteTextBoxControl.invalid;
69
+ // return;
70
+ // }
71
+ // }
72
+ // }
73
+ // handleResultSelected(result) {
74
+ // this.AutocompleteTextBoxControl.setValue(result);
75
+ // this.AutocompleteTextBoxControl.updateValueAndValidity()
76
+ // this.OnChange.emit(this.AutocompleteTextBoxControl.value)
77
+ // this.Search = this.AutocompleteTextBoxControl.value.value
78
+ // }
79
+ //External Method
80
+ this.RemoveRequiredValidation = () => {
81
+ this.controlUtility.RemoveRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options);
82
+ };
83
+ //External Method
84
+ this.AddRequiredValidation = () => {
85
+ this.controlUtility.AddRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options);
86
+ };
87
+ //External Method
88
+ this.RemoveCustomValidation = (CustomValidation) => {
89
+ this.controlUtility.RemoveCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation);
90
+ };
91
+ //External Method
92
+ this.AddCustomValidation = (CustomValidation) => {
93
+ this.controlUtility.AddCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation);
94
+ };
95
+ //External Method
96
+ this.IsValid = () => {
97
+ this.controlUtility.IsValid(this.AutocompleteTextBoxControl);
98
+ };
99
+ AutocompleteTextBoxComponent.controlContainerstatic = this.controlContainer;
100
+ }
101
+ ngOnInit() {
102
+ this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
103
+ this.controlValidationService.isCreatedBefor = false;
104
+ this.group.addControl(this.options.Name, new FormControl(''));
105
+ this.AutocompleteTextBoxControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
106
+ if (!this.options.ViewType)
107
+ this.options.ViewType = this.globalSettings.ViewType;
108
+ if (this.options.LabelKey != null && this.options.LabelKey != "")
109
+ this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
110
+ // this.AutocompleteTextBoxControl.setValue(this.options.Value);
111
+ if (this.options.CustomValidation.length > 0) {
112
+ let Validations = this.options.CustomValidation;
113
+ for (let index = 0; index < Validations.length; index++) {
114
+ const Validation = Validations[index];
115
+ this.validationRules.push(Validation.functionBody);
116
+ }
117
+ }
118
+ if (this.options.IsRequired) {
119
+ this.validationRules.push(Validators.required);
120
+ }
121
+ this.AutocompleteTextBoxControl.setValidators(this.validationRules);
122
+ this.AutocompleteTextBoxControl.setAsyncValidators(this.validationRulesasync);
123
+ if (this.options.IsDisabled) {
124
+ this.AutocompleteTextBoxControl.disable();
125
+ }
126
+ if (this.options.SelectedValue != undefined && this.options.SelectedValue != null) {
127
+ this.SelectedValue = this.options.SelectedValue;
128
+ }
129
+ this.AutocompleteTextBoxControlHost.ngSubmit.subscribe((value) => {
130
+ if (this.AutocompleteTextBoxControl.value == this.Search && this.options.AllowNewSelection == false) {
131
+ this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });
132
+ this.AutocompleteTextBoxControl.markAsTouched();
133
+ this.AutocompleteTextBoxControl.invalid;
134
+ }
135
+ this.group.markAllAsTouched();
136
+ this.markAllAsTouched = true;
137
+ });
138
+ const httpOptions = {
139
+ headers: new HttpHeaders({
140
+ 'Content-Type': 'application/json',
141
+ 'Authorization': this.options.ValidationToken
142
+ }),
143
+ };
144
+ this.suggestions$ = new Observable((observer) => {
145
+ observer.next(this.Search);
146
+ }).pipe(switchMap((query) => {
147
+ if (query) {
148
+ let params = new HttpParams();
149
+ params = params.append(this.options.QueryParam, query);
150
+ let requestOptionsModel = new RequestOptionsModel();
151
+ requestOptionsModel.disableBlockUI = true;
152
+ requestOptionsModel.disableSuccessNotification = true;
153
+ // using github public api to get users by name
154
+ return this.requestHandlerService.get(this.options.ActionURL, params, null, requestOptionsModel)
155
+ .pipe(map((data) => data || []), tap(() => noop, err => {
156
+ // in case of http error
157
+ this.errorMessage = err && err.message || 'Something goes wrong';
158
+ }));
159
+ }
160
+ return of([]);
161
+ }));
162
+ }
163
+ ngAfterViewInit() {
164
+ this.controlUtility.setAttributeForControl(this.options);
165
+ }
166
+ showGlobalError() {
167
+ this.controlUtility.showGlobalError();
168
+ }
169
+ getErrorValidation(ErrorList) {
170
+ if (this.markAllAsTouched && this.group.invalid) {
171
+ this.showGlobalError();
172
+ this.markAllAsTouched = false;
173
+ }
174
+ return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
175
+ }
176
+ copyInputMessage(inputElement) {
177
+ this.controlUtility.CopyInputMessage(inputElement);
178
+ }
179
+ selectEvent(item) {
180
+ if (this.options.AllowNewSelection == true) {
181
+ if (typeof (item) == 'object') {
182
+ this.AutocompleteTextBoxControl.setValue(item);
183
+ this.AutocompleteTextBoxControl.updateValueAndValidity();
184
+ }
185
+ else {
186
+ let AutocompleteModel = new AutocompleteDTO();
187
+ AutocompleteModel.value = item;
188
+ this.AutocompleteTextBoxControl.setValue(AutocompleteModel);
189
+ this.AutocompleteTextBoxControl.updateValueAndValidity();
190
+ }
191
+ }
192
+ else {
193
+ if (this.AutocompleteTextBoxControl.value == item.value) {
194
+ this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });
195
+ this.AutocompleteTextBoxControl.markAsTouched();
196
+ this.AutocompleteTextBoxControl.invalid;
197
+ return;
198
+ }
199
+ else {
200
+ this.AutocompleteTextBoxControl.setValue(item);
201
+ this.AutocompleteTextBoxControl.updateValueAndValidity();
202
+ let originalValue = this.AutocompleteTextBoxControl.value;
203
+ if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {
204
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
205
+ }
206
+ this.OnChange.emit(this.AutocompleteTextBoxControl.value);
207
+ //Use this line to enable two way binding.
208
+ this.options.Value = this.AutocompleteTextBoxControl.value;
209
+ }
210
+ }
211
+ }
212
+ async onChangeSearch(search) {
213
+ this.Search = search;
214
+ this.SelectedValue = "";
215
+ await this.suggestions$.subscribe((result) => {
216
+ if ((result == null || result.length == 0 || result.length == 0) && this.options.AllowNewSelection == true) {
217
+ this.dataList = [
218
+ {
219
+ key: 0,
220
+ value: this.Search
221
+ }
222
+ ];
223
+ }
224
+ else {
225
+ this.dataList = result;
226
+ }
227
+ });
228
+ }
229
+ }
230
+ AutocompleteTextBoxComponent.controlContainerstatic = null;
231
+ AutocompleteTextBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutocompleteTextBoxComponent, deps: [{ token: i1.HttpClient }, { token: i2.ErrorMassageValidation }, { token: i3.RequestHandlerService }, { token: i4.ControlUtility }, { token: i5.ControlContainer, optional: true }, { token: i5.FormGroupDirective }, { token: i3.UtilityService }, { token: i3.ControlValidationService }, { token: i6.GlobalSettings }], target: i0.ɵɵFactoryTarget.Component });
232
+ AutocompleteTextBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: AutocompleteTextBoxComponent, selector: "BBSF-AutocompleteTextBox", inputs: { group: "group", options: "options" }, outputs: { OnChange: "OnChange" }, ngImport: i0, template: "\r\n<div class=\"form-group bbsf-control bbsf-autocomplete-textbox\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Input container-->\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <ng-autocomplete class=\"form-control {{options.ExtraClasses}}\" *ngIf=\"!options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n [dir]=\"textDir\"\r\n formControlName=\"{{options.Name}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-autocomplete class=\"form-control {{options.ExtraClasses}}\" *ngIf=\"options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n [dir]=\"textDir\"\r\n formControlName=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <img *ngIf=\"options.ItemWithImage\" src=\"{{(item.image?item.image:avatarImage)}}\" />\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(AutocompleteTextBoxControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty)\"> {{resetError()}} </div>\r\n</div>\r\n\r\n", components: [{ type: i7.AutocompleteComponent, selector: "ng-autocomplete", inputs: ["data", "placeholder", "heading", "historyHeading", "historyListMaxNumber", "notFoundText", "minQueryLength", "focusFirst", "disabled", "searchKeyword", "initialValue", "historyIdentifier", "isLoading", "debounceTime", "customFilter", "itemTemplate", "notFoundTemplate"], outputs: ["selected", "inputChanged", "inputFocused", "inputCleared", "opened", "closed", "scrolledToEnd"] }], directives: [{ type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i10.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "keyvalue": i8.KeyValuePipe } });
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: AutocompleteTextBoxComponent, decorators: [{
234
+ type: Component,
235
+ args: [{ selector: 'BBSF-AutocompleteTextBox', template: "\r\n<div class=\"form-group bbsf-control bbsf-autocomplete-textbox\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Input container-->\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <ng-autocomplete class=\"form-control {{options.ExtraClasses}}\" *ngIf=\"!options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n [dir]=\"textDir\"\r\n formControlName=\"{{options.Name}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-autocomplete class=\"form-control {{options.ExtraClasses}}\" *ngIf=\"options.AllowNewSelection\" [data]=\"dataList\" [initialValue]=\"SelectedValue\"\r\n [searchKeyword]=\"keyword\" placeholder=\"{{options.Placeholder}}\" (selected)='selectEvent($event)'\r\n (inputChanged)='onChangeSearch($event)' historyIdentifier=\"dataList\" [itemTemplate]=\"itemTemplate\"\r\n [dir]=\"textDir\"\r\n formControlName=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <img *ngIf=\"options.ItemWithImage\" src=\"{{(item.image?item.image:avatarImage)}}\" />\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(AutocompleteTextBoxControl.invalid && AutocompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(AutocompleteTextBoxControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty)\"> {{resetError()}} </div>\r\n</div>\r\n\r\n" }]
236
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ErrorMassageValidation }, { type: i3.RequestHandlerService }, { type: i4.ControlUtility }, { type: i5.ControlContainer, decorators: [{
237
+ type: Optional
238
+ }] }, { type: i5.FormGroupDirective }, { type: i3.UtilityService }, { type: i3.ControlValidationService }, { type: i6.GlobalSettings }]; }, propDecorators: { group: [{
239
+ type: Input
240
+ }], options: [{
241
+ type: Input
242
+ }], OnChange: [{
243
+ type: Output
244
+ }] } });
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvQXV0b2NvbXBsZXRlVGV4dEJveC9BdXRvY29tcGxldGVUZXh0Qm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9BdXRvY29tcGxldGVUZXh0Qm94L0F1dG9jb21wbGV0ZVRleHRCb3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVcsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQW1HLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUosT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFZLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQWMsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBbUQsbUJBQW1CLEVBQWtCLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7OztBQVFoSSxNQUFNLE9BQU8sNEJBQTRCO0lBSXZDLDRDQUE0QztJQUM1QyxZQUFvQixJQUFnQixFQUFVLFlBQW9DLEVBQVMscUJBQTJDLEVBQzVILGNBQThCLEVBQXNCLGdCQUMxQyxFQUFTLDhCQUFrRCxFQUFTLGNBQThCLEVBQzVHLHdCQUFrRCxFQUFVLGNBQThCO1FBSGhG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NDNGQStDQTs0RkQ5QmEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUVFLDBCQUEwQjs7MEJBU08sUUFBUTs4S0FLMUMsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBEb0NoZWNrLCBPcHRpb25hbCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEVycm9yTWFzc2FnZVZhbGlkYXRpb24gfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvdmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBBdXRvY29tcGxldGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9BdXRvY29tcGxldGVPcHRpb25zJztcclxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlRFRPIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9BdXRvY29tcGxldGVEVE8nO1xyXG5pbXBvcnQgeyBub29wLCBPYnNlcnZhYmxlLCBPYnNlcnZlciwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLCBSZXF1ZXN0T3B0aW9uc01vZGVsLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0dsb2JhbFNldHRpbmdzLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ0JCU0YtQXV0b2NvbXBsZXRlVGV4dEJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL0F1dG9jb21wbGV0ZVRleHRCb3guY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVUZXh0Qm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBFcnJvckhhbmRsZXI6IEVycm9yTWFzc2FnZVZhbGlkYXRpb24scHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6UmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250cm9sVXRpbGl0eTogQ29udHJvbFV0aWxpdHksIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjpcclxuICAgICAgQ29udHJvbENvbnRhaW5lciwgcHVibGljIEF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLHByaXZhdGUgVXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb250cm9sVmFsaWRhdGlvblNlcnZpY2U6IENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgcHJpdmF0ZSBnbG9iYWxTZXR0aW5nczogR2xvYmFsU2V0dGluZ3MpIHtcclxuICAgIEF1dG9jb21wbGV0ZVRleHRCb3hDb21wb25lbnQuY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IHRoaXMuY29udHJvbENvbnRhaW5lcjtcclxuICB9XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBBdXRvY29tcGxldGVPcHRpb25zO1xyXG4gIEBPdXRwdXQoKSBPbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBrZXl3b3JkOiBzdHJpbmcgPSAndmFsdWUnXHJcbiAgQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuICBTZWFyY2g6IHN0cmluZyA9ICcnXHJcbiAgS2V5OiBzdHJpbmcgPSAnJ1xyXG4gXHJcbiAgQXBpOiBzdHJpbmcgPSAnaHR0cCc7XHJcbiAgVmFsdWU6IHN0cmluZyA9ICd2YWx1ZSdcclxuICBOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5OiBzdHJpbmcgPSAnJztcclxuICBtYXJrQWxsQXNUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmFsaWRhdGlvblJ1bGVzID0gW107XHJcbiAgdmFsaWRhdGlvblJ1bGVzYXN5bmMgPSBbXTtcclxuICBkYXRhU291cmNlOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgc3VnZ2VzdGlvbnMkOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhTGlzdDphbnlbXT1bXTtcclxuICBTZWxlY3RlZFZhbHVlOnN0cmluZz1cIlwiXHJcbiAgYXZhdGFySW1hZ2U6IHN0cmluZyA9ICBcIi4vc3JjL2Fzc2V0cy9pbWFnZXMvdXNlcmltZy5wbmdcIjtcclxuICB0ZXh0RGlyO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50ZXh0RGlyPXRoaXMub3B0aW9ucy5Gb3JjZURpcmVjdGlvbj09Mj8ncnRsJzonbHRyJztcclxuICAgIHRoaXMuY29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLmlzQ3JlYXRlZEJlZm9yID0gZmFsc2VcclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMuTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XHJcbiAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMuTmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5WaWV3VHlwZSlcclxuICAgICAgdGhpcy5vcHRpb25zLlZpZXdUeXBlID0gdGhpcy5nbG9iYWxTZXR0aW5ncy5WaWV3VHlwZTtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLkxhYmVsS2V5ICE9IFwiXCIpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5MYWJlbFZhbHVlID0gdGhpcy5VdGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5MYWJlbEtleSk7XHJcblxyXG4gICAgLy8gdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZSh0aGlzLm9wdGlvbnMuVmFsdWUpO1xyXG5cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLkN1c3RvbVZhbGlkYXRpb24ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgVmFsaWRhdGlvbnMgPSB0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvblxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgVmFsaWRhdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgY29uc3QgVmFsaWRhdGlvbiA9IFZhbGlkYXRpb25zW2luZGV4XTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRpb24uZnVuY3Rpb25Cb2R5KTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuSXNSZXF1aXJlZCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25SdWxlcy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMudmFsaWRhdGlvblJ1bGVzYXN5bmMpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICBcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuU2VsZWN0ZWRWYWx1ZSAhPSB1bmRlZmluZWQgJiYgdGhpcy5vcHRpb25zLlNlbGVjdGVkVmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlNlbGVjdGVkVmFsdWU9dGhpcy5vcHRpb25zLlNlbGVjdGVkVmFsdWU7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2xIb3N0Lm5nU3VibWl0LnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgaWYgKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWUgPT0gdGhpcy5TZWFyY2gmJnRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbj09ZmFsc2UpIHtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldEVycm9ycyh7IE5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXk6IHRoaXMuTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleSB9KTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmludmFsaWQ7XHJcbiAgICB9XHJcbiAgICAgIHRoaXMuZ3JvdXAubWFya0FsbEFzVG91Y2hlZCgpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IHRydWVcclxuICAgIH0pXHJcblxyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiB0aGlzLm9wdGlvbnMuVmFsaWRhdGlvblRva2VuXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgXHJcbiAgXHJcbiAgIFxyXG4gICAgXHJcbiAgICB0aGlzLnN1Z2dlc3Rpb25zJCA9IG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8c3RyaW5nPikgPT4ge1xyXG4gICAgICBvYnNlcnZlci5uZXh0KHRoaXMuU2VhcmNoKTtcclxuICAgIH0pLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgocXVlcnk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmIChxdWVyeSkge1xyXG4gICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKHRoaXMub3B0aW9ucy5RdWVyeVBhcmFtLCAgcXVlcnkpO1xyXG4gICAgICAgICAgbGV0IHJlcXVlc3RPcHRpb25zTW9kZWw9IG5ldyBSZXF1ZXN0T3B0aW9uc01vZGVsKClcclxuICAgICAgICAgIHJlcXVlc3RPcHRpb25zTW9kZWwuZGlzYWJsZUJsb2NrVUk9dHJ1ZTtcclxuICAgICAgICAgIHJlcXVlc3RPcHRpb25zTW9kZWwuZGlzYWJsZVN1Y2Nlc3NOb3RpZmljYXRpb249dHJ1ZTtcclxuICAgICAgICAgIC8vIHVzaW5nIGdpdGh1YiBwdWJsaWMgYXBpIHRvIGdldCB1c2VycyBieSBuYW1lXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZ2V0KHRoaXMub3B0aW9ucy5BY3Rpb25VUkwscGFyYW1zLG51bGwscmVxdWVzdE9wdGlvbnNNb2RlbClcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEgYXMgQXR0cmlidXRlW10gfHwgW10pLFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4gbm9vcCwgZXJyID0+IHtcclxuICAgICAgICAgICAgICAvLyBpbiBjYXNlIG9mIGh0dHAgZXJyb3JcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyciAmJiBlcnIubWVzc2FnZSB8fCAnU29tZXRoaW5nIGdvZXMgd3JvbmcnO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiBcclxuICAgICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnNldEF0dHJpYnV0ZUZvckNvbnRyb2wodGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICByZXNldEVycm9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuUmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG5cclxuICBnZXRFcnJvclZhbGlkYXRpb24oRXJyb3JMaXN0KSB7XHJcblxyXG4gICAgaWYgKHRoaXMubWFya0FsbEFzVG91Y2hlZCAmJiB0aGlzLmdyb3VwLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5zaG93R2xvYmFsRXJyb3IoKVxyXG4gICAgICB0aGlzLm1hcmtBbGxBc1RvdWNoZWQgPSBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmNvbnRyb2xVdGlsaXR5LmdldEVycm9yVmFsaWRhdGlvbk1hc3NhZ2UoRXJyb3JMaXN0LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQ29weUlucHV0TWVzc2FnZShpbnB1dEVsZW1lbnQpXHJcbiAgfVxyXG5cclxuXHJcbiAgc2VsZWN0RXZlbnQoaXRlbSkge1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQWxsb3dOZXdTZWxlY3Rpb24gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAodHlwZW9mIChpdGVtKSA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUoaXRlbSk7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IEF1dG9jb21wbGV0ZU1vZGVsID0gbmV3IEF1dG9jb21wbGV0ZURUTygpO1xyXG4gICAgICAgIEF1dG9jb21wbGV0ZU1vZGVsLnZhbHVlID0gaXRlbTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKEF1dG9jb21wbGV0ZU1vZGVsKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfSAgXHJcbiAgICBlbHNlIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlID09IGl0ZW0udmFsdWUpIHtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldEVycm9ycyh7IE5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXk6IHRoaXMuTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleSB9KTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmludmFsaWQ7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShpdGVtKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG4gICAgICAgIGxldCBvcmlnaW5hbFZhbHVlID10aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuUGF0Y2hGdW5jdGlvbiAmJiB0aGlzLm9wdGlvbnMuUGF0Y2hQYXRoICYmIHRoaXMuZ3JvdXAuZ2V0KHRoaXMub3B0aW9ucy5OYW1lKS52YWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5jb250cm9sVXRpbGl0eS5wYXRjaENvbnRyb2xWYWx1ZShvcmlnaW5hbFZhbHVlLHRoaXMub3B0aW9ucy5QYXRjaEZ1bmN0aW9uICx0aGlzLm9wdGlvbnMuUGF0Y2hQYXRoKVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLk9uQ2hhbmdlLmVtaXQodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZSlcclxuICAgICAgICAgLy9Vc2UgdGhpcyBsaW5lIHRvIGVuYWJsZSB0d28gd2F5IGJpbmRpbmcuXHJcbiAgICAgICAgIHRoaXMub3B0aW9ucy5WYWx1ZT0gdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25DaGFuZ2VTZWFyY2goc2VhcmNoOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuU2VhcmNoPXNlYXJjaDtcclxuICAgIHRoaXMuU2VsZWN0ZWRWYWx1ZT1cIlwiO1xyXG4gICAgYXdhaXQgdGhpcy5zdWdnZXN0aW9ucyQuc3Vic2NyaWJlKChyZXN1bHQpPT57XHJcbiAgICAgIGlmICgocmVzdWx0PT1udWxsfHxyZXN1bHQubGVuZ3RoPT0wfHxyZXN1bHQubGVuZ3RoPT0wKSYmdGhpcy5vcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uPT10cnVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhTGlzdCA9IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAga2V5OjAsXHJcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLlNlYXJjaFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIF1cclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLmRhdGFMaXN0PXJlc3VsdFxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgLy8gb25Gb2N1c2VkKGUpIHtcclxuICAvLyAgIC8vIGRvIHNvbWV0aGluZ1xyXG4gIC8vIH1cclxuXHJcbiBcclxuICAvLyBvbkJsdXIoVmFsdWUpIHtcclxuICAvLyAgIGlmICh0aGlzLm9wdGlvbnMuQWxsb3dOZXdTZWxlY3Rpb24gPT0gdHJ1ZSkge1xyXG5cclxuICAvLyAgICAgaWYgKHR5cGVvZiAoVmFsdWUpID09ICdvYmplY3QnKSB7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShWYWx1ZSk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuXHJcbiAgLy8gICAgIH1cclxuICAvLyAgICAgZWxzZSB7XHJcbiAgLy8gICAgICAgbGV0IEF1dG9jb21wbGV0ZU1vZGVsID0gbmV3IEF1dG9jb21wbGV0ZURUTygpO1xyXG4gIC8vICAgICAgIEF1dG9jb21wbGV0ZU1vZGVsLnZhbHVlID0gVmFsdWU7XHJcbiAgLy8gICAgICAgbGV0IG1vZGVsID0gbmV3IFR5cGVhaGVhZE1hdGNoKEF1dG9jb21wbGV0ZU1vZGVsLFZhbHVlKTtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKG1vZGVsKTtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG5cclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSBcclxuXHJcbiAgLy8gICBlbHNlIHtcclxuXHJcbiAgLy8gICAgIGlmICh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlID09IFZhbHVlKSB7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRFcnJvcnMoeyBOZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5OiB0aGlzLk5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXkgfSk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgLy8gICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5pbnZhbGlkO1xyXG4gIC8vICAgICAgIHJldHVybjtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vICB9XHJcblxyXG5cclxuICAvLyBoYW5kbGVSZXN1bHRTZWxlY3RlZChyZXN1bHQpIHtcclxuICBcclxuICAvLyAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUocmVzdWx0KTtcclxuICAvLyAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcbiAgLy8gICB0aGlzLk9uQ2hhbmdlLmVtaXQodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZSlcclxuICAvLyAgIHRoaXMuU2VhcmNoID0gdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZS52YWx1ZVxyXG4gICBcclxuXHJcblxyXG4gIC8vIH1cclxuIFxyXG4gIC8vRXh0ZXJuYWwgTWV0aG9kXHJcbiAgUmVtb3ZlUmVxdWlyZWRWYWxpZGF0aW9uID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24odGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbCwgdGhpcy52YWxpZGF0aW9uUnVsZXMsIHRoaXMub3B0aW9ucylcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LkFkZFJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuUmVtb3ZlQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBBZGRDdXN0b21WYWxpZGF0aW9uID0gKEN1c3RvbVZhbGlkYXRpb24pID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkQ3VzdG9tVmFsaWRhdGlvbih0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgQ3VzdG9tVmFsaWRhdGlvbilcclxuICB9XHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBJc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Jc1ZhbGlkKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wpXHJcbiAgfVxyXG5cclxufVxyXG5cclxuXHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBiYnNmLWNvbnRyb2wgYmJzZi1hdXRvY29tcGxldGUtdGV4dGJveFwiIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cIihvcHRpb25zLlZpZXdUeXBlPT0xKT8nYmJzZi12ZXJ0aWNhbCc6J2Jic2YtaG9yaXpvbnRhbCdcIj5cclxuICAgIDwhLS1sYWJlbC0tPlxyXG4gICAgPGxhYmVsICpuZ0lmPVwiIW9wdGlvbnMuSGlkZUxhYmVsXCIgY2xhc3M9XCJiYnNmLWxhYmVsIHt7b3B0aW9ucy5MYWJlbEV4dHJhQ2xhc3Nlc319XCI+XHJcbiAgICAgIHt7b3B0aW9ucy5MYWJlbFZhbHVlfX1cclxuICAgICAgPCEtLUFzdGVyaXNrLS0+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiKG9wdGlvbnMuU2hvd0FzdGVyaXNrJiZvcHRpb25zLklzUmVxdWlyZWQpfHwob3B0aW9ucy5Jc1JlcXVpcmVkKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj4qPC9zcGFuPlxyXG4gICAgPC9sYWJlbD5cclxuICAgIDwhLS1JbnB1dCBjb250YWluZXItLT5cclxuICAgIDxkaXYgY2xhc3M9XCJiYnNmLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0taW5wdXQtLT5cclxuICAgICAgPG5nLWF1dG9jb21wbGV0ZSBjbGFzcz1cImZvcm0tY29udHJvbCAge3tvcHRpb25zLkV4dHJhQ2xhc3Nlc319XCIgKm5nSWY9XCIhb3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvblwiIFtkYXRhXT1cImRhdGFMaXN0XCIgW2luaXRpYWxWYWx1ZV09XCJTZWxlY3RlZFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoS2V5d29yZF09XCJrZXl3b3JkXCIgcGxhY2Vob2xkZXI9XCJ7e29wdGlvbnMuUGxhY2Vob2xkZXJ9fVwiIChzZWxlY3RlZCk9J3NlbGVjdEV2ZW50KCRldmVudCknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlZCk9J29uQ2hhbmdlU2VhcmNoKCRldmVudCknIGhpc3RvcnlJZGVudGlmaWVyPVwiZGF0YUxpc3RcIiBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpcl09XCJ0ZXh0RGlyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ7e29wdGlvbnMuTmFtZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiZW1haWwtZXJyb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaW52YWxpZD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cIkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmludmFsaWQgJiYgQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudG91Y2hlZFwiPlxyXG4gICAgICA8L25nLWF1dG9jb21wbGV0ZT5cclxuXHJcbiAgICAgIDxuZy1hdXRvY29tcGxldGUgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tvcHRpb25zLkV4dHJhQ2xhc3Nlc319XCIgKm5nSWY9XCJvcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uXCIgW2RhdGFdPVwiZGF0YUxpc3RcIiBbaW5pdGlhbFZhbHVlXT1cIlNlbGVjdGVkVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hLZXl3b3JkXT1cImtleXdvcmRcIiBwbGFjZWhvbGRlcj1cInt7b3B0aW9ucy5QbGFjZWhvbGRlcn19XCIgKHNlbGVjdGVkKT0nc2VsZWN0RXZlbnQoJGV2ZW50KSdcclxuICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2VkKT0nb25DaGFuZ2VTZWFyY2goJGV2ZW50KScgaGlzdG9yeUlkZW50aWZpZXI9XCJkYXRhTGlzdFwiIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlyXT1cInRleHREaXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInt7b3B0aW9ucy5OYW1lfX1cIiBhcmlhLWRlc2NyaWJlZGJ5PVwiZW1haWwtZXJyb3JcIiBhcmlhLWludmFsaWQ9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJBdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5pbnZhbGlkICYmIEF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnRvdWNoZWRcIj5cclxuICAgICAgPC9uZy1hdXRvY29tcGxldGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbT5cclxuICAgICAgICA8aW1nICpuZ0lmPVwib3B0aW9ucy5JdGVtV2l0aEltYWdlXCIgc3JjPVwie3soaXRlbS5pbWFnZT9pdGVtLmltYWdlOmF2YXRhckltYWdlKX19XCIgLz5cclxuICAgICAgICA8YSBbaW5uZXJIVE1MXT1cIml0ZW0udmFsdWVcIj48L2E+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic3VidGV4dC1jb250YWluZXJcIj5cclxuICAgIDwhLS0gTGFiZWxEZXNjcmlwdGlvbi0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImJic2YtY29udHJvbC1kZXNjXCIgKm5nSWY9XCJvcHRpb25zLkxhYmVsRGVzY3JpcHRpb24hPW51bGxcIj57e29wdGlvbnMuTGFiZWxEZXNjcmlwdGlvbn19PC9kaXY+XHJcbiAgICA8IS0tIHJlcXVpcmVkVGV4dC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImJic2YtdmFsaWRhdGlvblwiICpuZ0lmPVwiKEF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmludmFsaWQgJiYgQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudG91Y2hlZClcIj5cclxuICAgICAge3tnZXRFcnJvclZhbGlkYXRpb24oQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuZXJyb3JzfGtleXZhbHVlKX19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiKGdyb3VwLnZhbGlkJiZncm91cC5kaXJ0eSYmZ3JvdXAudG91Y2hlZCApfHwoZ3JvdXAudW50b3VjaGVkJiZncm91cC5pbnZhbGlkJiZncm91cC5kaXJ0eSlcIj4ge3tyZXNldEVycm9yKCl9fSA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=