@bnsights/bbsf-controls 1.0.87 → 1.0.89

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 (218) hide show
  1. package/README.md +6 -2
  2. package/bnsights-bbsf-controls-1.0.89.tgz +0 -0
  3. package/bnsights-bbsf-controls.d.ts +1 -1
  4. package/bnsights-bbsf-controls.metadata.json +1 -0
  5. package/bundles/bnsights-bbsf-controls.umd.js +9454 -0
  6. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -0
  7. package/esm2015/bnsights-bbsf-controls.js +6 -0
  8. package/esm2015/lib/Shared/Directives/template-name.directive.js +18 -0
  9. package/esm2015/lib/Shared/Pipes/bbsf-date-time.pipe.js +20 -0
  10. package/esm2015/lib/Shared/Pipes/bbsf-date.pipe.js +20 -0
  11. package/esm2015/lib/Shared/components/app-base-component.js +202 -0
  12. package/esm2015/lib/Shared/components/ng-tag-input.js +323 -0
  13. package/esm2015/lib/Shared/default_intl.js +29 -0
  14. package/esm2015/lib/Shared/services/ControlUtility.js +164 -0
  15. package/esm2015/lib/Shared/services/GlobalSettings.service.js +28 -0
  16. package/esm2015/lib/Shared/services/OnPagingFiltersChange.service.js +22 -0
  17. package/esm2015/lib/Shared/services/render-component-service.service.js +30 -0
  18. package/esm2015/lib/Shared/services/validationErrorMassage.service.js +137 -0
  19. package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +249 -0
  20. package/esm2015/lib/controls/Calendar/Calendar.component.js +177 -0
  21. package/esm2015/lib/controls/CheckBox/CheckBox.component.js +115 -0
  22. package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +139 -0
  23. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +221 -0
  24. package/esm2015/lib/controls/DropdownList/DropdownList.component.js +179 -0
  25. package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +451 -0
  26. package/esm2015/lib/controls/Form/Form.component.js +106 -0
  27. package/esm2015/lib/controls/HtmlEditor/HtmlEditor.component.js +223 -0
  28. package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +347 -0
  29. package/esm2015/lib/controls/MapAutoComplete/MapAutoComplete.component.js +325 -0
  30. package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +429 -0
  31. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +430 -0
  32. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +429 -0
  33. package/esm2015/lib/controls/Paging/JwPagination.component.js +129 -0
  34. package/esm2015/lib/controls/Paging/Paging.component.js +312 -0
  35. package/esm2015/lib/controls/Phone/Phone.component.js +124 -0
  36. package/esm2015/lib/controls/ProfileImageUploader/ProfileImageUploader.component.js +349 -0
  37. package/esm2015/lib/controls/RadioButton/RadioButton.component.js +108 -0
  38. package/esm2015/lib/controls/Recaptcha/Recaptcha.component.js +132 -0
  39. package/esm2015/lib/controls/Repeater/repeater/repeater.component.js +117 -0
  40. package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +748 -0
  41. package/esm2015/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.js +19 -0
  42. package/esm2015/lib/controls/Repeater/repeater-table/repeater-table.component.js +108 -0
  43. package/esm2015/lib/controls/TagsInput/TagsInput.component.js +269 -0
  44. package/esm2015/lib/controls/TextArea/TextArea.component.js +192 -0
  45. package/esm2015/lib/controls/TextBox/TextBox.component.js +263 -0
  46. package/esm2015/lib/controls/Toggleslide/toggleslide.component.js +84 -0
  47. package/esm2015/lib/controls/bbsf-controls.module.js +239 -0
  48. package/esm2015/lib/controls/page-header-component/page-header-component.component.js +32 -0
  49. package/fesm2015/{bnsights-bbsf-controls.mjs → bnsights-bbsf-controls.js} +1511 -1630
  50. package/fesm2015/bnsights-bbsf-controls.js.map +1 -0
  51. package/lib/Shared/Directives/template-name.directive.d.ts +0 -3
  52. package/lib/Shared/Pipes/bbsf-date-time.pipe.d.ts +0 -3
  53. package/lib/Shared/Pipes/bbsf-date.pipe.d.ts +0 -3
  54. package/lib/Shared/components/app-base-component.d.ts +1 -3
  55. package/lib/Shared/components/ng-tag-input.d.ts +0 -3
  56. package/lib/Shared/default_intl.d.ts +0 -3
  57. package/lib/Shared/services/ControlUtility.d.ts +0 -3
  58. package/lib/Shared/services/GlobalSettings.service.d.ts +0 -3
  59. package/lib/Shared/services/OnPagingFiltersChange.service.d.ts +0 -3
  60. package/lib/Shared/services/render-component-service.service.d.ts +0 -3
  61. package/lib/Shared/services/validationErrorMassage.service.d.ts +0 -3
  62. package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +0 -3
  63. package/lib/controls/Calendar/Calendar.component.d.ts +5 -9
  64. package/lib/controls/CheckBox/CheckBox.component.d.ts +0 -3
  65. package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +0 -3
  66. package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +0 -3
  67. package/lib/controls/DropdownList/DropdownList.component.d.ts +0 -3
  68. package/lib/controls/FileUplaod/FileUplaod.component.d.ts +0 -3
  69. package/lib/controls/Form/Form.component.d.ts +0 -3
  70. package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +0 -3
  71. package/lib/controls/ImageUpload/ImageUpload.component.d.ts +0 -3
  72. package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +0 -3
  73. package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +0 -3
  74. package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +0 -3
  75. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +0 -3
  76. package/lib/controls/Paging/JwPagination.component.d.ts +0 -3
  77. package/lib/controls/Paging/Paging.component.d.ts +0 -3
  78. package/lib/controls/Phone/Phone.component.d.ts +0 -3
  79. package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +0 -3
  80. package/lib/controls/RadioButton/RadioButton.component.d.ts +0 -3
  81. package/lib/controls/Recaptcha/Recaptcha.component.d.ts +0 -3
  82. package/lib/controls/Repeater/repeater/repeater.component.d.ts +0 -3
  83. package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +0 -3
  84. package/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.d.ts +0 -3
  85. package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +0 -3
  86. package/lib/controls/TagsInput/TagsInput.component.d.ts +0 -3
  87. package/lib/controls/TextArea/TextArea.component.d.ts +0 -3
  88. package/lib/controls/TextBox/TextBox.component.d.ts +0 -3
  89. package/lib/controls/Toggleslide/toggleslide.component.d.ts +0 -3
  90. package/lib/controls/bbsf-controls.module.d.ts +0 -74
  91. package/lib/controls/page-header-component/page-header-component.component.d.ts +0 -3
  92. package/package.json +15 -27
  93. package/bnsights-bbsf-controls-1.0.87.tgz +0 -0
  94. package/esm2020/bnsights-bbsf-controls.mjs +0 -5
  95. package/esm2020/lib/Shared/Directives/template-name.directive.mjs +0 -18
  96. package/esm2020/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +0 -21
  97. package/esm2020/lib/Shared/Pipes/bbsf-date.pipe.mjs +0 -21
  98. package/esm2020/lib/Shared/components/app-base-component.mjs +0 -198
  99. package/esm2020/lib/Shared/components/ng-tag-input.mjs +0 -336
  100. package/esm2020/lib/Shared/default_intl.mjs +0 -29
  101. package/esm2020/lib/Shared/services/ControlUtility.mjs +0 -162
  102. package/esm2020/lib/Shared/services/GlobalSettings.service.mjs +0 -30
  103. package/esm2020/lib/Shared/services/OnPagingFiltersChange.service.mjs +0 -24
  104. package/esm2020/lib/Shared/services/render-component-service.service.mjs +0 -30
  105. package/esm2020/lib/Shared/services/validationErrorMassage.service.mjs +0 -137
  106. package/esm2020/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +0 -245
  107. package/esm2020/lib/controls/Calendar/Calendar.component.mjs +0 -172
  108. package/esm2020/lib/controls/CheckBox/CheckBox.component.mjs +0 -114
  109. package/esm2020/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +0 -136
  110. package/esm2020/lib/controls/DateTimePicker/DateTimePicker.component.mjs +0 -217
  111. package/esm2020/lib/controls/DropdownList/DropdownList.component.mjs +0 -179
  112. package/esm2020/lib/controls/FileUplaod/FileUplaod.component.mjs +0 -453
  113. package/esm2020/lib/controls/Form/Form.component.mjs +0 -101
  114. package/esm2020/lib/controls/HtmlEditor/HtmlEditor.component.mjs +0 -223
  115. package/esm2020/lib/controls/ImageUpload/ImageUpload.component.mjs +0 -350
  116. package/esm2020/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +0 -325
  117. package/esm2020/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +0 -427
  118. package/esm2020/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +0 -427
  119. package/esm2020/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +0 -426
  120. package/esm2020/lib/controls/Paging/JwPagination.component.mjs +0 -156
  121. package/esm2020/lib/controls/Paging/Paging.component.mjs +0 -312
  122. package/esm2020/lib/controls/Phone/Phone.component.mjs +0 -124
  123. package/esm2020/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +0 -354
  124. package/esm2020/lib/controls/RadioButton/RadioButton.component.mjs +0 -106
  125. package/esm2020/lib/controls/Recaptcha/Recaptcha.component.mjs +0 -132
  126. package/esm2020/lib/controls/Repeater/repeater/repeater.component.mjs +0 -125
  127. package/esm2020/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +0 -750
  128. package/esm2020/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +0 -21
  129. package/esm2020/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +0 -108
  130. package/esm2020/lib/controls/TagsInput/TagsInput.component.mjs +0 -268
  131. package/esm2020/lib/controls/TextArea/TextArea.component.mjs +0 -192
  132. package/esm2020/lib/controls/TextBox/TextBox.component.mjs +0 -266
  133. package/esm2020/lib/controls/Toggleslide/toggleslide.component.mjs +0 -84
  134. package/esm2020/lib/controls/bbsf-controls.module.mjs +0 -401
  135. package/esm2020/lib/controls/page-header-component/page-header-component.component.mjs +0 -37
  136. package/fesm2015/bnsights-bbsf-controls.mjs.map +0 -1
  137. package/fesm2020/bnsights-bbsf-controls.mjs +0 -8938
  138. package/fesm2020/bnsights-bbsf-controls.mjs.map +0 -1
  139. /package/{esm2020/lib/Shared/Enums/CalendarView.mjs → esm2015/lib/Shared/Enums/CalendarView.js} +0 -0
  140. /package/{esm2020/lib/Shared/Enums/ControlLayout.mjs → esm2015/lib/Shared/Enums/ControlLayout.js} +0 -0
  141. /package/{esm2020/lib/Shared/Enums/Countries.mjs → esm2015/lib/Shared/Enums/Countries.js} +0 -0
  142. /package/{esm2020/lib/Shared/Enums/Enums.mjs → esm2015/lib/Shared/Enums/Enums.js} +0 -0
  143. /package/{esm2020/lib/Shared/Enums/FileType.mjs → esm2015/lib/Shared/Enums/FileType.js} +0 -0
  144. /package/{esm2020/lib/Shared/Enums/FilterType.mjs → esm2015/lib/Shared/Enums/FilterType.js} +0 -0
  145. /package/{esm2020/lib/Shared/Enums/FontSize.mjs → esm2015/lib/Shared/Enums/FontSize.js} +0 -0
  146. /package/{esm2020/lib/Shared/Enums/ForceDirection.mjs → esm2015/lib/Shared/Enums/ForceDirection.js} +0 -0
  147. /package/{esm2020/lib/Shared/Enums/IconPosition.mjs → esm2015/lib/Shared/Enums/IconPosition.js} +0 -0
  148. /package/{esm2020/lib/Shared/Enums/ImageType.mjs → esm2015/lib/Shared/Enums/ImageType.js} +0 -0
  149. /package/{esm2020/lib/Shared/Enums/InputType.mjs → esm2015/lib/Shared/Enums/InputType.js} +0 -0
  150. /package/{esm2020/lib/Shared/Enums/Insert.mjs → esm2015/lib/Shared/Enums/Insert.js} +0 -0
  151. /package/{esm2020/lib/Shared/Enums/LanguageMode.mjs → esm2015/lib/Shared/Enums/LanguageMode.js} +0 -0
  152. /package/{esm2020/lib/Shared/Enums/LanguageValidation.mjs → esm2015/lib/Shared/Enums/LanguageValidation.js} +0 -0
  153. /package/{esm2020/lib/Shared/Enums/Misc.mjs → esm2015/lib/Shared/Enums/Misc.js} +0 -0
  154. /package/{esm2020/lib/Shared/Enums/PagingActionMode.mjs → esm2015/lib/Shared/Enums/PagingActionMode.js} +0 -0
  155. /package/{esm2020/lib/Shared/Enums/Para.mjs → esm2015/lib/Shared/Enums/Para.js} +0 -0
  156. /package/{esm2020/lib/Shared/Enums/PickerType.mjs → esm2015/lib/Shared/Enums/PickerType.js} +0 -0
  157. /package/{esm2020/lib/Shared/Enums/SelectMode.mjs → esm2015/lib/Shared/Enums/SelectMode.js} +0 -0
  158. /package/{esm2020/lib/Shared/Enums/StartView.mjs → esm2015/lib/Shared/Enums/StartView.js} +0 -0
  159. /package/{esm2020/lib/Shared/Enums/Style.mjs → esm2015/lib/Shared/Enums/Style.js} +0 -0
  160. /package/{esm2020/lib/Shared/Enums/StyleConfirmationMode.mjs → esm2015/lib/Shared/Enums/StyleConfirmationMode.js} +0 -0
  161. /package/{esm2020/lib/Shared/Enums/TagInputView.mjs → esm2015/lib/Shared/Enums/TagInputView.js} +0 -0
  162. /package/{esm2020/lib/Shared/Enums/menu-list-enum.mjs → esm2015/lib/Shared/Enums/menu-list-enum.js} +0 -0
  163. /package/{esm2020/lib/Shared/Models/Attribute.mjs → esm2015/lib/Shared/Models/Attribute.js} +0 -0
  164. /package/{esm2020/lib/Shared/Models/AutocompleteDTO.mjs → esm2015/lib/Shared/Models/AutocompleteDTO.js} +0 -0
  165. /package/{esm2020/lib/Shared/Models/AutocompleteOptions.mjs → esm2015/lib/Shared/Models/AutocompleteOptions.js} +0 -0
  166. /package/{esm2020/lib/Shared/Models/CalendarEventDTO.mjs → esm2015/lib/Shared/Models/CalendarEventDTO.js} +0 -0
  167. /package/{esm2020/lib/Shared/Models/CalendarOptions.mjs → esm2015/lib/Shared/Models/CalendarOptions.js} +0 -0
  168. /package/{esm2020/lib/Shared/Models/CancelDTO.mjs → esm2015/lib/Shared/Models/CancelDTO.js} +0 -0
  169. /package/{esm2020/lib/Shared/Models/CaptchaStyle.mjs → esm2015/lib/Shared/Models/CaptchaStyle.js} +0 -0
  170. /package/{esm2020/lib/Shared/Models/CheckBoxOptions.mjs → esm2015/lib/Shared/Models/CheckBoxOptions.js} +0 -0
  171. /package/{esm2020/lib/Shared/Models/ConfirmationModalOptions.mjs → esm2015/lib/Shared/Models/ConfirmationModalOptions.js} +0 -0
  172. /package/{esm2020/lib/Shared/Models/ControlOptionsBase.mjs → esm2015/lib/Shared/Models/ControlOptionsBase.js} +0 -0
  173. /package/{esm2020/lib/Shared/Models/CustomValidation.mjs → esm2015/lib/Shared/Models/CustomValidation.js} +0 -0
  174. /package/{esm2020/lib/Shared/Models/DropdownListItem.mjs → esm2015/lib/Shared/Models/DropdownListItem.js} +0 -0
  175. /package/{esm2020/lib/Shared/Models/DropdownOptions.mjs → esm2015/lib/Shared/Models/DropdownOptions.js} +0 -0
  176. /package/{esm2020/lib/Shared/Models/EditPersonalImage.mjs → esm2015/lib/Shared/Models/EditPersonalImage.js} +0 -0
  177. /package/{esm2020/lib/Shared/Models/EnglishArabicDTO.mjs → esm2015/lib/Shared/Models/EnglishArabicDTO.js} +0 -0
  178. /package/{esm2020/lib/Shared/Models/FileDTO.mjs → esm2015/lib/Shared/Models/FileDTO.js} +0 -0
  179. /package/{esm2020/lib/Shared/Models/FileUploadModel.mjs → esm2015/lib/Shared/Models/FileUploadModel.js} +0 -0
  180. /package/{esm2020/lib/Shared/Models/FileUploadOptions.mjs → esm2015/lib/Shared/Models/FileUploadOptions.js} +0 -0
  181. /package/{esm2020/lib/Shared/Models/FilterItem.mjs → esm2015/lib/Shared/Models/FilterItem.js} +0 -0
  182. /package/{esm2020/lib/Shared/Models/FormOptions.mjs → esm2015/lib/Shared/Models/FormOptions.js} +0 -0
  183. /package/{esm2020/lib/Shared/Models/HtmlEditorOptions.mjs → esm2015/lib/Shared/Models/HtmlEditorOptions.js} +0 -0
  184. /package/{esm2020/lib/Shared/Models/ImageUploadOptions.mjs → esm2015/lib/Shared/Models/ImageUploadOptions.js} +0 -0
  185. /package/{esm2020/lib/Shared/Models/MapAutoCompleteOptions.mjs → esm2015/lib/Shared/Models/MapAutoCompleteOptions.js} +0 -0
  186. /package/{esm2020/lib/Shared/Models/MapAutocompleteDTO.mjs → esm2015/lib/Shared/Models/MapAutocompleteDTO.js} +0 -0
  187. /package/{esm2020/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs → esm2015/lib/Shared/Models/MultiLingualHtmlEditorOptions.js} +0 -0
  188. /package/{esm2020/lib/Shared/Models/MultiLingualTextAreaOptions.mjs → esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js} +0 -0
  189. /package/{esm2020/lib/Shared/Models/MultilingualControlOptionsBase.mjs → esm2015/lib/Shared/Models/MultilingualControlOptionsBase.js} +0 -0
  190. /package/{esm2020/lib/Shared/Models/MultilingualTextBoxOptions.mjs → esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js} +0 -0
  191. /package/{esm2020/lib/Shared/Models/MultipleFileUploadModel.mjs → esm2015/lib/Shared/Models/MultipleFileUploadModel.js} +0 -0
  192. /package/{esm2020/lib/Shared/Models/PagingDTO.mjs → esm2015/lib/Shared/Models/PagingDTO.js} +0 -0
  193. /package/{esm2020/lib/Shared/Models/PagingOptions.mjs → esm2015/lib/Shared/Models/PagingOptions.js} +0 -0
  194. /package/{esm2020/lib/Shared/Models/PagingPayload.mjs → esm2015/lib/Shared/Models/PagingPayload.js} +0 -0
  195. /package/{esm2020/lib/Shared/Models/PhoneOptions.mjs → esm2015/lib/Shared/Models/PhoneOptions.js} +0 -0
  196. /package/{esm2020/lib/Shared/Models/ProfileImageUploadOptions.mjs → esm2015/lib/Shared/Models/ProfileImageUploadOptions.js} +0 -0
  197. /package/{esm2020/lib/Shared/Models/ProfilePictureDTO.mjs → esm2015/lib/Shared/Models/ProfilePictureDTO.js} +0 -0
  198. /package/{esm2020/lib/Shared/Models/RadioButtonItem.mjs → esm2015/lib/Shared/Models/RadioButtonItem.js} +0 -0
  199. /package/{esm2020/lib/Shared/Models/RadioButtonOptions.mjs → esm2015/lib/Shared/Models/RadioButtonOptions.js} +0 -0
  200. /package/{esm2020/lib/Shared/Models/RangeNumber.mjs → esm2015/lib/Shared/Models/RangeNumber.js} +0 -0
  201. /package/{esm2020/lib/Shared/Models/Recaptcha.mjs → esm2015/lib/Shared/Models/Recaptcha.js} +0 -0
  202. /package/{esm2020/lib/Shared/Models/RecaptchaOptions.mjs → esm2015/lib/Shared/Models/RecaptchaOptions.js} +0 -0
  203. /package/{esm2020/lib/Shared/Models/RepeaterField.mjs → esm2015/lib/Shared/Models/RepeaterField.js} +0 -0
  204. /package/{esm2020/lib/Shared/Models/RepeaterOptions.mjs → esm2015/lib/Shared/Models/RepeaterOptions.js} +0 -0
  205. /package/{esm2020/lib/Shared/Models/SaveDTO.mjs → esm2015/lib/Shared/Models/SaveDTO.js} +0 -0
  206. /package/{esm2020/lib/Shared/Models/TagsInputDTO.mjs → esm2015/lib/Shared/Models/TagsInputDTO.js} +0 -0
  207. /package/{esm2020/lib/Shared/Models/TagsInputOptions.mjs → esm2015/lib/Shared/Models/TagsInputOptions.js} +0 -0
  208. /package/{esm2020/lib/Shared/Models/TextAreaOptions.mjs → esm2015/lib/Shared/Models/TextAreaOptions.js} +0 -0
  209. /package/{esm2020/lib/Shared/Models/TextBoxOptions.mjs → esm2015/lib/Shared/Models/TextBoxOptions.js} +0 -0
  210. /package/{esm2020/lib/Shared/Models/ToggleslideOptions.mjs → esm2015/lib/Shared/Models/ToggleslideOptions.js} +0 -0
  211. /package/{esm2020/lib/Shared/Models/UploadPersonalImage.mjs → esm2015/lib/Shared/Models/UploadPersonalImage.js} +0 -0
  212. /package/{esm2020/lib/Shared/Models/bread-crumb.mjs → esm2015/lib/Shared/Models/bread-crumb.js} +0 -0
  213. /package/{esm2020/lib/Shared/Models/control-filter-Item.mjs → esm2015/lib/Shared/Models/control-filter-Item.js} +0 -0
  214. /package/{esm2020/lib/Shared/Models/datePickerOptions.mjs → esm2015/lib/Shared/Models/datePickerOptions.js} +0 -0
  215. /package/{esm2020/lib/Shared/Models/filter-options.mjs → esm2015/lib/Shared/Models/filter-options.js} +0 -0
  216. /package/{esm2020/lib/Shared/Models/page-header-options.mjs → esm2015/lib/Shared/Models/page-header-options.js} +0 -0
  217. /package/{esm2020/lib/Shared/config/environment.mjs → esm2015/lib/Shared/config/environment.js} +0 -0
  218. /package/{esm2020/public-api.mjs → esm2015/public-api.js} +0 -0
@@ -0,0 +1,30 @@
1
+ import { ComponentFactoryResolver, Injectable } from "@angular/core";
2
+ export class RenderComponentService {
3
+ constructor(componentFactoryResolver) {
4
+ this.componentFactoryResolver = componentFactoryResolver;
5
+ }
6
+ renderDynamicComponent(viewContainerRef, component, group, options, size = 0) {
7
+ let factory = this.componentFactoryResolver.resolveComponentFactory(component);
8
+ const componentRef = viewContainerRef.createComponent(factory);
9
+ componentRef.instance.group = group;
10
+ componentRef.instance.options = options;
11
+ if (size > 0) {
12
+ let htmlElement = componentRef.hostView.rootNodes[0];
13
+ // `element` is the element you want to wrap
14
+ var parent = htmlElement.parentNode;
15
+ var wrapper = document.createElement('div');
16
+ wrapper.className = `col-md-${size}`;
17
+ // set the wrapper as child (instead of the element)
18
+ parent.replaceChild(wrapper, htmlElement);
19
+ // set element as child of wrapper
20
+ wrapper.appendChild(htmlElement);
21
+ }
22
+ }
23
+ }
24
+ RenderComponentService.decorators = [
25
+ { type: Injectable }
26
+ ];
27
+ RenderComponentService.ctorParameters = () => [
28
+ { type: ComponentFactoryResolver }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWNvbXBvbmVudC1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvU2hhcmVkL3NlcnZpY2VzL3JlbmRlci1jb21wb25lbnQtc2VydmljZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSx3QkFBd0IsRUFBbUIsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQU01SCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLFlBQXFCLHdCQUFrRDtRQUFsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQ3ZFLENBQUM7SUFFRCxzQkFBc0IsQ0FBSSxnQkFBa0MsRUFBRSxTQUFjLEVBQUUsS0FBZ0IsRUFBRSxPQUFZLEVBQUUsT0FBZSxDQUFDO1FBQzVILElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBSSxTQUFTLENBQUMsQ0FBQTtRQUNqRixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUksT0FBTyxDQUFRLENBQUM7UUFDekUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN4QyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDWixJQUFJLFdBQVcsR0FBSSxZQUFZLENBQUMsUUFBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQzlGLDRDQUE0QztZQUM1QyxJQUFJLE1BQU0sR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3BDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxVQUFVLElBQUksRUFBRSxDQUFBO1lBQ3BDLG9EQUFvRDtZQUNwRCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMxQyxrQ0FBa0M7WUFDbEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNsQztJQUdILENBQUM7OztZQXhCRixVQUFVOzs7WUFMTyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRW1iZWRkZWRWaWV3UmVmLCBJbmplY3RhYmxlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5cclxuXHJcbiAgQEluamVjdGFibGUoKVxyXG4gIGV4cG9ydCBjbGFzcyBSZW5kZXJDb21wb25lbnRTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcmVuZGVyRHluYW1pY0NvbXBvbmVudDxUPih2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBjb21wb25lbnQ6IGFueSwgZ3JvdXA6IEZvcm1Hcm91cCwgb3B0aW9uczogYW55LCBzaXplOiBudW1iZXIgPSAwKSB7XHJcbiAgICAgIGxldCBmYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3Rvcnk8VD4oY29tcG9uZW50KVxyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxUPihmYWN0b3J5KSBhcyBhbnk7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5ncm91cCA9IGdyb3VwO1xyXG4gICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgIGlmIChzaXplID4gMCkge1xyXG4gICAgICAgIGxldCBodG1sRWxlbWVudCA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAvLyBgZWxlbWVudGAgaXMgdGhlIGVsZW1lbnQgeW91IHdhbnQgdG8gd3JhcFxyXG4gICAgICAgIHZhciBwYXJlbnQgPSBodG1sRWxlbWVudC5wYXJlbnROb2RlO1xyXG4gICAgICAgIHZhciB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgd3JhcHBlci5jbGFzc05hbWUgPSBgY29sLW1kLSR7c2l6ZX1gXHJcbiAgICAgICAgLy8gc2V0IHRoZSB3cmFwcGVyIGFzIGNoaWxkIChpbnN0ZWFkIG9mIHRoZSBlbGVtZW50KVxyXG4gICAgICAgIHBhcmVudC5yZXBsYWNlQ2hpbGQod3JhcHBlciwgaHRtbEVsZW1lbnQpO1xyXG4gICAgICAgIC8vIHNldCBlbGVtZW50IGFzIGNoaWxkIG9mIHdyYXBwZXJcclxuICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGh0bWxFbGVtZW50KTtcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,137 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { Http } from '@angular/http';
3
+ import { ControlContainer } from '@angular/forms';
4
+ import { UtilityService } from '@bnsights/bbsf-utilities';
5
+ export class ErrorMassageValidation {
6
+ // tslint:disable-next-line: deprecation
7
+ constructor(http, controlContainer, utilityService) {
8
+ this.http = http;
9
+ this.controlContainer = controlContainer;
10
+ this.utilityService = utilityService;
11
+ this.url = 'CheckEmailValidation';
12
+ ErrorMassageValidation.controlContainerstatic = this.controlContainer;
13
+ }
14
+ // tslint:disable-next-line: deprecation
15
+ static showerror(FormControlName) {
16
+ ;
17
+ let form = ErrorMassageValidation.controlContainerstatic.control;
18
+ let control = form.get(FormControlName);
19
+ //console.log(control)
20
+ control.setErrors({ 'minlength': true });
21
+ control.markAsTouched();
22
+ }
23
+ // isEmailRegisterd(Email: string)
24
+ // {
25
+ // let resource:object={
26
+ // email:Email
27
+ // };
28
+ // let body = JSON.stringify(resource);
29
+ // let headers = new Headers({ 'Content-Type': 'application/json' });
30
+ // let options = new RequestOptions({ headers: headers });
31
+ // return this.http.post(environment.baseUrl+this.url,body,options)
32
+ // .pipe(map(response => response.json()))
33
+ // }
34
+ getErrorMassageValidation(error) {
35
+ ;
36
+ let result = "";
37
+ switch (error.key) {
38
+ case "required":
39
+ result = this.utilityService.getResourceValue("RequiredValidationKey");
40
+ break;
41
+ case "email":
42
+ result = this.utilityService.getResourceValue("EmailValidationKey");
43
+ break;
44
+ case "EmailValidationKey":
45
+ result = this.utilityService.getResourceValue("EmailValidationKey");
46
+ break;
47
+ case "pattern":
48
+ result = this.utilityService.getResourceValue("NumberValidationKey");
49
+ break;
50
+ case "maxlength":
51
+ result = this.utilityService.getResourceValue("MaxLenghtValidationKey") + " " + error.value.requiredLength;
52
+ break;
53
+ case "minlength":
54
+ result = this.utilityService.getResourceValue("MinLenghtValidationKey") + " " + error.value.requiredLength;
55
+ break;
56
+ case "min":
57
+ result = this.utilityService.getResourceValue("MinValueValidationKey") + " " + error.value.min;
58
+ break;
59
+ case "max":
60
+ result = this.utilityService.getResourceValue("MaxValueValidationKey") + " " + error.value.max;
61
+ break;
62
+ case "IntegerNumberValidationKey":
63
+ result = this.utilityService.getResourceValue("IntegerNumberValidationKey");
64
+ break;
65
+ case "PositiveNumberValidationKey":
66
+ result = this.utilityService.getResourceValue("PositiveNumberValidationKey");
67
+ break;
68
+ case "validatePhoneNumber":
69
+ result = this.utilityService.getResourceValue("PhoneNumberValidationKey");
70
+ break;
71
+ case "mask":
72
+ result = this.utilityService.getResourceValue("MaskValidationKey") + " " + error.value.requiredMask;
73
+ break;
74
+ case "PasswordComplexityHasNumber":
75
+ result = this.utilityService.getResourceValue("PasswordComplexityHasNumber");
76
+ break;
77
+ case "ArabicLetterOnly":
78
+ result = this.utilityService.getResourceValue("ArabicLetterOnly");
79
+ break;
80
+ case "EnglishLetterOnly":
81
+ result = this.utilityService.getResourceValue("EnglishLetterOnly");
82
+ break;
83
+ case "ArabicIsRequiredAndOnly50CharactersEnglish":
84
+ result = this.utilityService.getResourceValue("ArabicIsRequiredAndOnly50CharactersEnglish");
85
+ break;
86
+ case "PasswordComplexityHasCapitalLetter":
87
+ result = this.utilityService.getResourceValue("PasswordComplexityHasCapitalLetter");
88
+ break;
89
+ case "PasswordComplexityHasSmallLetter":
90
+ result = this.utilityService.getResourceValue("PasswordComplexityHasSmallLetter");
91
+ break;
92
+ case "PasswordComplexityHasSpecialLetter":
93
+ result = this.utilityService.getResourceValue("PasswordComplexityHasSpecialLetter");
94
+ break;
95
+ case "MaxWordCountValidationKey":
96
+ result = this.utilityService.getResourceValue("MaxWordCountValidationKey") + " " + error.value;
97
+ break;
98
+ case "NewSelectionValidationKey":
99
+ result = this.utilityService.getResourceValue("NewSelectionValidationKey");
100
+ break;
101
+ case "MaxFileCountValidationKey":
102
+ result = this.utilityService.getResourceValue("MaxFileCountValidationKey") + " " + error.value;
103
+ break;
104
+ case "MinFileCountValidationKey":
105
+ result = this.utilityService.getResourceValue("MinFileCountValidationKey") + " " + error.value;
106
+ break;
107
+ case "MaxSizeForAllFilesInMB":
108
+ result = this.utilityService.getResourceValue("MaxSizeForAllFilesInMB") + " " + error.value;
109
+ break;
110
+ case "FileMaxSizeInMB":
111
+ result = this.utilityService.getResourceValue("FileMaxSizeInMB") + " " + error.value;
112
+ break;
113
+ case "ToolTipTypeError":
114
+ result = this.utilityService.getResourceValue("ToolTipTypeError") + " " + error.value;
115
+ break;
116
+ case "InvalidEndDate":
117
+ result = this.utilityService.getResourceValue("InvalidEndDate");
118
+ break;
119
+ case "InvalidStartDate":
120
+ result = this.utilityService.getResourceValue("InvalidStartDate");
121
+ break;
122
+ default:
123
+ break;
124
+ }
125
+ return result;
126
+ }
127
+ }
128
+ ErrorMassageValidation.controlContainerstatic = null;
129
+ ErrorMassageValidation.decorators = [
130
+ { type: Injectable }
131
+ ];
132
+ ErrorMassageValidation.ctorParameters = () => [
133
+ { type: Http },
134
+ { type: ControlContainer, decorators: [{ type: Optional }] },
135
+ { type: UtilityService }
136
+ ];
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLElBQUksRUFBcUMsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGdCQUFnQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUkxRCxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLHdDQUF3QztJQUN4QyxZQUFvQixJQUFVLEVBQXNCLGdCQUFrQyxFQUFVLGNBQThCO1FBQTFHLFNBQUksR0FBSixJQUFJLENBQU07UUFBc0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUk5SCxRQUFHLEdBQUcsc0JBQXNCLENBQUM7UUFGM0Isc0JBQXNCLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFBO0lBQ3ZFLENBQUM7SUFFRCx3Q0FBd0M7SUFJeEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxlQUF1QjtRQUN0QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLEdBQUcsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsT0FBb0IsQ0FBQztRQUM5RSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBZ0IsQ0FBQztRQUN2RCxzQkFBc0I7UUFDdEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxh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TUFBTTtZQUNSLEtBQUssd0JBQXdCO2dCQUMzQixNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUM1RixNQUFNO1lBQ1IsS0FBSyxpQkFBaUI7Z0JBQ3BCLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3JGLE1BQU07WUFDUixLQUFLLGtCQUFrQjtnQkFDckIsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDdEYsTUFBTTtZQUNSLEtBQUssZ0JBQWdCO2dCQUNuQixNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNoRSxNQUFNO1lBQ1IsS0FBSyxrQkFBa0I7Z0JBQ3JCLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2xFLE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztBQTdITSw2Q0FBc0IsR0FBRyxJQUFJLENBQUM7O1lBSnRDLFVBQVU7OztZQUxGLElBQUk7WUFFSixnQkFBZ0IsdUJBVVUsUUFBUTtZQVRsQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cCwgUmVzcG9uc2UsIEhlYWRlcnMsIFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5cclxuZXhwb3J0IGNsYXNzIEVycm9yTWFzc2FnZVZhbGlkYXRpb24ge1xyXG5cclxuICBzdGF0aWMgY29udHJvbENvbnRhaW5lcnN0YXRpYyA9IG51bGw7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGVwcmVjYXRpb25cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHAsIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lciwgcHJpdmF0ZSB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UpIHtcclxuXHJcbiAgICBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uLmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXJcclxuICB9XHJcbiAgdXJsID0gJ0NoZWNrRW1haWxWYWxpZGF0aW9uJztcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGRlcHJlY2F0aW9uXHJcblxyXG5cclxuXHJcbiAgc3RhdGljIHNob3dlcnJvcihGb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xyXG4gICAgO1xyXG4gICAgbGV0IGZvcm0gPSBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uLmNvbnRyb2xDb250YWluZXJzdGF0aWMuY29udHJvbCBhcyBGb3JtR3JvdXA7XHJcbiAgICBsZXQgY29udHJvbCA9IGZvcm0uZ2V0KEZvcm1Db250cm9sTmFtZSkgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAvL2NvbnNvbGUubG9nKGNvbnRyb2wpXHJcbiAgICBjb250cm9sLnNldEVycm9ycyh7ICdtaW5sZW5ndGgnOiB0cnVlIH0pO1xyXG4gICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKClcclxuICB9XHJcblxyXG4gIC8vICBpc0VtYWlsUmVnaXN0ZXJkKEVtYWlsOiBzdHJpbmcpIFxyXG4gIC8vICB7XHJcbiAgLy8gICAgbGV0IHJlc291cmNlOm9iamVjdD17XHJcbiAgLy8gICAgICBlbWFpbDpFbWFpbFxyXG4gIC8vICAgIH07XHJcbiAgLy8gICAgbGV0IGJvZHkgPSBKU09OLnN0cmluZ2lmeShyZXNvdXJjZSk7XHJcbiAgLy8gICAgbGV0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSk7XHJcbiAgLy8gICAgbGV0IG9wdGlvbnMgPSBuZXcgUmVxdWVzdE9wdGlvbnMoeyBoZWFkZXJzOiBoZWFkZXJzIH0pO1xyXG4gIC8vICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChlbnZpcm9ubWVudC5iYXNlVXJsK3RoaXMudXJsLGJvZHksb3B0aW9ucylcclxuICAvLyAgICAucGlwZShtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKSlcclxuICAvLyAgfVxyXG5cclxuICBnZXRFcnJvck1hc3NhZ2VWYWxpZGF0aW9uKGVycm9yOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgO1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gXCJcIlxyXG4gICAgc3dpdGNoIChlcnJvci5rZXkpIHtcclxuICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUmVxdWlyZWRWYWxpZGF0aW9uS2V5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiZW1haWxcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbWFpbFZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJFbWFpbFZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbWFpbFZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJwYXR0ZXJuXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTnVtYmVyVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1heGxlbmd0aFwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1heExlbmdodFZhbGlkYXRpb25LZXlcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlLnJlcXVpcmVkTGVuZ3RoO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwibWlubGVuZ3RoXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWluTGVuZ2h0VmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtaW5cIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNaW5WYWx1ZVZhbGlkYXRpb25LZXlcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlLm1pbjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIm1heFwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1heFZhbHVlVmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWUubWF4O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiSW50ZWdlck51bWJlclZhbGlkYXRpb25LZXlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJbnRlZ2VyTnVtYmVyVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlBvc2l0aXZlTnVtYmVyVmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBvc2l0aXZlTnVtYmVyVmFsaWRhdGlvbktleVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcInZhbGlkYXRlUGhvbmVOdW1iZXJcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQaG9uZU51bWJlclZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJtYXNrXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWFza1ZhbGlkYXRpb25LZXlcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlLnJlcXVpcmVkTWFzaztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlBhc3N3b3JkQ29tcGxleGl0eUhhc051bWJlclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlBhc3N3b3JkQ29tcGxleGl0eUhhc051bWJlclwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkFyYWJpY0xldHRlck9ubHlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBcmFiaWNMZXR0ZXJPbmx5XCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiRW5nbGlzaExldHRlck9ubHlcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFbmdsaXNoTGV0dGVyT25seVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkFyYWJpY0lzUmVxdWlyZWRBbmRPbmx5NTBDaGFyYWN0ZXJzRW5nbGlzaFwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFyYWJpY0lzUmVxdWlyZWRBbmRPbmx5NTBDaGFyYWN0ZXJzRW5nbGlzaFwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlBhc3N3b3JkQ29tcGxleGl0eUhhc0NhcGl0YWxMZXR0ZXJcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYXNzd29yZENvbXBsZXhpdHlIYXNDYXBpdGFsTGV0dGVyXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiUGFzc3dvcmRDb21wbGV4aXR5SGFzU21hbGxMZXR0ZXJcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYXNzd29yZENvbXBsZXhpdHlIYXNTbWFsbExldHRlclwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIlBhc3N3b3JkQ29tcGxleGl0eUhhc1NwZWNpYWxMZXR0ZXJcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJQYXNzd29yZENvbXBsZXhpdHlIYXNTcGVjaWFsTGV0dGVyXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiTWF4V29yZENvdW50VmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk1heFdvcmRDb3VudFZhbGlkYXRpb25LZXlcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleVwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXlcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJNYXhGaWxlQ291bnRWYWxpZGF0aW9uS2V5XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWF4RmlsZUNvdW50VmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJNaW5GaWxlQ291bnRWYWxpZGF0aW9uS2V5XCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWluRmlsZUNvdW50VmFsaWRhdGlvbktleVwiKSArIFwiIFwiICsgZXJyb3IudmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJNYXhTaXplRm9yQWxsRmlsZXNJbk1CXCI6XHJcbiAgICAgICAgcmVzdWx0ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWF4U2l6ZUZvckFsbEZpbGVzSW5NQlwiKSArIFwiIFwiICsgZXJyb3IudmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJGaWxlTWF4U2l6ZUluTUJcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJGaWxlTWF4U2l6ZUluTUJcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiVG9vbFRpcFR5cGVFcnJvclwiOlxyXG4gICAgICAgIHJlc3VsdCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlRvb2xUaXBUeXBlRXJyb3JcIikgKyBcIiBcIiArIGVycm9yLnZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwiSW52YWxpZEVuZERhdGVcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJbnZhbGlkRW5kRGF0ZVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcIkludmFsaWRTdGFydERhdGVcIjpcclxuICAgICAgICByZXN1bHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJbnZhbGlkU3RhcnREYXRlXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,249 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Component, Input, Optional, Output, EventEmitter } from '@angular/core';
3
+ import { FormControl, Validators, ControlContainer, FormGroupDirective } from '@angular/forms';
4
+ import { ErrorMassageValidation } from '../../Shared/services/validationErrorMassage.service';
5
+ import { ControlUtility } from '../../Shared/services/ControlUtility';
6
+ import { AutocompleteDTO } from '../../Shared/Models/AutocompleteDTO';
7
+ import { noop, Observable, of } from 'rxjs';
8
+ import { map, switchMap, tap } from 'rxjs/operators';
9
+ import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
10
+ import { ControlValidationService, RequestHandlerService, RequestOptionsModel, UtilityService } from '@bnsights/bbsf-utilities';
11
+ import { GlobalSettings } from '../../Shared/services/GlobalSettings.service';
12
+ export class AutocompleteTextBoxComponent {
13
+ // tslint:disable-next-line: max-line-length
14
+ constructor(http, ErrorHandler, requestHandlerService, controlUtility, controlContainer, AutocompleteTextBoxControlHost, UtilityService, controlValidationService, globalSettings) {
15
+ this.http = http;
16
+ this.ErrorHandler = ErrorHandler;
17
+ this.requestHandlerService = requestHandlerService;
18
+ this.controlUtility = controlUtility;
19
+ this.controlContainer = controlContainer;
20
+ this.AutocompleteTextBoxControlHost = AutocompleteTextBoxControlHost;
21
+ this.UtilityService = UtilityService;
22
+ this.controlValidationService = controlValidationService;
23
+ this.globalSettings = globalSettings;
24
+ this.OnChange = new EventEmitter();
25
+ this.keyword = 'value';
26
+ this.Search = '';
27
+ this.Key = '';
28
+ this.Api = 'http';
29
+ this.Value = 'value';
30
+ this.NewSelectionValidationKey = '';
31
+ this.markAllAsTouched = false;
32
+ this.validationRules = [];
33
+ this.validationRulesasync = [];
34
+ this.dataList = [];
35
+ this.SelectedValue = "";
36
+ this.avatarImage = "./src/assets/images/userimg.png";
37
+ this.resetError = () => {
38
+ this.controlValidationService.RemoveGlobalError();
39
+ };
40
+ // onFocused(e) {
41
+ // // do something
42
+ // }
43
+ // onBlur(Value) {
44
+ // if (this.options.AllowNewSelection == true) {
45
+ // if (typeof (Value) == 'object') {
46
+ // this.AutocompleteTextBoxControl.setValue(Value);
47
+ // this.AutocompleteTextBoxControl.updateValueAndValidity()
48
+ // }
49
+ // else {
50
+ // let AutocompleteModel = new AutocompleteDTO();
51
+ // AutocompleteModel.value = Value;
52
+ // let model = new TypeaheadMatch(AutocompleteModel,Value);
53
+ // this.AutocompleteTextBoxControl.setValue(model);
54
+ // this.AutocompleteTextBoxControl.updateValueAndValidity()
55
+ // }
56
+ // }
57
+ // else {
58
+ // if (this.AutocompleteTextBoxControl.value == Value) {
59
+ // this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });
60
+ // this.AutocompleteTextBoxControl.markAsTouched();
61
+ // this.AutocompleteTextBoxControl.invalid;
62
+ // return;
63
+ // }
64
+ // }
65
+ // }
66
+ // handleResultSelected(result) {
67
+ // this.AutocompleteTextBoxControl.setValue(result);
68
+ // this.AutocompleteTextBoxControl.updateValueAndValidity()
69
+ // this.OnChange.emit(this.AutocompleteTextBoxControl.value)
70
+ // this.Search = this.AutocompleteTextBoxControl.value.value
71
+ // }
72
+ //External Method
73
+ this.RemoveRequiredValidation = () => {
74
+ this.controlUtility.RemoveRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options);
75
+ };
76
+ //External Method
77
+ this.AddRequiredValidation = () => {
78
+ this.controlUtility.AddRequiredValidation(this.AutocompleteTextBoxControl, this.validationRules, this.options);
79
+ };
80
+ //External Method
81
+ this.RemoveCustomValidation = (CustomValidation) => {
82
+ this.controlUtility.RemoveCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation);
83
+ };
84
+ //External Method
85
+ this.AddCustomValidation = (CustomValidation) => {
86
+ this.controlUtility.AddCustomValidation(this.AutocompleteTextBoxControl, this.validationRules, CustomValidation);
87
+ };
88
+ //External Method
89
+ this.IsValid = () => {
90
+ this.controlUtility.IsValid(this.AutocompleteTextBoxControl);
91
+ };
92
+ AutocompleteTextBoxComponent.controlContainerstatic = this.controlContainer;
93
+ }
94
+ ngOnInit() {
95
+ this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
96
+ this.controlValidationService.isCreatedBefor = false;
97
+ this.group.addControl(this.options.Name, new FormControl(''));
98
+ this.AutocompleteTextBoxControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
99
+ if (!this.options.ViewType)
100
+ this.options.ViewType = this.globalSettings.ViewType;
101
+ if (this.options.LabelKey != null && this.options.LabelKey != "")
102
+ this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
103
+ // this.AutocompleteTextBoxControl.setValue(this.options.Value);
104
+ if (this.options.CustomValidation.length > 0) {
105
+ let Validations = this.options.CustomValidation;
106
+ for (let index = 0; index < Validations.length; index++) {
107
+ const Validation = Validations[index];
108
+ this.validationRules.push(Validation.functionBody);
109
+ }
110
+ }
111
+ if (this.options.IsRequired) {
112
+ this.validationRules.push(Validators.required);
113
+ }
114
+ this.AutocompleteTextBoxControl.setValidators(this.validationRules);
115
+ this.AutocompleteTextBoxControl.setAsyncValidators(this.validationRulesasync);
116
+ if (this.options.IsDisabled) {
117
+ this.AutocompleteTextBoxControl.disable();
118
+ }
119
+ if (this.options.SelectedValue != undefined && this.options.SelectedValue != null) {
120
+ this.SelectedValue = this.options.SelectedValue;
121
+ }
122
+ this.AutocompleteTextBoxControlHost.ngSubmit.subscribe((value) => {
123
+ if (this.AutocompleteTextBoxControl.value == this.Search && this.options.AllowNewSelection == false) {
124
+ this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });
125
+ this.AutocompleteTextBoxControl.markAsTouched();
126
+ this.AutocompleteTextBoxControl.invalid;
127
+ }
128
+ this.group.markAllAsTouched();
129
+ this.markAllAsTouched = true;
130
+ });
131
+ const httpOptions = {
132
+ headers: new HttpHeaders({
133
+ 'Content-Type': 'application/json',
134
+ 'Authorization': this.options.ValidationToken
135
+ }),
136
+ };
137
+ this.suggestions$ = new Observable((observer) => {
138
+ observer.next(this.Search);
139
+ }).pipe(switchMap((query) => {
140
+ if (query) {
141
+ let params = new HttpParams();
142
+ params = params.append(this.options.QueryParam, query);
143
+ let requestOptionsModel = new RequestOptionsModel();
144
+ requestOptionsModel.disableBlockUI = true;
145
+ requestOptionsModel.disableSuccessNotification = true;
146
+ // using github public api to get users by name
147
+ return this.requestHandlerService.get(this.options.ActionURL, params, null, requestOptionsModel)
148
+ .pipe(map((data) => data || []), tap(() => noop, err => {
149
+ // in case of http error
150
+ this.errorMessage = err && err.message || 'Something goes wrong';
151
+ }));
152
+ }
153
+ return of([]);
154
+ }));
155
+ }
156
+ ngAfterViewInit() {
157
+ this.controlUtility.setAttributeForControl(this.options);
158
+ }
159
+ showGlobalError() {
160
+ this.controlUtility.showGlobalError();
161
+ }
162
+ getErrorValidation(ErrorList) {
163
+ if (this.markAllAsTouched && this.group.invalid) {
164
+ this.showGlobalError();
165
+ this.markAllAsTouched = false;
166
+ }
167
+ return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
168
+ }
169
+ copyInputMessage(inputElement) {
170
+ this.controlUtility.CopyInputMessage(inputElement);
171
+ }
172
+ selectEvent(item) {
173
+ if (this.options.AllowNewSelection == true) {
174
+ if (typeof (item) == 'object') {
175
+ this.AutocompleteTextBoxControl.setValue(item);
176
+ this.AutocompleteTextBoxControl.updateValueAndValidity();
177
+ }
178
+ else {
179
+ let AutocompleteModel = new AutocompleteDTO();
180
+ AutocompleteModel.value = item;
181
+ this.AutocompleteTextBoxControl.setValue(AutocompleteModel);
182
+ this.AutocompleteTextBoxControl.updateValueAndValidity();
183
+ }
184
+ }
185
+ else {
186
+ if (this.AutocompleteTextBoxControl.value == item.value) {
187
+ this.AutocompleteTextBoxControl.setErrors({ NewSelectionValidationKey: this.NewSelectionValidationKey });
188
+ this.AutocompleteTextBoxControl.markAsTouched();
189
+ this.AutocompleteTextBoxControl.invalid;
190
+ return;
191
+ }
192
+ else {
193
+ this.AutocompleteTextBoxControl.setValue(item);
194
+ this.AutocompleteTextBoxControl.updateValueAndValidity();
195
+ let originalValue = this.AutocompleteTextBoxControl.value;
196
+ if (this.options.PatchFunction && this.options.PatchPath && this.group.get(this.options.Name).valid) {
197
+ this.controlUtility.patchControlValue(originalValue, this.options.PatchFunction, this.options.PatchPath);
198
+ }
199
+ this.OnChange.emit(this.AutocompleteTextBoxControl.value);
200
+ //Use this line to enable two way binding.
201
+ this.options.Value = this.AutocompleteTextBoxControl.value;
202
+ }
203
+ }
204
+ }
205
+ onChangeSearch(search) {
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ this.Search = search;
208
+ this.SelectedValue = "";
209
+ yield this.suggestions$.subscribe((result) => {
210
+ if ((result == null || result.length == 0 || result.length == 0) && this.options.AllowNewSelection == true) {
211
+ this.dataList = [
212
+ {
213
+ key: 0,
214
+ value: this.Search
215
+ }
216
+ ];
217
+ }
218
+ else {
219
+ this.dataList = result;
220
+ }
221
+ });
222
+ });
223
+ }
224
+ }
225
+ AutocompleteTextBoxComponent.controlContainerstatic = null;
226
+ AutocompleteTextBoxComponent.decorators = [
227
+ { type: Component, args: [{
228
+ // tslint:disable-next-line: component-selector
229
+ selector: 'BBSF-AutocompleteTextBox',
230
+ 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"
231
+ },] }
232
+ ];
233
+ AutocompleteTextBoxComponent.ctorParameters = () => [
234
+ { type: HttpClient },
235
+ { type: ErrorMassageValidation },
236
+ { type: RequestHandlerService },
237
+ { type: ControlUtility },
238
+ { type: ControlContainer, decorators: [{ type: Optional }] },
239
+ { type: FormGroupDirective },
240
+ { type: UtilityService },
241
+ { type: ControlValidationService },
242
+ { type: GlobalSettings }
243
+ ];
244
+ AutocompleteTextBoxComponent.propDecorators = {
245
+ group: [{ type: Input }],
246
+ options: [{ type: Input }],
247
+ OnChange: [{ type: Output }]
248
+ };
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvQXV0b2NvbXBsZXRlVGV4dEJveC9BdXRvY29tcGxldGVUZXh0Qm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQVcsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQThCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFpQyxNQUFNLGdCQUFnQixDQUFDO0FBQzFKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQVksRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFPOUUsTUFBTSxPQUFPLDRCQUE0QjtJQUl2Qyw0Q0FBNEM7SUFDNUMsWUFBb0IsSUFBZ0IsRUFBVSxZQUFvQyxFQUFTLHFCQUEyQyxFQUM1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QztLQUFBOztBQXZNTSxtREFBc0IsR0FBRyxJQUFJLENBQUM7O1lBUnRDLFNBQVMsU0FBQztnQkFDVCwrQ0FBK0M7Z0JBQy9DLFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLHM0RkFBbUQ7YUFDcEQ7OztZQVJRLFVBQVU7WUFOVixzQkFBc0I7WUFPSSxxQkFBcUI7WUFOL0MsY0FBYztZQUZ1QyxnQkFBZ0IsdUJBc0JqQyxRQUFRO1lBdEIyQixrQkFBa0I7WUFRbkIsY0FBYztZQUFwRix3QkFBd0I7WUFDeEIsY0FBYzs7O29CQWtCcEIsS0FBSztzQkFDTCxLQUFLO3VCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIERvQ2hlY2ssIE9wdGlvbmFsLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBGb3JtR3JvdXAsIEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXJyb3JNYXNzYWdlVmFsaWRhdGlvbiB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0aW9uRXJyb3JNYXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVXRpbGl0eSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9Db250cm9sVXRpbGl0eSc7XHJcbmltcG9ydCB7IEF1dG9jb21wbGV0ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0F1dG9jb21wbGV0ZU9wdGlvbnMnO1xyXG5pbXBvcnQgeyBBdXRvY29tcGxldGVEVE8gfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0F1dG9jb21wbGV0ZURUTyc7XHJcbmltcG9ydCB7IG5vb3AsIE9ic2VydmFibGUsIE9ic2VydmVyLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIFJlcXVlc3RPcHRpb25zTW9kZWwsIFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgR2xvYmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9TaGFyZWQvc2VydmljZXMvR2xvYmFsU2V0dGluZ3Muc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnQkJTRi1BdXRvY29tcGxldGVUZXh0Qm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVRleHRCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuXHJcbiAgc3RhdGljIGNvbnRyb2xDb250YWluZXJzdGF0aWMgPSBudWxsO1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbWF4LWxpbmUtbGVuZ3RoXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIEVycm9ySGFuZGxlcjogRXJyb3JNYXNzYWdlVmFsaWRhdGlvbixwcml2YXRlIHJlcXVlc3RIYW5kbGVyU2VydmljZTpSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbnRyb2xVdGlsaXR5OiBDb250cm9sVXRpbGl0eSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOlxyXG4gICAgICBDb250cm9sQ29udGFpbmVyLCBwdWJsaWMgQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUscHJpdmF0ZSBVdGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbnRyb2xWYWxpZGF0aW9uU2VydmljZTogQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBwcml2YXRlIGdsb2JhbFNldHRpbmdzOiBHbG9iYWxTZXR0aW5ncykge1xyXG4gICAgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudC5jb250cm9sQ29udGFpbmVyc3RhdGljID0gdGhpcy5jb250cm9sQ29udGFpbmVyO1xyXG4gIH1cclxuICBASW5wdXQoKSBncm91cDogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEF1dG9jb21wbGV0ZU9wdGlvbnM7XHJcbiAgQE91dHB1dCgpIE9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGtleXdvcmQ6IHN0cmluZyA9ICd2YWx1ZSdcclxuICBBdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIFNlYXJjaDogc3RyaW5nID0gJydcclxuICBLZXk6IHN0cmluZyA9ICcnXHJcbiBcclxuICBBcGk6IHN0cmluZyA9ICdodHRwJztcclxuICBWYWx1ZTogc3RyaW5nID0gJ3ZhbHVlJ1xyXG4gIE5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXk6IHN0cmluZyA9ICcnO1xyXG4gIG1hcmtBbGxBc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2YWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuICB2YWxpZGF0aW9uUnVsZXNhc3luYyA9IFtdO1xyXG4gIGRhdGFTb3VyY2U6IE9ic2VydmFibGU8YW55PjtcclxuICBzdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIGRhdGFMaXN0OmFueVtdPVtdO1xyXG4gIFNlbGVjdGVkVmFsdWU6c3RyaW5nPVwiXCJcclxuICBhdmF0YXJJbWFnZTogc3RyaW5nID0gIFwiLi9zcmMvYXNzZXRzL2ltYWdlcy91c2VyaW1nLnBuZ1wiO1xyXG4gIHRleHREaXI7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRleHREaXI9dGhpcy5vcHRpb25zLkZvcmNlRGlyZWN0aW9uPT0yPydydGwnOidsdHInO1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UuaXNDcmVhdGVkQmVmb3IgPSBmYWxzZVxyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcclxuICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wgPSB0aGlzLmdyb3VwLmNvbnRyb2xzW3RoaXMub3B0aW9ucy5OYW1lXTsgLy8gIG5ldyBGb3JtQ29udHJvbCgnJyx2YWxpZGF0aW9uUnVsZXMpO1xyXG5cclxuICAgIGlmICghdGhpcy5vcHRpb25zLlZpZXdUeXBlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuVmlld1R5cGUgPSB0aGlzLmdsb2JhbFNldHRpbmdzLlZpZXdUeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gbnVsbCAmJiB0aGlzLm9wdGlvbnMuTGFiZWxLZXkgIT0gXCJcIilcclxuICAgICAgdGhpcy5vcHRpb25zLkxhYmVsVmFsdWUgPSB0aGlzLlV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUodGhpcy5vcHRpb25zLkxhYmVsS2V5KTtcclxuXHJcbiAgICAvLyB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKHRoaXMub3B0aW9ucy5WYWx1ZSk7XHJcblxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuQ3VzdG9tVmFsaWRhdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBWYWxpZGF0aW9ucyA9IHRoaXMub3B0aW9ucy5DdXN0b21WYWxpZGF0aW9uXHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBWYWxpZGF0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBjb25zdCBWYWxpZGF0aW9uID0gVmFsaWRhdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdGlvbi5mdW5jdGlvbkJvZHkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5Jc1JlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvblJ1bGVzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXMpO1xyXG4gICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy52YWxpZGF0aW9uUnVsZXNhc3luYyk7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLklzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gIFxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5TZWxlY3RlZFZhbHVlICE9IHVuZGVmaW5lZCAmJiB0aGlzLm9wdGlvbnMuU2VsZWN0ZWRWYWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuU2VsZWN0ZWRWYWx1ZT10aGlzLm9wdGlvbnMuU2VsZWN0ZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbEhvc3QubmdTdWJtaXQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC52YWx1ZSA9PSB0aGlzLlNlYXJjaCYmdGhpcy5vcHRpb25zLkFsbG93TmV3U2VsZWN0aW9uPT1mYWxzZSkge1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0RXJyb3JzKHsgTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleTogdGhpcy5OZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5IH0pO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuaW52YWxpZDtcclxuICAgIH1cclxuICAgICAgdGhpcy5ncm91cC5tYXJrQWxsQXNUb3VjaGVkKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gdHJ1ZVxyXG4gICAgfSlcclxuXHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRoaXMub3B0aW9ucy5WYWxpZGF0aW9uVG9rZW5cclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICBcclxuICBcclxuICAgXHJcbiAgICBcclxuICAgIHRoaXMuc3VnZ2VzdGlvbnMkID0gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxzdHJpbmc+KSA9PiB7XHJcbiAgICAgIG9ic2VydmVyLm5leHQodGhpcy5TZWFyY2gpO1xyXG4gICAgfSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChxdWVyeTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHF1ZXJ5KSB7XHJcbiAgICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQodGhpcy5vcHRpb25zLlF1ZXJ5UGFyYW0sICBxdWVyeSk7XHJcbiAgICAgICAgICBsZXQgcmVxdWVzdE9wdGlvbnNNb2RlbD0gbmV3IFJlcXVlc3RPcHRpb25zTW9kZWwoKVxyXG4gICAgICAgICAgcmVxdWVzdE9wdGlvbnNNb2RlbC5kaXNhYmxlQmxvY2tVST10cnVlO1xyXG4gICAgICAgICAgcmVxdWVzdE9wdGlvbnNNb2RlbC5kaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbj10cnVlO1xyXG4gICAgICAgICAgLy8gdXNpbmcgZ2l0aHViIHB1YmxpYyBhcGkgdG8gZ2V0IHVzZXJzIGJ5IG5hbWVcclxuICAgICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5nZXQodGhpcy5vcHRpb25zLkFjdGlvblVSTCxwYXJhbXMsbnVsbCxyZXF1ZXN0T3B0aW9uc01vZGVsKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gZGF0YSBhcyBBdHRyaWJ1dGVbXSB8fCBbXSksXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiBub29wLCBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIGluIGNhc2Ugb2YgaHR0cCBlcnJvclxyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyICYmIGVyci5tZXNzYWdlIHx8ICdTb21ldGhpbmcgZ29lcyB3cm9uZyc7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuIFxyXG4gICAgICAgIHJldHVybiBvZihbXSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2V0QXR0cmlidXRlRm9yQ29udHJvbCh0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG4gIHJlc2V0RXJyb3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xWYWxpZGF0aW9uU2VydmljZS5SZW1vdmVHbG9iYWxFcnJvcigpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dsb2JhbEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5zaG93R2xvYmFsRXJyb3IoKVxyXG4gIH1cclxuXHJcblxyXG4gIGdldEVycm9yVmFsaWRhdGlvbihFcnJvckxpc3QpIHtcclxuXHJcbiAgICBpZiAodGhpcy5tYXJrQWxsQXNUb3VjaGVkICYmIHRoaXMuZ3JvdXAuaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnNob3dHbG9iYWxFcnJvcigpXHJcbiAgICAgIHRoaXMubWFya0FsbEFzVG91Y2hlZCA9IGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbFV0aWxpdHkuZ2V0RXJyb3JWYWxpZGF0aW9uTWFzc2FnZShFcnJvckxpc3QsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBjb3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudCkge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5Db3B5SW5wdXRNZXNzYWdlKGlucHV0RWxlbWVudClcclxuICB9XHJcblxyXG5cclxuICBzZWxlY3RFdmVudChpdGVtKSB7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbiA9PSB0cnVlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgKGl0ZW0pID09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShpdGVtKTtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBsZXQgQXV0b2NvbXBsZXRlTW9kZWwgPSBuZXcgQXV0b2NvbXBsZXRlRFRPKCk7XHJcbiAgICAgICAgQXV0b2NvbXBsZXRlTW9kZWwudmFsdWUgPSBpdGVtO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUoQXV0b2NvbXBsZXRlTW9kZWwpO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICB9ICBcclxuICAgIGVsc2Uge1xyXG5cclxuICAgICAgaWYgKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWUgPT0gaXRlbS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0RXJyb3JzKHsgTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleTogdGhpcy5OZXdTZWxlY3Rpb25WYWxpZGF0aW9uS2V5IH0pO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuaW52YWxpZDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcbiAgICAgICAgbGV0IG9yaWdpbmFsVmFsdWUgPXRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5QYXRjaEZ1bmN0aW9uICYmIHRoaXMub3B0aW9ucy5QYXRjaFBhdGggJiYgdGhpcy5ncm91cC5nZXQodGhpcy5vcHRpb25zLk5hbWUpLnZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LnBhdGNoQ29udHJvbFZhbHVlKG9yaWdpbmFsVmFsdWUsdGhpcy5vcHRpb25zLlBhdGNoRnVuY3Rpb24gLHRoaXMub3B0aW9ucy5QYXRjaFBhdGgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuT25DaGFuZ2UuZW1pdCh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlKVxyXG4gICAgICAgICAvL1VzZSB0aGlzIGxpbmUgdG8gZW5hYmxlIHR3byB3YXkgYmluZGluZy5cclxuICAgICAgICAgdGhpcy5vcHRpb25zLlZhbHVlPSB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkNoYW5nZVNlYXJjaChzZWFyY2g6IHN0cmluZykge1xyXG4gICAgdGhpcy5TZWFyY2g9c2VhcmNoO1xyXG4gICAgdGhpcy5TZWxlY3RlZFZhbHVlPVwiXCI7XHJcbiAgICBhd2FpdCB0aGlzLnN1Z2dlc3Rpb25zJC5zdWJzY3JpYmUoKHJlc3VsdCk9PntcclxuICAgICAgaWYgKChyZXN1bHQ9PW51bGx8fHJlc3VsdC5sZW5ndGg9PTB8fHJlc3VsdC5sZW5ndGg9PTApJiZ0aGlzLm9wdGlvbnMuQWxsb3dOZXdTZWxlY3Rpb249PXRydWUpIHtcclxuICAgICAgICB0aGlzLmRhdGFMaXN0ID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBrZXk6MCxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuU2VhcmNoXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAge1xyXG4gICAgICAgIHRoaXMuZGF0YUxpc3Q9cmVzdWx0XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvLyBvbkZvY3VzZWQoZSkge1xyXG4gIC8vICAgLy8gZG8gc29tZXRoaW5nXHJcbiAgLy8gfVxyXG5cclxuIFxyXG4gIC8vIG9uQmx1cihWYWx1ZSkge1xyXG4gIC8vICAgaWYgKHRoaXMub3B0aW9ucy5BbGxvd05ld1NlbGVjdGlvbiA9PSB0cnVlKSB7XHJcblxyXG4gIC8vICAgICBpZiAodHlwZW9mIChWYWx1ZSkgPT0gJ29iamVjdCcpIHtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldFZhbHVlKFZhbHVlKTtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKVxyXG5cclxuICAvLyAgICAgfVxyXG4gIC8vICAgICBlbHNlIHtcclxuICAvLyAgICAgICBsZXQgQXV0b2NvbXBsZXRlTW9kZWwgPSBuZXcgQXV0b2NvbXBsZXRlRFRPKCk7XHJcbiAgLy8gICAgICAgQXV0b2NvbXBsZXRlTW9kZWwudmFsdWUgPSBWYWx1ZTtcclxuICAvLyAgICAgICBsZXQgbW9kZWwgPSBuZXcgVHlwZWFoZWFkTWF0Y2goQXV0b2NvbXBsZXRlTW9kZWwsVmFsdWUpO1xyXG4gIC8vICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wuc2V0VmFsdWUobW9kZWwpO1xyXG4gIC8vICAgICAgIHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpXHJcblxyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9IFxyXG5cclxuICAvLyAgIGVsc2Uge1xyXG5cclxuICAvLyAgICAgaWYgKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wudmFsdWUgPT0gVmFsdWUpIHtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnNldEVycm9ycyh7IE5ld1NlbGVjdGlvblZhbGlkYXRpb25LZXk6IHRoaXMuTmV3U2VsZWN0aW9uVmFsaWRhdGlvbktleSB9KTtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAvLyAgICAgICB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLmludmFsaWQ7XHJcbiAgLy8gICAgICAgcmV0dXJuO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gICB9XHJcbiAgLy8gIH1cclxuXHJcblxyXG4gIC8vIGhhbmRsZVJlc3VsdFNlbGVjdGVkKHJlc3VsdCkge1xyXG4gIFxyXG4gIC8vICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC5zZXRWYWx1ZShyZXN1bHQpO1xyXG4gIC8vICAgdGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClcclxuICAvLyAgIHRoaXMuT25DaGFuZ2UuZW1pdCh0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlKVxyXG4gIC8vICAgdGhpcy5TZWFyY2ggPSB0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLnZhbHVlLnZhbHVlXHJcbiAgIFxyXG5cclxuXHJcbiAgLy8gfVxyXG4gXHJcbiAgLy9FeHRlcm5hbCBNZXRob2RcclxuICBSZW1vdmVSZXF1aXJlZFZhbGlkYXRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LlJlbW92ZVJlcXVpcmVkVmFsaWRhdGlvbih0aGlzLkF1dG9jb21wbGV0ZVRleHRCb3hDb250cm9sLCB0aGlzLnZhbGlkYXRpb25SdWxlcywgdGhpcy5vcHRpb25zKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZFJlcXVpcmVkVmFsaWRhdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuQWRkUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCB0aGlzLm9wdGlvbnMpXHJcbiAgfVxyXG5cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIFJlbW92ZUN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5SZW1vdmVDdXN0b21WYWxpZGF0aW9uKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIEFkZEN1c3RvbVZhbGlkYXRpb24gPSAoQ3VzdG9tVmFsaWRhdGlvbikgPT4ge1xyXG4gICAgdGhpcy5jb250cm9sVXRpbGl0eS5BZGRDdXN0b21WYWxpZGF0aW9uKHRoaXMuQXV0b2NvbXBsZXRlVGV4dEJveENvbnRyb2wsIHRoaXMudmFsaWRhdGlvblJ1bGVzLCBDdXN0b21WYWxpZGF0aW9uKVxyXG4gIH1cclxuICAvL0V4dGVybmFsIE1ldGhvZFxyXG4gIElzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LklzVmFsaWQodGhpcy5BdXRvY29tcGxldGVUZXh0Qm94Q29udHJvbClcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuIl19