@fundamental-ngx/platform 0.47.4 → 0.48.0-rc.1

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 (457) hide show
  1. package/README.md +0 -28
  2. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +6 -11
  3. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +6 -8
  4. package/esm2022/approval-flow/approval-flow-messages/approval-flow-messages.component.mjs +5 -6
  5. package/esm2022/approval-flow/approval-flow-node/approval-flow-drop-zone.directive.mjs +5 -5
  6. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +8 -11
  7. package/esm2022/approval-flow/approval-flow-select-type/approval-flow-select-type.component.mjs +6 -8
  8. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +5 -7
  9. package/esm2022/approval-flow/approval-flow-toolbar-actions/approval-flow-toolbar-actions.component.mjs +5 -6
  10. package/esm2022/approval-flow/approval-flow-user-details/approval-flow-user-details.component.mjs +6 -6
  11. package/esm2022/approval-flow/approval-flow-user-list/approval-flow-user-list.component.mjs +6 -7
  12. package/esm2022/approval-flow/approval-flow.component.mjs +8 -10
  13. package/esm2022/approval-flow/approval-flow.module.mjs +4 -4
  14. package/esm2022/approval-flow/services/approval-flow-add-node-view.service.mjs +3 -3
  15. package/esm2022/button/button.component.mjs +5 -5
  16. package/esm2022/button/button.module.mjs +4 -4
  17. package/esm2022/dynamic-page/directives/dynamic-page-header-subtitle.directive.mjs +3 -3
  18. package/esm2022/dynamic-page/directives/dynamic-page-header-title.directive.mjs +3 -3
  19. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content-host.component.mjs +5 -5
  20. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +5 -5
  21. package/esm2022/dynamic-page/dynamic-page-footer/dynamic-page-footer.component.mjs +3 -3
  22. package/esm2022/dynamic-page/dynamic-page-header/actions/global-actions/dynamic-page-global-actions.component.mjs +3 -3
  23. package/esm2022/dynamic-page/dynamic-page-header/actions/layout-actions/dynamic-page-layout-actions.component.mjs +3 -3
  24. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +4 -4
  25. package/esm2022/dynamic-page/dynamic-page-header/key-info/dynamic-page-key-info.component.mjs +3 -3
  26. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title-image.component.mjs +3 -3
  27. package/esm2022/dynamic-page/dynamic-page-header/title/dynamic-page-title.component.mjs +3 -3
  28. package/esm2022/dynamic-page/dynamic-page.component.mjs +8 -10
  29. package/esm2022/dynamic-page/dynamic-page.config.mjs +4 -4
  30. package/esm2022/dynamic-page/dynamic-page.module.mjs +4 -4
  31. package/esm2022/dynamic-page/dynamic-page.service.mjs +3 -3
  32. package/esm2022/feed-input/feed-input.component.mjs +6 -7
  33. package/esm2022/feed-input/feed-input.module.mjs +4 -4
  34. package/esm2022/form/auto-complete/auto-complete.directive.mjs +5 -5
  35. package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -4
  36. package/esm2022/form/checkbox/checkbox.component.mjs +6 -6
  37. package/esm2022/form/checkbox/checkbox.module.mjs +4 -4
  38. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +8 -8
  39. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +4 -4
  40. package/esm2022/form/combobox/combobox/combobox.component.mjs +9 -11
  41. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +13 -15
  42. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -4
  43. package/esm2022/form/combobox/combobox.config.mjs +4 -4
  44. package/esm2022/form/combobox/combobox.module.mjs +4 -4
  45. package/esm2022/form/combobox/commons/base-combobox.mjs +8 -6
  46. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +15 -15
  47. package/esm2022/form/date-picker/date-picker.component.mjs +6 -6
  48. package/esm2022/form/date-picker/date-picker.module.mjs +4 -4
  49. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -6
  50. package/esm2022/form/datetime-picker/datetime-picker.module.mjs +4 -4
  51. package/esm2022/form/form-generator/base-dynamic-form-generator-control.mjs +3 -3
  52. package/esm2022/form/form-generator/controls/dynamic-form-generator-checkbox/dynamic-form-generator-checkbox.component.mjs +4 -4
  53. package/esm2022/form/form-generator/controls/dynamic-form-generator-datepicker/dynamic-form-generator-datepicker.component.mjs +4 -4
  54. package/esm2022/form/form-generator/controls/dynamic-form-generator-editor/dynamic-form-generator-editor.component.mjs +4 -4
  55. package/esm2022/form/form-generator/controls/dynamic-form-generator-input/dynamic-form-generator-input.component.mjs +6 -7
  56. package/esm2022/form/form-generator/controls/dynamic-form-generator-multi-input/dynamic-form-generator-multi-input.component.mjs +4 -4
  57. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +3 -3
  58. package/esm2022/form/form-generator/controls/dynamic-form-generator-radio/dynamic-form-generator-radio.component.mjs +4 -4
  59. package/esm2022/form/form-generator/controls/dynamic-form-generator-select/dynamic-form-generator-select.component.mjs +4 -4
  60. package/esm2022/form/form-generator/controls/dynamic-form-generator-switch/dynamic-form-generator-switch.component.mjs +4 -4
  61. package/esm2022/form/form-generator/dynamic-form-control-field.directive.mjs +5 -5
  62. package/esm2022/form/form-generator/dynamic-form-control.directive.mjs +6 -6
  63. package/esm2022/form/form-generator/fdp-form-generator.module.mjs +4 -4
  64. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +9 -11
  65. package/esm2022/form/form-generator/form-generator-components-accessor.service.mjs +3 -3
  66. package/esm2022/form/form-generator/form-generator-field/form-generator-field.component.mjs +7 -8
  67. package/esm2022/form/form-generator/form-generator.service.mjs +5 -5
  68. package/esm2022/form/form-generator/pipes/get-hint-options.pipe.mjs +5 -5
  69. package/esm2022/form/form-generator/pipes/get-ordered-form-controls.pipe.mjs +3 -3
  70. package/esm2022/form/form-group/fdp-form.module.mjs +4 -4
  71. package/esm2022/form/form-group/form-field/form-field.component.mjs +10 -10
  72. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +6 -6
  73. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +6 -6
  74. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +5 -5
  75. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
  76. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +6 -6
  77. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +6 -6
  78. package/esm2022/form/form-group/form-group.component.mjs +8 -10
  79. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +3 -3
  80. package/esm2022/form/form-group/services/form-field-layout.service.mjs +5 -5
  81. package/esm2022/form/index.mjs +1 -3
  82. package/esm2022/form/input/fdp-input.module.mjs +4 -4
  83. package/esm2022/form/input/input.component.mjs +6 -6
  84. package/esm2022/form/input-group/addon-body.component.mjs +5 -5
  85. package/esm2022/form/input-group/addon.component.mjs +5 -5
  86. package/esm2022/form/input-group/input-group.component.mjs +12 -12
  87. package/esm2022/form/input-group/input-group.config.mjs +4 -4
  88. package/esm2022/form/input-group/input-group.module.mjs +4 -4
  89. package/esm2022/form/input-group/input.component.mjs +3 -3
  90. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +7 -7
  91. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +6 -6
  92. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +10 -12
  93. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +8 -9
  94. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -4
  95. package/esm2022/form/multi-combobox/multi-combobox.config.mjs +4 -4
  96. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +4 -4
  97. package/esm2022/form/multi-input/base-multi-input.mjs +6 -6
  98. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +12 -12
  99. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -4
  100. package/esm2022/form/multi-input/multi-input.component.mjs +9 -11
  101. package/esm2022/form/multi-input/multi-input.config.mjs +4 -4
  102. package/esm2022/form/multi-input/multi-input.module.mjs +4 -4
  103. package/esm2022/form/radio-group/radio/radio.component.mjs +8 -8
  104. package/esm2022/form/radio-group/radio-group.component.mjs +8 -8
  105. package/esm2022/form/radio-group/radio-group.module.mjs +4 -4
  106. package/esm2022/form/select/commons/base-select.mjs +6 -6
  107. package/esm2022/form/select/select/select.component.mjs +8 -8
  108. package/esm2022/form/select/select.config.mjs +4 -4
  109. package/esm2022/form/select/select.module.mjs +4 -4
  110. package/esm2022/form/step-input/base.step-input.mjs +5 -5
  111. package/esm2022/form/step-input/number/number-step-input.component.mjs +9 -10
  112. package/esm2022/form/step-input/step-input-action-button.mjs +3 -3
  113. package/esm2022/form/step-input/step-input-control.directive.mjs +6 -6
  114. package/esm2022/form/step-input/step-input-decrement.directive.mjs +5 -5
  115. package/esm2022/form/step-input/step-input-increment.directive.mjs +5 -5
  116. package/esm2022/form/step-input/step-input.config.mjs +3 -3
  117. package/esm2022/form/step-input/step-input.module.mjs +4 -4
  118. package/esm2022/form/switch/switch/switch.component.mjs +6 -6
  119. package/esm2022/form/switch/switch/switch.config.mjs +3 -3
  120. package/esm2022/form/switch/switch.module.mjs +4 -4
  121. package/esm2022/form/text-area/text-area.component.mjs +8 -9
  122. package/esm2022/form/text-area/text-area.config.mjs +3 -3
  123. package/esm2022/form/text-area/text-area.module.mjs +4 -4
  124. package/esm2022/form/time-picker/time-picker.component.mjs +6 -6
  125. package/esm2022/form/time-picker/time-picker.module.mjs +4 -4
  126. package/esm2022/fundamental-ngx.module.mjs +14 -33
  127. package/esm2022/icon-tab-bar/components/closable-icon-tab-bar.class.mjs +3 -3
  128. package/esm2022/icon-tab-bar/components/icon-tab-bar-base.class.mjs +5 -9
  129. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +6 -8
  130. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +6 -8
  131. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +5 -8
  132. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +7 -9
  133. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +6 -15
  134. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.mjs +5 -9
  135. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +6 -8
  136. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-container.directive.mjs +5 -5
  137. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-item.directive.mjs +5 -5
  138. package/esm2022/icon-tab-bar/directives/dnd/icon-bar-dnd-list.directive.mjs +5 -5
  139. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +8 -9
  140. package/esm2022/icon-tab-bar/icon-tab-bar.module.mjs +4 -4
  141. package/esm2022/index.mjs +8 -12
  142. package/esm2022/info-label/info-label.component.mjs +5 -5
  143. package/esm2022/info-label/info-label.module.mjs +4 -4
  144. package/esm2022/link/link.component.mjs +5 -5
  145. package/esm2022/link/link.module.mjs +4 -4
  146. package/esm2022/list/action-list-item/action-list-item.component.mjs +3 -3
  147. package/esm2022/list/action-list-item/action-list-item.module.mjs +4 -4
  148. package/esm2022/list/base-list-item.mjs +11 -11
  149. package/esm2022/list/display-list-item/display-list-item.component.mjs +6 -7
  150. package/esm2022/list/display-list-item/display-list-item.module.mjs +4 -4
  151. package/esm2022/list/free-content-list-item/free-content-list-item.component.mjs +4 -4
  152. package/esm2022/list/list-group-footer.component.mjs +3 -3
  153. package/esm2022/list/list-group-header.component.mjs +3 -3
  154. package/esm2022/list/list.component.mjs +9 -11
  155. package/esm2022/list/list.config.mjs +3 -3
  156. package/esm2022/list/list.module.mjs +4 -4
  157. package/esm2022/list/load-more-content.directive.mjs +4 -4
  158. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +4 -4
  159. package/esm2022/list/object-list-item/object-list-item.component.mjs +6 -7
  160. package/esm2022/list/object-list-item/object-list-item.module.mjs +4 -4
  161. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +6 -7
  162. package/esm2022/list/standard-list-item/standard-list-item.module.mjs +4 -4
  163. package/esm2022/menu/menu-item.component.mjs +7 -7
  164. package/esm2022/menu/menu-trigger.directive.mjs +6 -6
  165. package/esm2022/menu/menu.component.mjs +6 -6
  166. package/esm2022/menu/menu.module.mjs +4 -4
  167. package/esm2022/menu-button/menu-button.component.mjs +5 -5
  168. package/esm2022/menu-button/menu-button.module.mjs +4 -4
  169. package/esm2022/message-popover/components/message-popover-form-wrapper/message-popover-form-wrapper.component.mjs +6 -6
  170. package/esm2022/message-popover/components/message-view/message-view.component.mjs +8 -10
  171. package/esm2022/message-popover/directives/message-popover-form-item.directive.mjs +6 -6
  172. package/esm2022/message-popover/message-popover.component.mjs +7 -9
  173. package/esm2022/message-popover/platform-message-popover.module.mjs +4 -4
  174. package/esm2022/object-marker/object-marker.component.mjs +6 -7
  175. package/esm2022/object-marker/object-marker.module.mjs +4 -4
  176. package/esm2022/object-status/object-status.component.mjs +8 -8
  177. package/esm2022/object-status/object-status.module.mjs +4 -4
  178. package/esm2022/page-footer/page-footer.component.mjs +6 -6
  179. package/esm2022/page-footer/page-footer.module.mjs +4 -4
  180. package/esm2022/panel/panel-actions.component.mjs +3 -3
  181. package/esm2022/panel/panel-content/panel-content.component.mjs +4 -4
  182. package/esm2022/panel/panel.component.mjs +5 -5
  183. package/esm2022/panel/panel.config.mjs +4 -4
  184. package/esm2022/panel/panel.module.mjs +4 -4
  185. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +8 -9
  186. package/esm2022/search-field/search-field-mobile/search-field-mobile.module.mjs +4 -4
  187. package/esm2022/search-field/search-field.component.mjs +16 -18
  188. package/esm2022/search-field/search-field.module.mjs +4 -4
  189. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +9 -16
  190. package/esm2022/settings-generator/layouts/base-settings-generator-layout.mjs +3 -3
  191. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +5 -6
  192. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +6 -9
  193. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +6 -8
  194. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +7 -7
  195. package/esm2022/settings-generator/settings-generator-layout-accessor.service.mjs +3 -3
  196. package/esm2022/settings-generator/settings-generator.component.mjs +9 -9
  197. package/esm2022/settings-generator/settings-generator.module.mjs +4 -4
  198. package/esm2022/settings-generator/settings-generator.service.mjs +4 -4
  199. package/esm2022/shared/base.mjs +5 -5
  200. package/esm2022/shared/form/base.input.mjs +6 -6
  201. package/esm2022/shared/form/collection-base.input.mjs +6 -6
  202. package/esm2022/shared/form/inline-layout-collection-base.input.mjs +13 -13
  203. package/esm2022/shared/pipes/convert-bytes/convert-bytes.pipe.mjs +3 -3
  204. package/esm2022/shared/pipes/pipe.module.mjs +4 -4
  205. package/esm2022/shared/platform.config.mjs +3 -3
  206. package/esm2022/slider/slider.component.mjs +6 -6
  207. package/esm2022/slider/slider.module.mjs +4 -4
  208. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.mjs +4 -4
  209. package/esm2022/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.mjs +4 -4
  210. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +6 -9
  211. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +7 -9
  212. package/esm2022/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.mjs +3 -3
  213. package/esm2022/smart-filter-bar/directives/smart-filter-bar-subject.directive.mjs +5 -5
  214. package/esm2022/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.mjs +4 -4
  215. package/esm2022/smart-filter-bar/smart-filter-bar.class.mjs +3 -3
  216. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +8 -10
  217. package/esm2022/smart-filter-bar/smart-filter-bar.module.mjs +4 -4
  218. package/esm2022/smart-filter-bar/smart-filter-bar.service.mjs +4 -4
  219. package/esm2022/split-menu-button/split-menu-button.component.mjs +6 -6
  220. package/esm2022/split-menu-button/split-menu-button.module.mjs +4 -4
  221. package/esm2022/table/components/no-data-wrapper/no-data-wrapper.component.mjs +3 -3
  222. package/esm2022/table/components/reset-button/reset-button.component.mjs +5 -5
  223. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +6 -8
  224. package/esm2022/table/components/table-column/table-column.component.mjs +6 -6
  225. package/esm2022/table/components/table-column-resizer/table-column-resizer.component.mjs +6 -6
  226. package/esm2022/table/components/table-editable-cell/table-editable-cell.component.mjs +5 -15
  227. package/esm2022/table/components/table-group-row/table-group-row.component.mjs +7 -7
  228. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +6 -6
  229. package/esm2022/table/components/table-header-row/table-header-row.component.mjs +11 -13
  230. package/esm2022/table/components/table-p13-dialog/columns/columns.component.mjs +7 -9
  231. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +9 -11
  232. package/esm2022/table/components/table-p13-dialog/filtering/filtering.component.mjs +6 -9
  233. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +6 -8
  234. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +9 -11
  235. package/esm2022/table/components/table-p13-dialog/table-p13-columns.component.mjs +3 -3
  236. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +5 -5
  237. package/esm2022/table/components/table-p13-dialog/table-p13-filter.component.mjs +3 -3
  238. package/esm2022/table/components/table-p13-dialog/table-p13-group.component.mjs +3 -3
  239. package/esm2022/table/components/table-p13-dialog/table-p13-sort.component.mjs +3 -3
  240. package/esm2022/table/components/table-popping-row/table-popping-row.component.mjs +7 -9
  241. package/esm2022/table/components/table-row/table-row.component.mjs +8 -12
  242. package/esm2022/table/components/table-toolbar/table-toolbar-actions.component.mjs +3 -3
  243. package/esm2022/table/components/table-toolbar/table-toolbar-left-actions.component.mjs +3 -3
  244. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +7 -8
  245. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-custom.component.mjs +6 -6
  246. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +5 -6
  247. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +5 -14
  248. package/esm2022/table/components/table-view-settings-dialog/filtering/filter-step.component.mjs +5 -8
  249. package/esm2022/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +5 -7
  250. package/esm2022/table/components/table-view-settings-dialog/filtering/filters.component.mjs +7 -10
  251. package/esm2022/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +6 -8
  252. package/esm2022/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +6 -9
  253. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-dialog.component.mjs +5 -5
  254. package/esm2022/table/components/table-view-settings-dialog/table-view-settings-filter.component.mjs +3 -3
  255. package/esm2022/table/table.component.mjs +9 -14
  256. package/esm2022/table/table.module.mjs +4 -4
  257. package/esm2022/table-helpers/directives/platform-table-column-responsive.directive.mjs +6 -6
  258. package/esm2022/table-helpers/directives/table-cell-header-popover.directive.mjs +4 -4
  259. package/esm2022/table-helpers/directives/table-cell-resizable.directive.mjs +5 -5
  260. package/esm2022/table-helpers/directives/table-cell-selectable.directive.mjs +3 -3
  261. package/esm2022/table-helpers/directives/table-cell.directive.mjs +16 -16
  262. package/esm2022/table-helpers/directives/table-data-source.directive.mjs +3 -3
  263. package/esm2022/table-helpers/directives/table-draggable.directive.mjs +3 -3
  264. package/esm2022/table-helpers/directives/table-header-resizer.directive.mjs +3 -3
  265. package/esm2022/table-helpers/directives/table-header.directive.mjs +7 -7
  266. package/esm2022/table-helpers/directives/table-initial-state.directive.mjs +3 -3
  267. package/esm2022/table-helpers/directives/table-scrollable.directive.mjs +4 -4
  268. package/esm2022/table-helpers/directives/table-view-settings-filter-custom.directive.mjs +4 -4
  269. package/esm2022/table-helpers/directives/table-virtual-scroll.directive.mjs +3 -3
  270. package/esm2022/table-helpers/enums/collection-filter.enum.mjs +16 -1
  271. package/esm2022/table-helpers/pipes/cell-styles.pipe.mjs +3 -3
  272. package/esm2022/table-helpers/pipes/column-resizable-side.pipe.mjs +3 -3
  273. package/esm2022/table-helpers/pipes/column-sorting-direction.pipe.mjs +3 -3
  274. package/esm2022/table-helpers/pipes/row-classes.pipe.mjs +3 -3
  275. package/esm2022/table-helpers/pipes/selection-cell-styles.pipe.mjs +3 -3
  276. package/esm2022/table-helpers/services/table-column-resize.service.mjs +5 -5
  277. package/esm2022/table-helpers/services/table-responsive.service.mjs +5 -5
  278. package/esm2022/table-helpers/services/table-row.service.mjs +3 -3
  279. package/esm2022/table-helpers/services/table-scroll-dispatcher.service.mjs +3 -3
  280. package/esm2022/table-helpers/services/table.service.mjs +3 -3
  281. package/esm2022/table-helpers/table-helpers.module.mjs +4 -4
  282. package/esm2022/value-help-dialog/components/base-tab/vhd-base-tab.component.mjs +5 -5
  283. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +6 -10
  284. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +13 -15
  285. package/esm2022/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.mjs +3 -3
  286. package/esm2022/value-help-dialog/directives/condition-count-message.directive.mjs +5 -5
  287. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +12 -17
  288. package/esm2022/value-help-dialog/value-help-dialog.module.mjs +4 -4
  289. package/esm2022/variant-management/components/manage-variant-item/manage-variant-item.component.mjs +5 -5
  290. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +6 -8
  291. package/esm2022/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.mjs +3 -3
  292. package/esm2022/variant-management/directives/variant-management-dirty-label.directive.mjs +4 -4
  293. package/esm2022/variant-management/variant-management.component.mjs +8 -10
  294. package/esm2022/variant-management/variant-management.module.mjs +4 -4
  295. package/esm2022/wizard-generator/base-wizard-generator.mjs +5 -5
  296. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +7 -8
  297. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +7 -9
  298. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +6 -7
  299. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +6 -7
  300. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +5 -6
  301. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +7 -7
  302. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +3 -3
  303. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +3 -3
  304. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +3 -3
  305. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +3 -3
  306. package/esm2022/wizard-generator/wizard-dialog-generator.service.mjs +4 -4
  307. package/esm2022/wizard-generator/wizard-generator.module.mjs +4 -4
  308. package/esm2022/wizard-generator/wizard-generator.service.mjs +4 -4
  309. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +62 -74
  310. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  311. package/fesm2022/fundamental-ngx-platform-button.mjs +8 -8
  312. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  313. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +54 -56
  314. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  315. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -10
  316. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  317. package/fesm2022/fundamental-ngx-platform-form.mjs +444 -602
  318. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  319. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +59 -87
  320. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  321. package/fesm2022/fundamental-ngx-platform-info-label.mjs +8 -8
  322. package/fesm2022/fundamental-ngx-platform-info-label.mjs.map +1 -1
  323. package/fesm2022/fundamental-ngx-platform-link.mjs +8 -8
  324. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  325. package/fesm2022/fundamental-ngx-platform-list.mjs +73 -78
  326. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  327. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +8 -8
  328. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  329. package/fesm2022/fundamental-ngx-platform-menu.mjs +20 -20
  330. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  331. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +29 -33
  332. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  333. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +9 -10
  334. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  335. package/fesm2022/fundamental-ngx-platform-object-status.mjs +12 -12
  336. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  337. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +9 -9
  338. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  339. package/fesm2022/fundamental-ngx-platform-panel.mjs +19 -19
  340. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  341. package/fesm2022/fundamental-ngx-platform-search-field.mjs +29 -32
  342. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  343. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +45 -56
  344. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  345. package/fesm2022/fundamental-ngx-platform-shared.mjs +36 -36
  346. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  347. package/fesm2022/fundamental-ngx-platform-slider.mjs +9 -9
  348. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  349. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +48 -53
  350. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  351. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +9 -9
  352. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  353. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +115 -100
  354. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  355. package/fesm2022/fundamental-ngx-platform-table.mjs +168 -218
  356. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  357. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +41 -52
  358. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  359. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +28 -31
  360. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  361. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +58 -61
  362. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  363. package/fesm2022/fundamental-ngx-platform.mjs +19 -42
  364. package/fesm2022/fundamental-ngx-platform.mjs.map +1 -1
  365. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +2 -2
  366. package/form/form-group/form-group.component.d.ts +1 -1
  367. package/form/index.d.ts +0 -2
  368. package/form/input-group/input-group.component.d.ts +2 -2
  369. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +1 -1
  370. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +2 -2
  371. package/fundamental-ngx-platform-v0.48.0-rc.1.tgz +0 -0
  372. package/fundamental-ngx.module.d.ts +27 -31
  373. package/icon-tab-bar/components/icon-tab-bar-base.class.d.ts +0 -2
  374. package/icon-tab-bar/components/popovers/icon-tab-bar-popover-base.class.d.ts +0 -2
  375. package/index.d.ts +7 -11
  376. package/list/list.component.d.ts +1 -1
  377. package/package.json +4 -28
  378. package/page-footer/page-footer.component.d.ts +1 -1
  379. package/schematics/ng-add/index.js +1 -1
  380. package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +1 -1
  381. package/settings-generator/settings-generator.component.d.ts +2 -2
  382. package/table/components/table-p13-dialog/filtering/filter-rule.component.d.ts +2 -0
  383. package/table/table.component.d.ts +1 -1
  384. package/table-helpers/enums/collection-filter.enum.d.ts +2 -0
  385. package/value-help-dialog/components/select-tab/select-tab.component.d.ts +1 -1
  386. package/value-help-dialog/value-help-dialog/value-help-dialog.component.d.ts +1 -1
  387. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +2 -2
  388. package/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.d.ts +2 -2
  389. package/action-bar/README.md +0 -25
  390. package/action-bar/action-bar.component.d.ts +0 -36
  391. package/action-bar/action-bar.module.d.ts +0 -8
  392. package/action-bar/index.d.ts +0 -2
  393. package/action-button-group/README.md +0 -25
  394. package/action-button-group/action-button-group.component.d.ts +0 -11
  395. package/action-button-group/action-button-group.module.d.ts +0 -7
  396. package/action-button-group/index.d.ts +0 -2
  397. package/esm2022/action-bar/action-bar.component.mjs +0 -64
  398. package/esm2022/action-bar/action-bar.module.mjs +0 -17
  399. package/esm2022/action-bar/fundamental-ngx-platform-action-bar.mjs +0 -5
  400. package/esm2022/action-bar/index.mjs +0 -3
  401. package/esm2022/action-button-group/action-button-group.component.mjs +0 -21
  402. package/esm2022/action-button-group/action-button-group.module.mjs +0 -16
  403. package/esm2022/action-button-group/fundamental-ngx-platform-action-button-group.mjs +0 -5
  404. package/esm2022/action-button-group/index.mjs +0 -3
  405. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +0 -143
  406. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +0 -16
  407. package/esm2022/thumbnail/fundamental-ngx-platform-thumbnail.mjs +0 -5
  408. package/esm2022/thumbnail/index.mjs +0 -6
  409. package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +0 -166
  410. package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +0 -100
  411. package/esm2022/thumbnail/thumbnail.component.mjs +0 -148
  412. package/esm2022/thumbnail/thumbnail.interfaces.mjs +0 -2
  413. package/esm2022/thumbnail/thumbnail.module.mjs +0 -19
  414. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +0 -148
  415. package/esm2022/upload-collection/dialogs/new-folder/new-folder.component.mjs +0 -69
  416. package/esm2022/upload-collection/directives/upload-collection-dragndrop.directive.mjs +0 -138
  417. package/esm2022/upload-collection/domain/upload-collection-data-provider.mjs +0 -106
  418. package/esm2022/upload-collection/domain/upload-collection-data-source.mjs +0 -95
  419. package/esm2022/upload-collection/fundamental-ngx-platform-upload-collection.mjs +0 -5
  420. package/esm2022/upload-collection/helpers/generate-message-stripe-data.mjs +0 -20
  421. package/esm2022/upload-collection/index.mjs +0 -12
  422. package/esm2022/upload-collection/models/upload-collection.models.mjs +0 -58
  423. package/esm2022/upload-collection/services/files-validator.service.mjs +0 -68
  424. package/esm2022/upload-collection/upload-collection/upload-collection-data-provider-test.mjs +0 -280
  425. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +0 -926
  426. package/esm2022/upload-collection/upload-collection.module.mjs +0 -33
  427. package/fesm2022/fundamental-ngx-platform-action-bar.mjs +0 -85
  428. package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +0 -1
  429. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs +0 -41
  430. package/fesm2022/fundamental-ngx-platform-action-button-group.mjs.map +0 -1
  431. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +0 -418
  432. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +0 -1
  433. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +0 -1893
  434. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +0 -1
  435. package/form/platform-file-uploader/platform-file-uploader.component.d.ts +0 -69
  436. package/form/platform-file-uploader/platform-file-uploader.module.d.ts +0 -7
  437. package/fundamental-ngx-platform-v0.47.4.tgz +0 -0
  438. package/thumbnail/README.md +0 -25
  439. package/thumbnail/index.d.ts +0 -5
  440. package/thumbnail/thumbnail-details/thumbnail-details.component.d.ts +0 -57
  441. package/thumbnail/thumbnail-image/thumbnail-image.component.d.ts +0 -48
  442. package/thumbnail/thumbnail.component.d.ts +0 -73
  443. package/thumbnail/thumbnail.interfaces.d.ts +0 -12
  444. package/thumbnail/thumbnail.module.d.ts +0 -9
  445. package/upload-collection/README.md +0 -25
  446. package/upload-collection/dialogs/move-to/move-to.component.d.ts +0 -57
  447. package/upload-collection/dialogs/new-folder/new-folder.component.d.ts +0 -26
  448. package/upload-collection/directives/upload-collection-dragndrop.directive.d.ts +0 -64
  449. package/upload-collection/domain/upload-collection-data-provider.d.ts +0 -46
  450. package/upload-collection/domain/upload-collection-data-source.d.ts +0 -49
  451. package/upload-collection/helpers/generate-message-stripe-data.d.ts +0 -3
  452. package/upload-collection/index.d.ts +0 -11
  453. package/upload-collection/models/upload-collection.models.d.ts +0 -225
  454. package/upload-collection/services/files-validator.service.d.ts +0 -18
  455. package/upload-collection/upload-collection/upload-collection-data-provider-test.d.ts +0 -36
  456. package/upload-collection/upload-collection/upload-collection.component.d.ts +0 -259
  457. package/upload-collection/upload-collection.module.d.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-search-field.mjs","sources":["../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.interface.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.html","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.module.ts","../../../../libs/platform/src/lib/search-field/search-field.component.ts","../../../../libs/platform/src/lib/search-field/search-field.component.html","../../../../libs/platform/src/lib/search-field/search-field.module.ts","../../../../libs/platform/src/lib/search-field/fundamental-ngx-platform-search-field.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const SEARCH_FIELD_COMPONENT = new InjectionToken<string[]>('SearchFieldMobileInterface');\n\nexport interface SearchFieldMobileInterface extends MobileMode {\n inputText: string;\n isOpenChange: Subject<boolean>;\n isOpen: boolean;\n\n dialogApprove(): void;\n dialogDismiss(): void;\n}\n\nexport interface SearchFieldChildContent {\n inputFieldTemplate: TemplateRef<any>;\n suggestionMenuTemplate: TemplateRef<any>;\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarElementDirective, BarMiddleDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogService\n} from '@fundamental-ngx/core/dialog';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeConfigToken,\n MobileModeControl\n} from '@fundamental-ngx/core/mobile-mode';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldChildContent,\n SearchFieldMobileInterface\n} from '../search-field-mobile.interface';\n\n@Component({\n selector: 'fdp-search-field-mobile',\n templateUrl: 'search-field-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TemplateDirective,\n BarMiddleDirective,\n BarElementDirective,\n NgIf,\n NgTemplateOutlet,\n DialogCloseButtonComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n DialogFooterComponent,\n ButtonBarComponent\n ]\n})\nexport class SearchFieldMobileComponent\n extends MobileModeBase<SearchFieldMobileInterface>\n implements OnInit, OnDestroy\n{\n /** @hidden */\n childContent: SearchFieldChildContent | null = null;\n\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n @Inject(SEARCH_FIELD_COMPONENT) searchFieldComponent: SearchFieldMobileInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, searchFieldComponent, MobileModeControl.SEARCH_FIELD, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.listenChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** @hidden */\n listenChanges(): void {\n this._component.isOpenChange.pipe(takeUntil(this._onDestroy$)).subscribe((isOpen) => {\n if (!isOpen) {\n this._handleDismiss();\n\n return;\n }\n\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n });\n }\n\n /** @hidden */\n _handleDismiss(): void {\n this.dialogRef.close();\n this._component.dialogDismiss();\n }\n\n /** @hidden */\n _handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n escKeyCloseable: true,\n container: this._elementRef.nativeElement\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n <ng-container\n *ngIf=\"childContent?.inputFieldTemplate\"\n [ngTemplateOutlet]=\"childContent?.inputFieldTemplate!\"\n ></ng-container>\n </fd-bar-element>\n <button\n fd-dialog-close-button\n fdkInitialFocus\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"_handleDismiss()\"\n ></button>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container\n *ngIf=\"childContent?.suggestionMenuTemplate\"\n [ngTemplateOutlet]=\"childContent?.suggestionMenuTemplate!\"\n ></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"_handleApprove()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SearchFieldMobileComponent } from './search-field/search-field-mobile.component';\n\n@NgModule({\n imports: [SearchFieldMobileComponent],\n exports: [SearchFieldMobileComponent]\n})\nexport class PlatformSearchFieldMobileModule {}\n","import { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ConnectedPosition, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { AsyncPipe, DOCUMENT, NgClass, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { fromEvent, isObservable, merge, Observable, of, Subject } from 'rxjs';\nimport { filter, map, take, takeUntil } from 'rxjs/operators';\n\nimport { FormsModule } from '@angular/forms';\nimport {\n DynamicComponentService,\n KeyUtil,\n Nullable,\n RtlService,\n SearchHighlightPipe\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { OptionComponent, SelectComponent } from '@fundamental-ngx/core/select';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport { FD_SHELLBAR_SEARCH_COMPONENT } from '@fundamental-ngx/core/shellbar';\nimport { FdTranslatePipe, resolveTranslationSyncFn } from '@fundamental-ngx/i18n';\nimport { MenuComponent, MenuItemComponent, MenuTriggerDirective } from '@fundamental-ngx/platform/menu';\nimport { BaseComponent, SearchFieldDataSource } from '@fundamental-ngx/platform/shared';\nimport equal from 'fast-deep-equal';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldMobileInterface\n} from './search-field-mobile/search-field-mobile.interface';\nimport { PlatformSearchFieldMobileModule } from './search-field-mobile/search-field-mobile.module';\nimport { SearchFieldMobileComponent } from './search-field-mobile/search-field/search-field-mobile.component';\n\nexport interface SearchInput {\n text: string;\n category: string | null;\n}\n\nexport interface SuggestionItem {\n value: string;\n isHistorical?: string;\n data?: any;\n}\n\nexport interface ValueLabelItem {\n value: string;\n label: string;\n}\n\n@Directive({\n selector: '[fdpSearchFieldSuggestion]',\n host: {\n tabindex: '-1'\n },\n standalone: true\n})\nexport class SearchFieldSuggestionDirective implements FocusableOption {\n /** @hidden */\n constructor(private element: ElementRef) {}\n\n /** @hidden */\n focus(): void {\n this.element.nativeElement.focus();\n }\n}\n\nlet searchFieldIdCount = 0;\n\ntype Appearance = SearchComponent['appearance'] | undefined;\n\n@Component({\n selector: 'fdp-search-field',\n templateUrl: './search-field.component.html',\n styleUrls: ['./search-field.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n contentDensityObserverProviders(),\n {\n provide: FD_SHELLBAR_SEARCH_COMPONENT,\n useExisting: SearchFieldComponent\n }\n ],\n standalone: true,\n imports: [\n NgTemplateOutlet,\n MenuTriggerDirective,\n NgIf,\n MenuComponent,\n NgFor,\n MenuItemComponent,\n SelectComponent,\n OptionComponent,\n FormsModule,\n IconComponent,\n NgClass,\n SearchFieldSuggestionDirective,\n AsyncPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n forwardRef(() => SuggestionMatchesPipe)\n ]\n})\nexport class SearchFieldComponent\n extends BaseComponent\n implements OnInit, OnChanges, OnDestroy, SearchFieldMobileInterface, SearchComponent\n{\n /** Type of component used to render the categories dropdown. */\n @Input()\n categoryMode: 'menu' | 'select' = 'menu';\n\n /** Additional appearance configuration. */\n @Input()\n set appearance(value: Appearance) {\n if (equal(value, this.appearance)) {\n return;\n }\n\n this._appearance = value;\n this._cd.detectChanges();\n }\n\n get appearance(): Appearance {\n return this._appearance;\n }\n\n /** Placeholder text for search input field. */\n @Input()\n placeholder: string;\n\n /** Set Mobile Mode */\n @Input()\n mobile: boolean;\n\n /** Search Field Mobile configuration */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether display Refresh button */\n @Input()\n disableRefresh = false;\n\n /** Whether display search button */\n @Input()\n disableSearch = false;\n\n /** List of string values to populate suggestion dropdown selection. */\n @Input()\n set suggestions(value: SuggestionItem[] | Observable<SuggestionItem[]>) {\n this._suggestions = value;\n if (Array.isArray(value)) {\n // convert suggestions to an array of string for \"dropdown values\"\n const dropdownValues = value.map((suggestion: SuggestionItem) => suggestion.value);\n this._dropdownValues$ = of(dropdownValues);\n } else if (isObservable(value)) {\n this._dropdownValues$ = value.pipe(\n map((suggestions: SuggestionItem[]) => suggestions.map((suggestion) => suggestion.value))\n );\n } else {\n this._dropdownValues$ = of([]);\n }\n }\n get suggestions(): SuggestionItem[] | Observable<SuggestionItem[]> {\n return this._suggestions;\n }\n\n /** Datasource for suggestion list */\n @Input()\n set dataSource(value: SearchFieldDataSource<any>) {\n if (value) {\n this._initializeDataSource(value);\n }\n }\n get dataSource(): SearchFieldDataSource<any> {\n return this._dataSource;\n }\n\n /** Initial input text. */\n @Input()\n inputText: string;\n\n /** List of categories. */\n @Input()\n set categories(value: ValueLabelItem[]) {\n this._categories = value;\n this._showCategoryDropdown = Array.isArray(value) && value.length > 0;\n }\n get categories(): ValueLabelItem[] {\n return this._categories;\n }\n\n /** Current category, value should be present in categories array */\n @Input()\n currentCategory: ValueLabelItem;\n\n /** Set label for category dropdown button. */\n @Input()\n categoryLabel = 'Category';\n\n /** Hide display of category label */\n @Input()\n hideCategoryLabel = false;\n\n /** Toggle \"loading\" mode. */\n @Input()\n isLoading = false;\n\n /**\n * ARIA label to specify what the search field is\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Id of elements (separated by space) for setting aria-labelledby for search input\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabelledby: string;\n\n /** Whether to always show search button. */\n @Input()\n forceSearchButton = false;\n\n /** Whether to disable the \"suggestions found\" live announcer. */\n @Input()\n disableSuggestionsFoundAnnouncer = false;\n\n /** Input change event. */\n @Output()\n inputChange: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Search submit event. */\n @Output()\n searchSubmit: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Cancel search event. */\n @Output()\n cancelSearch: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Open mobile mode event. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('categoryDropdown', { static: false })\n categoryDropdown: PopoverComponent;\n\n /** @hidden */\n @ViewChild('inputGroup', { static: false })\n inputGroup: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputField', { static: false })\n inputField: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputFieldTemplate')\n inputFieldTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('suggestionMenuTemplate', { static: false })\n suggestionMenuTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChildren(SearchFieldSuggestionDirective)\n suggestionItems: QueryList<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n get searchFieldValue(): SearchInput {\n return {\n text: this.inputText,\n category: this._currentCategory?.value || null\n };\n }\n /** @hidden Focus state */\n get isFocused(): boolean {\n return this._document?.activeElement === this.inputField?.nativeElement;\n }\n\n /**\n * Observable list of string values taken from `suggestions` to populate dropdown menu.\n * @hidden\n */\n _dropdownValues$: Observable<string[]> = of([]);\n\n /**\n * Currently set category.\n * @hidden\n */\n _currentCategory?: ValueLabelItem;\n\n /**\n * Whether or not to show typeahead dropdown.\n * @hidden\n */\n _showDropdown = false;\n\n /**\n * Whether or not to show category dropdown. This is dependent on length of `categoryValues` property.\n * @hidden\n */\n _showCategoryDropdown = false;\n\n /** @hidden */\n _inputId = '';\n\n /** @hidden */\n _submitId = '';\n\n /** @hidden */\n _menuId = '';\n\n /** @hidden */\n _refreshId = '';\n\n /** @hidden */\n _clearId = '';\n\n /** @hidden */\n _dir: Direction = 'ltr';\n\n /** @hidden */\n isOpen = false;\n\n /** @hidden */\n _isRefresh = false;\n\n /** @hidden */\n _isSearchDone = false;\n\n /** @hidden */\n private _suggestions: SuggestionItem[] | Observable<SuggestionItem[]>;\n\n /** @hidden */\n private _dataSource: SearchFieldDataSource<any>;\n\n /** @hidden */\n private _categories: ValueLabelItem[];\n\n /** @hidden */\n private _currentSearchSuggestionAnnouncementMessage = '';\n\n /** @hidden */\n private _suggestionOverlayRef: OverlayRef | null;\n\n /** @hidden */\n private _suggestionPortal: TemplatePortal;\n\n /** @hidden */\n private _suggestionkeyManager: FocusKeyManager<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n private resolveTranslation = resolveTranslationSyncFn();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private readonly _dataSourceChanged$ = new Subject<void>();\n\n /** @hidden */\n private _appearance: Appearance;\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private readonly _overlay: Overlay,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n protected readonly _cd: ChangeDetectorRef,\n @Optional() private readonly _rtl: RtlService,\n @Inject(DOCUMENT) private readonly _document: Document,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _dynamicComponentService: DynamicComponentService,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super(_cd);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n if (this.mobile && this.isOpen && KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.showDialog(false);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n const baseId = 'fdp-search-field';\n this._inputId = `${baseId}-input-${searchFieldIdCount++}`;\n this._submitId = `${baseId}-submit-${searchFieldIdCount++}`;\n this._menuId = `${baseId}-menu-${searchFieldIdCount++}`;\n\n this._isRefresh = true;\n\n if (this._rtl) {\n this._rtl.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl: boolean) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._cd.detectChanges();\n });\n }\n\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('categories' in changes || 'currentCategory' in changes) {\n this.setCurrentCategory(this.currentCategory);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._suggestionOverlayRef) {\n this._suggestionOverlayRef.dispose();\n this._suggestionOverlayRef = null;\n }\n this._suggestionkeyManager?.destroy();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Focuses the search input field.\n */\n focus(): void {\n this.inputField.nativeElement.focus();\n this._cd.detectChanges();\n }\n\n /** Capturing onKeydown of input element */\n onKeydown(event: KeyboardEvent): void {\n if (!event) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n if (this._suggestionkeyManager) {\n this._suggestionkeyManager.onKeydown(event);\n }\n } else if (KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.closeSuggestionMenu(true);\n }\n }\n\n /**\n * Capturing value change in input text field of combobox.\n * @hidden\n */\n onValueChange(event: string): void {\n // when search result not changed but input text is changed.\n // again need to announce the result, so clear this message.\n setTimeout(() => (this._currentSearchSuggestionAnnouncementMessage = ''));\n this._isSearchDone = false;\n this._isRefresh = false;\n\n if (this.mobile && !this.isOpen) {\n this.openMobileMode();\n }\n\n this.inputChange.emit(this.searchFieldValue);\n const inputStr: string = event.trim();\n if (inputStr.length === 0) {\n this.closeSuggestionMenu();\n return;\n }\n\n if (!this.mobile) {\n this.openSuggestionMenu();\n }\n\n if (this.dataSource) {\n const match = new Map();\n match.set('keyword', inputStr);\n match.set('category', this._currentCategory?.value || null);\n\n this.dataSource.match(match);\n }\n\n this._updateSearchAnnouncementText();\n }\n\n /**\n * Capturing item selection from dropdown menu of combobox.\n * @hidden\n */\n onItemClick(event: string): void {\n this.inputText = event;\n this.inputChange.emit(this.searchFieldValue);\n this.searchSubmit.emit(this.searchFieldValue);\n this.closeSuggestionMenu();\n if (this.mobile) {\n this.showDialog(false);\n }\n this._isSearchDone = true;\n this._cd.detectChanges();\n }\n\n /**\n * Callback function which gets executed on keyboard enter of input text field.\n * @hidden\n */\n onSearchSubmit(event?: Event): void {\n event?.preventDefault();\n\n if (this.isLoading) {\n this.cancelSearch.emit();\n return;\n }\n\n this.searchSubmit.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n\n if (this.inputText) {\n this._isSearchDone = true;\n }\n\n this.closeSuggestionMenu(false);\n }\n\n /**\n * Sets current category.\n * @hidden\n */\n setCurrentCategory(currentCategory: ValueLabelItem): void {\n this._currentCategory =\n currentCategory &&\n this.categories?.find(\n (category) => category.label === currentCategory.label && category.value === currentCategory.value\n );\n\n this.inputChange.emit(this.searchFieldValue);\n }\n\n /**\n * Open suggestion menu\n */\n openSuggestionMenu(): void {\n this.closeSuggestionMenu();\n this._suggestionkeyManager?.destroy();\n this._suggestionkeyManager = new FocusKeyManager(this.suggestionItems);\n if (this._showDropdown) {\n return;\n }\n\n // create overlay\n const overlayConfig = this._createSuggetionOverlayConfig();\n this._suggestionOverlayRef = this._overlay.create(overlayConfig);\n\n // get portal to attach to overlay\n this._suggestionPortal = new TemplatePortal(this.suggestionMenuTemplate, this._viewContainerRef);\n this._suggestionOverlayRef.attach(this._suggestionPortal);\n\n // add subscription to capture outside clicks\n fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter((event) => {\n const target = event.target as HTMLElement;\n return (\n !!this._suggestionOverlayRef &&\n !this._suggestionOverlayRef.overlayElement.contains(target) &&\n this._showDropdown\n );\n }),\n take(1),\n takeUntil(this._onDestroy$)\n )\n .subscribe((event) => {\n const target = event.target as HTMLElement;\n const focus = !(target.tagName === 'INPUT' && this._inputId !== target.id);\n this.closeSuggestionMenu(focus);\n });\n\n this._showDropdown = true;\n }\n\n /** @hidden */\n openMobileMode(): void {\n this.showDialog(true);\n }\n\n /** @hidden */\n dialogApprove(): void {\n this.onItemClick(this.inputText);\n }\n\n /** @hidden */\n dialogDismiss(): void {\n this.showDialog(false);\n }\n\n /** @hidden */\n showDialog(isOpen: boolean): void {\n if (this.isOpen !== isOpen) {\n this.isOpen = isOpen;\n\n this.isOpenChange.emit(isOpen);\n }\n }\n\n /** @hidden */\n closeSuggestionMenu(focus = true): void {\n if (!this._suggestionOverlayRef) {\n return;\n }\n this._suggestionOverlayRef.detach();\n if (focus) {\n this.focus();\n }\n this._showDropdown = false;\n }\n\n /** @hidden */\n clearTextInput(): void {\n this.inputText = '';\n this._cd.detectChanges();\n this.inputChange.emit(this.searchFieldValue);\n this.cancelSearch.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n this._isSearchDone = false;\n\n this.closeSuggestionMenu(false);\n this.focus();\n }\n\n /** @hidden */\n _createSuggetionOverlayConfig(): OverlayConfig {\n const positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this.inputGroup)\n .withLockedPosition()\n .withPositions(positions);\n const scrollStrategy = this._overlay.scrollStrategies.reposition();\n return new OverlayConfig({\n positionStrategy,\n scrollStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: this.inputGroup.nativeElement.offsetWidth\n });\n }\n\n /** @hidden */\n _initializeDataSource(dataSource: SearchFieldDataSource<any>): void {\n this._dataSourceChanged$.next();\n dataSource\n .open()\n .pipe(takeUntil(merge(this._onDestroy$, this._dataSourceChanged$)))\n .subscribe((data) => {\n this._dropdownValues$ = of(data);\n });\n this._dataSource = dataSource;\n }\n\n /**\n * @hidden return count for matching suggestion with input text\n * @returns number\n */\n private _getSuggestionsLength(): number {\n let count = 0;\n this._dropdownValues$.pipe(takeUntil(this._onDestroy$)).subscribe((suggestions) => {\n suggestions?.forEach((suggestion) => {\n if (this.inputText && suggestion?.toLowerCase().indexOf(this.inputText?.trim()?.toLowerCase()) > -1) {\n count++;\n }\n });\n });\n\n return count;\n }\n\n /** @hidden */\n private async _updateSearchAnnouncementText(): Promise<void> {\n // create search suggestion message with count.\n const suggestionCount = this._getSuggestionsLength();\n const searchSuggestionMessage = this.resolveTranslation('platformSearchField.searchSuggestionMessage', {\n count: suggestionCount\n });\n const searchSuggestionNavigateMessage = this.resolveTranslation(\n 'platformSearchField.searchSuggestionNavigateMessage'\n );\n this._currentSearchSuggestionAnnouncementMessage =\n searchSuggestionMessage + (suggestionCount > 0 ? searchSuggestionNavigateMessage : '');\n if (this.inputText?.length > 0) {\n await this._liveAnnouncer.announce(this._currentSearchSuggestionAnnouncementMessage);\n }\n }\n\n /** @hidden */\n private async _setUpMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: SEARCH_FIELD_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n await this._dynamicComponentService.createDynamicModule(\n { inputFieldTemplate: this.inputFieldTemplate, suggestionMenuTemplate: this.suggestionMenuTemplate },\n PlatformSearchFieldMobileModule,\n SearchFieldMobileComponent,\n this._viewContainerRef,\n injector\n );\n }\n}\n\n@Pipe({\n name: 'suggestionMatches',\n standalone: true\n})\nexport class SuggestionMatchesPipe implements PipeTransform {\n /** @hidden */\n transform(values: string[] | null, match: string, mobile = false): string[] {\n if (!values) {\n values = [];\n }\n if (mobile && !match) {\n return values;\n }\n const processedMatch = match.trim().toLowerCase();\n return values.filter((value) => value.toLowerCase().indexOf(processedMatch) > -1);\n }\n}\n","<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : inputFieldTemplate\"></ng-container>\n\n<ng-template #mobileTemplate>\n <ng-container *ngTemplateOutlet=\"inputFieldTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n <span class=\"fdp-search-field__category-label\" *ngIf=\"!hideCategoryLabel\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n </button>\n <fdp-menu #categoryMenu>\n <fdp-menu-item *ngFor=\"let category of categories\" (itemSelect)=\"setCurrentCategory(category)\"\n >{{ category.label }}\n </fdp-menu-item>\n </fdp-menu>\n</ng-template>\n\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n <li fd-option *ngFor=\"let category of categories\" [value]=\"category\">{{ category.label }}</li>\n </fd-select>\n</ng-template>\n\n<ng-template #inputFieldTemplate>\n <div\n class=\"fdp-search-field\"\n [class.with-categories]=\"_showCategoryDropdown\"\n [class.is-loading]=\"isLoading\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.hide-category-label]=\"hideCategoryLabel\"\n >\n <div\n #inputGroup\n class=\"fdp-search-field__input-group fd-input-group {{ appearance?.searchClass }}\"\n [class.is-focus]=\"isFocused\"\n >\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\"\n *ngIf=\"_showCategoryDropdown\"\n >\n <ng-template\n *ngTemplateOutlet=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n <input\n #inputField\n type=\"search\"\n [attr.placeholder]=\"placeholder\"\n class=\"fdp-search-field__input fd-input fd-input-group__input {{ appearance?.searchFieldClass }}\"\n [attr.id]=\"_inputId\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.aria-label]=\"ariaLabel || ('platformSearchField.searchInputLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"\n (_dropdownValues$ | async)?.length !== 0 ? (_showDropdown ? 'true' : 'false') : null\n \"\n [attr.aria-haspopup]=\"(_dropdownValues$ | async)?.length !== 0\"\n autocomplete=\"off\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onSearchSubmit($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"mobile && openMobileMode()\"\n />\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\"\n *ngIf=\"inputText && inputText.length > 0\"\n >\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.clearButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__clear fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_clearId\"\n (click)=\"clearTextInput()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n *ngIf=\"forceSearchButton || isLoading || (!isLoading && !_isSearchDone)\"\n >\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n *ngIf=\"!disableSearch\"\n [attr.aria-label]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.id]=\"_submitId\"\n [attr.disabled]=\"disabled ? '' : null\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"search\"></fd-icon>\n </button>\n </span>\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n *ngIf=\"!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)\"\n >\n <button\n [attr.aria-label]=\"'platformSearchField.synchronizeButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__loading fd-input-group__button fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_refreshId\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"synchronize\"></fd-icon>\n </button>\n </span>\n <div *ngIf=\"appearance?.helperClass\" [ngClass]=\"appearance?.helperClass\"></div>\n </div>\n </div>\n</ng-template>\n\n<ng-template #suggestionMenuTemplate>\n <ng-container *ngIf=\"_dropdownValues$ | async | suggestionMatches : inputText : mobile as suggestions\">\n <div class=\"fdp-search-field__suggestion-dropdown\" [attr.dir]=\"_dir\" *ngIf=\"suggestions?.length\">\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.fd-menu--mobile]=\"mobile\"\n [class.fd-menu--overflow]=\"!mobile\"\n [attr.id]=\"_menuId\"\n #menu\n (keydown)=\"onKeydown($event)\"\n >\n <ul class=\"fd-menu__list\" role=\"menu\">\n <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n *ngFor=\"let value of suggestions\"\n (keydown.enter)=\"onItemClick(value); $event.preventDefault()\"\n (keydown.tab)=\"onItemClick(value)\"\n (keyup.space)=\"onItemClick(value); $event.stopPropagation()\"\n (click)=\"onItemClick(value)\"\n [innerHTML]=\"value | highlight : inputText : true : true\"\n role=\"menuitem\"\n ></li>\n </ul>\n </nav>\n </div>\n </ng-container>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe } from './search-field.component';\n\nconst components = [SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe, ContentDensityModule];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformSearchFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAKa,sBAAsB,GAAG,IAAI,cAAc,CAAW,4BAA4B;;ACuDzF,MAAO,0BACT,SAAQ,cAA0C,CAAA;;AAUlD,IAAA,WAAA,CACI,UAAsB,EACtB,aAA4B,EACI,oBAAgD,EACxC,WAAoC,EAAA;AAE5E,QAAA,KAAK,CAAC,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;;QAZxG,IAAY,CAAA,YAAA,GAAmC,IAAI,CAAC;KAanD;;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;;IAGD,WAAW,GAAA;QACP,KAAK,CAAC,SAAS,EAAE,CAAC;KACrB;;IAGD,aAAa,GAAA;QACT,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YAChF,IAAI,CAAC,MAAM,EAAE;gBACT,IAAI,CAAC,cAAc,EAAE,CAAC;gBAEtB,OAAO;AACV,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,EAAE;gBACvC,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;IAGD,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;KACnC;;IAGD,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;KACnC;;IAGO,KAAK,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC3D,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,eAAe,EAAE,IAAI;YACrB,GAAG,IAAI,CAAC,YAAY;AACpB,YAAA,sBAAsB,EAAE,KAAK;AAC7B,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa;AAC5C,SAAA,CAAC,CAAC;KACN;8GAnEQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAcvB,sBAAsB,EAAA,EAAA,EAAA,KAAA,EACV,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAfjC,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5DvC,smDAwCA,EDKQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,sGACf,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,kBAAkB,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,mBAAmB,EACnB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAI,EACJ,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAChB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,0BAA0B,kGAG1B,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGb,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAtBtC,SAAS;+BACI,yBAAyB,EAAA,eAAA,EAElB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACL,eAAe;wBACf,qBAAqB;wBACrB,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,IAAI;wBACJ,gBAAgB;wBAChB,0BAA0B;wBAC1B,aAAa;wBACb,kBAAkB;wBAClB,mBAAmB;wBACnB,qBAAqB;wBACrB,kBAAkB;AACrB,qBAAA,EAAA,QAAA,EAAA,smDAAA,EAAA,CAAA;;0BAgBI,MAAM;2BAAC,sBAAsB,CAAA;;0BAC7B,QAAQ;;0BAAI,MAAM;2BAAC,kBAAkB,CAAA;4CAPb,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;;;ME5DlB,+BAA+B,CAAA;8GAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAA/B,+BAA+B,EAAA,OAAA,EAAA,CAH9B,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAC1B,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AAE3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,YAH9B,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG3B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,0BAA0B,CAAC;oBACrC,OAAO,EAAE,CAAC,0BAA0B,CAAC;AACxC,iBAAA,CAAA;;;MC+EY,8BAA8B,CAAA;;AAEvC,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAAI;;IAG3C,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KACtC;8GAPQ,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAP1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,IAAI,EAAE;AACF,wBAAA,QAAQ,EAAE,IAAI;AACjB,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;AAWD,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAqCrB,MAAO,oBACT,SAAQ,aAAa,CAAA;;IAQrB,IACI,UAAU,CAAC,KAAiB,EAAA;QAC5B,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE;YAC/B,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;AAED,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAuBD,IACI,WAAW,CAAC,KAAsD,EAAA;AAClE,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;;AAEtB,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,UAA0B,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;AACnF,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAC9B,GAAG,CAAC,CAAC,WAA6B,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAC5F,CAAC;AACL,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAClC,SAAA;KACJ;AACD,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;;IAGD,IACI,UAAU,CAAC,KAAiC,EAAA;AAC5C,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACrC,SAAA;KACJ;AACD,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;IAOD,IACI,UAAU,CAAC,KAAuB,EAAA;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KACzE;AACD,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;AAiFD,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,SAAS;AACpB,YAAA,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,IAAI;SACjD,CAAC;KACL;;AAED,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC;KAC3E;;AAuFD,IAAA,WAAA,CACW,UAAmC,EACzB,QAAiB,EACjB,iBAAmC,EACnC,SAAmB,EACjB,GAAsB,EACZ,IAAgB,EACV,SAAmB,EACrC,cAA6B,EACrC,wBAAiD,EACjD,sBAA8C,EAAA;QAEvD,KAAK,CAAC,GAAG,CAAC,CAAC;QAXJ,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;QACzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QACnC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACjB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QACZ,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QACV,IAAS,CAAA,SAAA,GAAT,SAAS,CAAU;QACrC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;QACrC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAAyB;QACjD,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;;QA3Q3D,IAAY,CAAA,YAAA,GAAsB,MAAM,CAAC;;QA+BzC,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;;QAIvB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAqDtB,IAAa,CAAA,aAAA,GAAG,UAAU,CAAC;;QAI3B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;QAI1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAkBlB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;QAI1B,IAAgC,CAAA,gCAAA,GAAG,KAAK,CAAC;;AAIzC,QAAA,IAAA,CAAA,WAAW,GAA8B,IAAI,YAAY,EAAE,CAAC;;AAI5D,QAAA,IAAA,CAAA,YAAY,GAA8B,IAAI,YAAY,EAAE,CAAC;;AAI7D,QAAA,IAAA,CAAA,YAAY,GAA8B,IAAI,YAAY,EAAE,CAAC;;AAI7D,QAAA,IAAA,CAAA,YAAY,GAA0B,IAAI,YAAY,EAAW,CAAC;AAsClE;;;AAGG;AACH,QAAA,IAAA,CAAA,gBAAgB,GAAyB,EAAE,CAAC,EAAE,CAAC,CAAC;AAQhD;;;AAGG;QACH,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAEtB;;;AAGG;QACH,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;;QAG9B,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;;QAGd,IAAS,CAAA,SAAA,GAAG,EAAE,CAAC;;QAGf,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;;QAGb,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;;QAGhB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;;QAGd,IAAI,CAAA,IAAA,GAAc,KAAK,CAAC;;QAGxB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAGf,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;;QAGnB,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAYd,IAA2C,CAAA,2CAAA,GAAG,EAAE,CAAC;;QAYjD,IAAkB,CAAA,kBAAA,GAAG,wBAAwB,EAAE,CAAC;;AAGvC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;;AAGlC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAQ,CAAC;KAmB1D;;AAID,IAAA,aAAa,CAAC,KAAoB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;AAClE,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;KACJ;;IAGD,QAAQ,GAAA;QACJ,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAG,MAAM,CAAU,OAAA,EAAA,kBAAkB,EAAE,CAAA,CAAE,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,CAAA,EAAG,MAAM,CAAW,QAAA,EAAA,kBAAkB,EAAE,CAAA,CAAE,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,CAAA,EAAG,MAAM,CAAS,MAAA,EAAA,kBAAkB,EAAE,CAAA,CAAE,CAAC;AAExD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAc,KAAI;AACzE,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAClC,gBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;AACN,SAAA;QAED,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC3B,SAAA;KACJ;;AAGD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,YAAY,IAAI,OAAO,IAAI,iBAAiB,IAAI,OAAO,EAAE;AACzD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACjD,SAAA;KACJ;;IAGD,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACrC,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;AAED;;AAEG;IACH,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;;AAGD,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC1B,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;AACV,SAAA;AAED,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE;YAClD,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC5B,gBAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/C,aAAA;AACJ,SAAA;aAAM,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAClC,SAAA;KACJ;AAED;;;AAGG;AACH,IAAA,aAAa,CAAC,KAAa,EAAA;;;AAGvB,QAAA,UAAU,CAAC,OAAO,IAAI,CAAC,2CAA2C,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7C,QAAA,MAAM,QAAQ,GAAW,KAAK,CAAC,IAAI,EAAE,CAAC;AACtC,QAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC7B,SAAA;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;AACxB,YAAA,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC/B,YAAA,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;AAE5D,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAChC,SAAA;QAED,IAAI,CAAC,6BAA6B,EAAE,CAAC;KACxC;AAED;;;AAGG;AACH,IAAA,WAAW,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;AAED;;;AAGG;AACH,IAAA,cAAc,CAAC,KAAa,EAAA;QACxB,KAAK,EAAE,cAAc,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO;AACV,SAAA;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAE9C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC7B,SAAA;AAED,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACnC;AAED;;;AAGG;AACH,IAAA,kBAAkB,CAAC,eAA+B,EAAA;AAC9C,QAAA,IAAI,CAAC,gBAAgB;YACjB,eAAe;gBACf,IAAI,CAAC,UAAU,EAAE,IAAI,CACjB,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,CACrG,CAAC;QAEN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAChD;AAED;;AAEG;IACH,kBAAkB,GAAA;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC3B,QAAA,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,qBAAqB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,OAAO;AACV,SAAA;;AAGD,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC3D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;;AAGjE,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;;AAG1D,QAAA,SAAS,CAAa,QAAQ,EAAE,OAAO,CAAC;AACnC,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,KAAK,KAAI;AACb,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC3C,YAAA,QACI,CAAC,CAAC,IAAI,CAAC,qBAAqB;gBAC5B,CAAC,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3D,IAAI,CAAC,aAAa,EACpB;AACN,SAAC,CAAC,EACF,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAC9B;AACA,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC3C,YAAA,MAAM,KAAK,GAAG,EAAE,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;AAC3E,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACpC,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;KAC7B;;IAGD,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACzB;;IAGD,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACpC;;IAGD,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;KAC1B;;AAGD,IAAA,UAAU,CAAC,MAAe,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAErB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,SAAA;KACJ;;IAGD,mBAAmB,CAAC,KAAK,GAAG,IAAI,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;YAC7B,OAAO;AACV,SAAA;AACD,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;AACpC,QAAA,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B;;IAGD,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAE9C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAE3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;;IAGD,6BAA6B,GAAA;AACzB,QAAA,MAAM,SAAS,GAAwB;AACnC,YAAA;AACI,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAClB,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AACrB,aAAA;SACJ,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ;AACjC,aAAA,QAAQ,EAAE;AACV,aAAA,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC;AACpC,aAAA,kBAAkB,EAAE;aACpB,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QACnE,OAAO,IAAI,aAAa,CAAC;YACrB,gBAAgB;YAChB,cAAc;AACd,YAAA,aAAa,EAAE,kCAAkC;AACjD,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW;AACnD,SAAA,CAAC,CAAC;KACN;;AAGD,IAAA,qBAAqB,CAAC,UAAsC,EAAA;AACxD,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAChC,UAAU;AACL,aAAA,IAAI,EAAE;AACN,aAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAClE,aAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAChB,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,SAAC,CAAC,CAAC;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;KACjC;AAED;;;AAGG;IACK,qBAAqB,GAAA;QACzB,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;AAC9E,YAAA,WAAW,EAAE,OAAO,CAAC,CAAC,UAAU,KAAI;gBAChC,IAAI,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACjG,oBAAA,KAAK,EAAE,CAAC;AACX,iBAAA;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;KAChB;;AAGO,IAAA,MAAM,6BAA6B,GAAA;;AAEvC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrD,QAAA,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,6CAA6C,EAAE;AACnG,YAAA,KAAK,EAAE,eAAe;AACzB,SAAA,CAAC,CAAC;QACH,MAAM,+BAA+B,GAAG,IAAI,CAAC,kBAAkB,CAC3D,qDAAqD,CACxD,CAAC;AACF,QAAA,IAAI,CAAC,2CAA2C;AAC5C,YAAA,uBAAuB,IAAI,eAAe,GAAG,CAAC,GAAG,+BAA+B,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;AACxF,SAAA;KACJ;;AAGO,IAAA,MAAM,gBAAgB,GAAA;AAC1B,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC7B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAChE,MAAM,EAAE,IAAI,CAAC,SAAS;AACzB,SAAA,CAAC,CAAC;AAEH,QAAA,MAAM,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CACnD,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,EAAE,EACpG,+BAA+B,EAC/B,0BAA0B,EAC1B,IAAI,CAAC,iBAAiB,EACtB,QAAQ,CACX,CAAC;KACL;AA5mBQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,wMA8QjB,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA9QX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EA3BlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,kCAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,+BAA+B,EAAE;AACjC,YAAA;AACI,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,WAAW,EAAE,oBAAoB;AACpC,aAAA;AACJ,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAwLa,8BAA8B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxShD,6uPAuKA,EAAA,MAAA,EAAA,CAAA,u+zFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,ODpDQ,gBAAgB,CAChB,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,oBAAoB,CACpB,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,IAAI,oIACJ,aAAa,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OACb,KAAK,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OACL,iBAAiB,CACjB,EAAA,CAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,eAAe,CACf,EAAA,CAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,OAAA,EAAA,QAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,eAAe,CACf,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,WAAW,CACX,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,aAAa,iLACb,OAAO,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAvCF,8BAA8B,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAyCnC,SAAS,CACT,EAAA,CAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,mBAAmB,CACnB,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,eAAe,sFAunBV,qBAAqB,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAnnBrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAjChC,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACP,wBAAA,+BAA+B,EAAE;AACjC,wBAAA;AACI,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAsB,oBAAA;AACpC,yBAAA;AACJ,qBAAA,EAAA,UAAA,EACW,IAAI,EACP,OAAA,EAAA;wBACL,gBAAgB;wBAChB,oBAAoB;wBACpB,IAAI;wBACJ,aAAa;wBACb,KAAK;wBACL,iBAAiB;wBACjB,eAAe;wBACf,eAAe;wBACf,WAAW;wBACX,aAAa;wBACb,OAAO;wBACP,8BAA8B;wBAC9B,SAAS;wBACT,mBAAmB;wBACnB,eAAe;AACf,wBAAA,UAAU,CAAC,MAAM,qBAAqB,CAAC;AAC1C,qBAAA,EAAA,QAAA,EAAA,6uPAAA,EAAA,MAAA,EAAA,CAAA,u+zFAAA,CAAA,EAAA,CAAA;;0BA+QI,QAAQ;;0BACR,MAAM;2BAAC,QAAQ,CAAA;mJAxQpB,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAgBN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAKN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAKN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAKF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAqBF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAYN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAWN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAQN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAQN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,gCAAgC,EAAA,CAAA;sBAD/B,KAAK;gBAKN,WAAW,EAAA,CAAA;sBADV,MAAM;gBAKP,YAAY,EAAA,CAAA;sBADX,MAAM;gBAKP,YAAY,EAAA,CAAA;sBADX,MAAM;gBAKP,YAAY,EAAA,CAAA;sBADX,MAAM;gBAKP,gBAAgB,EAAA,CAAA;sBADf,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAKhD,UAAU,EAAA,CAAA;sBADT,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAK1C,UAAU,EAAA,CAAA;sBADT,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAK1C,kBAAkB,EAAA,CAAA;sBADjB,SAAS;uBAAC,oBAAoB,CAAA;gBAK/B,sBAAsB,EAAA,CAAA;sBADrB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAKtD,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,8BAA8B,CAAA;gBAqH5C,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;MA4V1B,qBAAqB,CAAA;;AAE9B,IAAA,SAAS,CAAC,MAAuB,EAAE,KAAa,EAAE,MAAM,GAAG,KAAK,EAAA;QAC5D,IAAI,CAAC,MAAM,EAAE;YACT,MAAM,GAAG,EAAE,CAAC;AACf,SAAA;AACD,QAAA,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,OAAO,MAAM,CAAC;AACjB,SAAA;QACD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KACrF;8GAXQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,mBAAmB;AACzB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;AEjvBD,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;MAM1G,yBAAyB,CAAA;8GAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EANlB,OAAA,EAAA,CAAA,oBAAoB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAAjG,oBAAoB,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAMxG,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EANlB,OAAA,EAAA,CAAA,oBAAoB,EAAyD,oBAAoB,EAApB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMxG,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AACxB,oBAAA,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC;AAC3B,iBAAA,CAAA;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-platform-search-field.mjs","sources":["../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.interface.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.html","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.module.ts","../../../../libs/platform/src/lib/search-field/search-field.component.ts","../../../../libs/platform/src/lib/search-field/search-field.component.html","../../../../libs/platform/src/lib/search-field/search-field.module.ts","../../../../libs/platform/src/lib/search-field/fundamental-ngx-platform-search-field.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const SEARCH_FIELD_COMPONENT = new InjectionToken<string[]>('SearchFieldMobileInterface');\n\nexport interface SearchFieldMobileInterface extends MobileMode {\n inputText: string;\n isOpenChange: Subject<boolean>;\n isOpen: boolean;\n\n dialogApprove(): void;\n dialogDismiss(): void;\n}\n\nexport interface SearchFieldChildContent {\n inputFieldTemplate: TemplateRef<any>;\n suggestionMenuTemplate: TemplateRef<any>;\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarElementDirective, BarMiddleDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogService\n} from '@fundamental-ngx/core/dialog';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeConfigToken,\n MobileModeControl\n} from '@fundamental-ngx/core/mobile-mode';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldChildContent,\n SearchFieldMobileInterface\n} from '../search-field-mobile.interface';\n\n@Component({\n selector: 'fdp-search-field-mobile',\n templateUrl: 'search-field-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TemplateDirective,\n BarMiddleDirective,\n BarElementDirective,\n NgTemplateOutlet,\n DialogCloseButtonComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n DialogFooterComponent,\n ButtonBarComponent\n ]\n})\nexport class SearchFieldMobileComponent\n extends MobileModeBase<SearchFieldMobileInterface>\n implements OnInit, OnDestroy\n{\n /** @hidden */\n childContent: SearchFieldChildContent | null = null;\n\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n @Inject(SEARCH_FIELD_COMPONENT) searchFieldComponent: SearchFieldMobileInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, searchFieldComponent, MobileModeControl.SEARCH_FIELD, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.listenChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** @hidden */\n listenChanges(): void {\n this._component.isOpenChange.pipe(takeUntil(this._onDestroy$)).subscribe((isOpen) => {\n if (!isOpen) {\n this._handleDismiss();\n\n return;\n }\n\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n });\n }\n\n /** @hidden */\n _handleDismiss(): void {\n this.dialogRef.close();\n this._component.dialogDismiss();\n }\n\n /** @hidden */\n _handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n escKeyCloseable: true,\n container: this._elementRef.nativeElement\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n @if (childContent?.inputFieldTemplate) {\n <ng-template [ngTemplateOutlet]=\"childContent?.inputFieldTemplate!\"></ng-template>\n }\n </fd-bar-element>\n @if (mobileConfig.hasCloseButton) {\n <button\n fd-dialog-close-button\n fdkInitialFocus\n [mobile]=\"true\"\n (click)=\"_handleDismiss()\"\n ></button>\n }\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n @if (childContent?.suggestionMenuTemplate) {\n <ng-template [ngTemplateOutlet]=\"childContent?.suggestionMenuTemplate!\"></ng-template>\n }\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"_handleApprove()\">\n </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { SearchFieldMobileComponent } from './search-field/search-field-mobile.component';\n\n@NgModule({\n imports: [SearchFieldMobileComponent],\n exports: [SearchFieldMobileComponent]\n})\nexport class PlatformSearchFieldMobileModule {}\n","import { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ConnectedPosition, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { AsyncPipe, DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { fromEvent, isObservable, merge, Observable, of, Subject } from 'rxjs';\nimport { filter, map, take, takeUntil } from 'rxjs/operators';\n\nimport { FormsModule } from '@angular/forms';\nimport {\n DynamicComponentService,\n KeyUtil,\n Nullable,\n RtlService,\n SearchHighlightPipe\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { OptionComponent, SelectComponent } from '@fundamental-ngx/core/select';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport { FD_SHELLBAR_SEARCH_COMPONENT } from '@fundamental-ngx/core/shellbar';\nimport { FdTranslatePipe, resolveTranslationSyncFn } from '@fundamental-ngx/i18n';\nimport { MenuComponent, MenuItemComponent, MenuTriggerDirective } from '@fundamental-ngx/platform/menu';\nimport { BaseComponent, SearchFieldDataSource } from '@fundamental-ngx/platform/shared';\nimport equal from 'fast-deep-equal';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldMobileInterface\n} from './search-field-mobile/search-field-mobile.interface';\nimport { PlatformSearchFieldMobileModule } from './search-field-mobile/search-field-mobile.module';\nimport { SearchFieldMobileComponent } from './search-field-mobile/search-field/search-field-mobile.component';\n\nexport interface SearchInput {\n text: string;\n category: string | null;\n}\n\nexport interface SuggestionItem {\n value: string;\n isHistorical?: string;\n data?: any;\n}\n\nexport interface ValueLabelItem {\n value: string;\n label: string;\n}\n\n@Directive({\n selector: '[fdpSearchFieldSuggestion]',\n host: {\n tabindex: '-1'\n },\n standalone: true\n})\nexport class SearchFieldSuggestionDirective implements FocusableOption {\n /** @hidden */\n constructor(private element: ElementRef) {}\n\n /** @hidden */\n focus(): void {\n this.element.nativeElement.focus();\n }\n}\n\nlet searchFieldIdCount = 0;\n\ntype Appearance = SearchComponent['appearance'] | undefined;\n\n@Component({\n selector: 'fdp-search-field',\n templateUrl: './search-field.component.html',\n styleUrl: './search-field.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n contentDensityObserverProviders(),\n {\n provide: FD_SHELLBAR_SEARCH_COMPONENT,\n useExisting: SearchFieldComponent\n }\n ],\n standalone: true,\n imports: [\n NgTemplateOutlet,\n MenuTriggerDirective,\n MenuComponent,\n MenuItemComponent,\n SelectComponent,\n OptionComponent,\n FormsModule,\n IconComponent,\n NgClass,\n SearchFieldSuggestionDirective,\n AsyncPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n forwardRef(() => SuggestionMatchesPipe)\n ]\n})\nexport class SearchFieldComponent\n extends BaseComponent\n implements OnInit, OnChanges, OnDestroy, SearchFieldMobileInterface, SearchComponent\n{\n /** Type of component used to render the categories dropdown. */\n @Input()\n categoryMode: 'menu' | 'select' = 'menu';\n\n /** Additional appearance configuration. */\n @Input()\n set appearance(value: Appearance) {\n if (equal(value, this.appearance)) {\n return;\n }\n\n this._appearance = value;\n this._cd.detectChanges();\n }\n\n get appearance(): Appearance {\n return this._appearance;\n }\n\n /** Placeholder text for search input field. */\n @Input()\n placeholder: string;\n\n /** Set Mobile Mode */\n @Input()\n mobile: boolean;\n\n /** Search Field Mobile configuration */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether display Refresh button */\n @Input()\n disableRefresh = false;\n\n /** Whether display search button */\n @Input()\n disableSearch = false;\n\n /** List of string values to populate suggestion dropdown selection. */\n @Input()\n set suggestions(value: SuggestionItem[] | Observable<SuggestionItem[]>) {\n this._suggestions = value;\n if (Array.isArray(value)) {\n // convert suggestions to an array of string for \"dropdown values\"\n const dropdownValues = value.map((suggestion: SuggestionItem) => suggestion.value);\n this._dropdownValues$ = of(dropdownValues);\n } else if (isObservable(value)) {\n this._dropdownValues$ = value.pipe(\n map((suggestions: SuggestionItem[]) => suggestions.map((suggestion) => suggestion.value))\n );\n } else {\n this._dropdownValues$ = of([]);\n }\n }\n get suggestions(): SuggestionItem[] | Observable<SuggestionItem[]> {\n return this._suggestions;\n }\n\n /** Datasource for suggestion list */\n @Input()\n set dataSource(value: SearchFieldDataSource<any>) {\n if (value) {\n this._initializeDataSource(value);\n }\n }\n get dataSource(): SearchFieldDataSource<any> {\n return this._dataSource;\n }\n\n /** Initial input text. */\n @Input()\n inputText: string;\n\n /** List of categories. */\n @Input()\n set categories(value: ValueLabelItem[]) {\n this._categories = value;\n this._showCategoryDropdown = Array.isArray(value) && value.length > 0;\n }\n get categories(): ValueLabelItem[] {\n return this._categories;\n }\n\n /** Current category, value should be present in categories array */\n @Input()\n currentCategory: ValueLabelItem;\n\n /** Set label for category dropdown button. */\n @Input()\n categoryLabel = 'Category';\n\n /** Hide display of category label */\n @Input()\n hideCategoryLabel = false;\n\n /** Toggle \"loading\" mode. */\n @Input()\n isLoading = false;\n\n /**\n * ARIA label to specify what the search field is\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Id of elements (separated by space) for setting aria-labelledby for search input\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabelledby: string;\n\n /** Whether to always show search button. */\n @Input()\n forceSearchButton = false;\n\n /** Whether to disable the \"suggestions found\" live announcer. */\n @Input()\n disableSuggestionsFoundAnnouncer = false;\n\n /** Input change event. */\n @Output()\n inputChange: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Search submit event. */\n @Output()\n searchSubmit: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Cancel search event. */\n @Output()\n cancelSearch: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Open mobile mode event. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('categoryDropdown', { static: false })\n categoryDropdown: PopoverComponent;\n\n /** @hidden */\n @ViewChild('inputGroup', { static: false })\n inputGroup: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputField', { static: false })\n inputField: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputFieldTemplate')\n inputFieldTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('suggestionMenuTemplate', { static: false })\n suggestionMenuTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChildren(SearchFieldSuggestionDirective)\n suggestionItems: QueryList<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n get searchFieldValue(): SearchInput {\n return {\n text: this.inputText,\n category: this._currentCategory?.value || null\n };\n }\n /** @hidden Focus state */\n get isFocused(): boolean {\n return this._document?.activeElement === this.inputField?.nativeElement;\n }\n\n /**\n * Observable list of string values taken from `suggestions` to populate dropdown menu.\n * @hidden\n */\n _dropdownValues$: Observable<string[]> = of([]);\n\n /**\n * Currently set category.\n * @hidden\n */\n _currentCategory?: ValueLabelItem;\n\n /**\n * Whether or not to show typeahead dropdown.\n * @hidden\n */\n _showDropdown = false;\n\n /**\n * Whether or not to show category dropdown. This is dependent on length of `categoryValues` property.\n * @hidden\n */\n _showCategoryDropdown = false;\n\n /** @hidden */\n _inputId = '';\n\n /** @hidden */\n _submitId = '';\n\n /** @hidden */\n _menuId = '';\n\n /** @hidden */\n _refreshId = '';\n\n /** @hidden */\n _clearId = '';\n\n /** @hidden */\n _dir: Direction = 'ltr';\n\n /** @hidden */\n isOpen = false;\n\n /** @hidden */\n _isRefresh = false;\n\n /** @hidden */\n _isSearchDone = false;\n\n /** @hidden */\n private _suggestions: SuggestionItem[] | Observable<SuggestionItem[]>;\n\n /** @hidden */\n private _dataSource: SearchFieldDataSource<any>;\n\n /** @hidden */\n private _categories: ValueLabelItem[];\n\n /** @hidden */\n private _currentSearchSuggestionAnnouncementMessage = '';\n\n /** @hidden */\n private _suggestionOverlayRef: OverlayRef | null;\n\n /** @hidden */\n private _suggestionPortal: TemplatePortal;\n\n /** @hidden */\n private _suggestionkeyManager: FocusKeyManager<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n private resolveTranslation = resolveTranslationSyncFn();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private readonly _dataSourceChanged$ = new Subject<void>();\n\n /** @hidden */\n private _appearance: Appearance;\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private readonly _overlay: Overlay,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n protected readonly _cd: ChangeDetectorRef,\n @Optional() private readonly _rtl: RtlService,\n @Inject(DOCUMENT) private readonly _document: Document,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _dynamicComponentService: DynamicComponentService,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super(_cd);\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n if (this.mobile && this.isOpen && KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.showDialog(false);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n const baseId = 'fdp-search-field';\n this._inputId = `${baseId}-input-${searchFieldIdCount++}`;\n this._submitId = `${baseId}-submit-${searchFieldIdCount++}`;\n this._menuId = `${baseId}-menu-${searchFieldIdCount++}`;\n\n this._isRefresh = true;\n\n if (this._rtl) {\n this._rtl.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl: boolean) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._cd.detectChanges();\n });\n }\n\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('categories' in changes || 'currentCategory' in changes) {\n this.setCurrentCategory(this.currentCategory);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._suggestionOverlayRef) {\n this._suggestionOverlayRef.dispose();\n this._suggestionOverlayRef = null;\n }\n this._suggestionkeyManager?.destroy();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Focuses the search input field.\n */\n focus(): void {\n this.inputField.nativeElement.focus();\n this._cd.detectChanges();\n }\n\n /** Capturing onKeydown of input element */\n onKeydown(event: KeyboardEvent): void {\n if (!event) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n if (this._suggestionkeyManager) {\n this._suggestionkeyManager.onKeydown(event);\n }\n } else if (KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.closeSuggestionMenu(true);\n }\n }\n\n /**\n * Capturing value change in input text field of combobox.\n * @hidden\n */\n onValueChange(event: string): void {\n // when search result not changed but input text is changed.\n // again need to announce the result, so clear this message.\n setTimeout(() => (this._currentSearchSuggestionAnnouncementMessage = ''));\n this._isSearchDone = false;\n this._isRefresh = false;\n\n if (this.mobile && !this.isOpen) {\n this.openMobileMode();\n }\n\n this.inputChange.emit(this.searchFieldValue);\n const inputStr: string = event.trim();\n if (inputStr.length === 0) {\n this.closeSuggestionMenu();\n return;\n }\n\n if (!this.mobile) {\n this.openSuggestionMenu();\n }\n\n if (this.dataSource) {\n const match = new Map();\n match.set('keyword', inputStr);\n match.set('category', this._currentCategory?.value || null);\n\n this.dataSource.match(match);\n }\n\n this._updateSearchAnnouncementText();\n }\n\n /**\n * Capturing item selection from dropdown menu of combobox.\n * @hidden\n */\n onItemClick(event: string): void {\n this.inputText = event;\n this.inputChange.emit(this.searchFieldValue);\n this.searchSubmit.emit(this.searchFieldValue);\n this.closeSuggestionMenu();\n if (this.mobile) {\n this.showDialog(false);\n }\n this._isSearchDone = true;\n this._cd.detectChanges();\n }\n\n /**\n * Callback function which gets executed on keyboard enter of input text field.\n * @hidden\n */\n onSearchSubmit(event?: Event): void {\n event?.preventDefault();\n\n if (this.isLoading) {\n this.cancelSearch.emit();\n return;\n }\n\n this.searchSubmit.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n\n if (this.inputText) {\n this._isSearchDone = true;\n }\n\n this.closeSuggestionMenu(false);\n }\n\n /**\n * Sets current category.\n * @hidden\n */\n setCurrentCategory(currentCategory: ValueLabelItem): void {\n this._currentCategory =\n currentCategory &&\n this.categories?.find(\n (category) => category.label === currentCategory.label && category.value === currentCategory.value\n );\n\n this.inputChange.emit(this.searchFieldValue);\n }\n\n /**\n * Open suggestion menu\n */\n openSuggestionMenu(): void {\n this.closeSuggestionMenu();\n this._suggestionkeyManager?.destroy();\n this._suggestionkeyManager = new FocusKeyManager(this.suggestionItems);\n if (this._showDropdown) {\n return;\n }\n\n // create overlay\n const overlayConfig = this._createSuggetionOverlayConfig();\n this._suggestionOverlayRef = this._overlay.create(overlayConfig);\n\n // get portal to attach to overlay\n this._suggestionPortal = new TemplatePortal(this.suggestionMenuTemplate, this._viewContainerRef);\n this._suggestionOverlayRef.attach(this._suggestionPortal);\n\n // add subscription to capture outside clicks\n fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter((event) => {\n const target = event.target as HTMLElement;\n return (\n !!this._suggestionOverlayRef &&\n !this._suggestionOverlayRef.overlayElement.contains(target) &&\n this._showDropdown\n );\n }),\n take(1),\n takeUntil(this._onDestroy$)\n )\n .subscribe((event) => {\n const target = event.target as HTMLElement;\n const focus = !(target.tagName === 'INPUT' && this._inputId !== target.id);\n this.closeSuggestionMenu(focus);\n });\n\n this._showDropdown = true;\n }\n\n /** @hidden */\n openMobileMode(): void {\n this.showDialog(true);\n }\n\n /** @hidden */\n dialogApprove(): void {\n this.onItemClick(this.inputText);\n }\n\n /** @hidden */\n dialogDismiss(): void {\n this.showDialog(false);\n }\n\n /** @hidden */\n showDialog(isOpen: boolean): void {\n if (this.isOpen !== isOpen) {\n this.isOpen = isOpen;\n\n this.isOpenChange.emit(isOpen);\n }\n }\n\n /** @hidden */\n closeSuggestionMenu(focus = true): void {\n if (!this._suggestionOverlayRef) {\n return;\n }\n this._suggestionOverlayRef.detach();\n if (focus) {\n this.focus();\n }\n this._showDropdown = false;\n }\n\n /** @hidden */\n clearTextInput(): void {\n this.inputText = '';\n this._cd.detectChanges();\n this.inputChange.emit(this.searchFieldValue);\n this.cancelSearch.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n this._isSearchDone = false;\n\n this.closeSuggestionMenu(false);\n this.focus();\n }\n\n /** @hidden */\n _createSuggetionOverlayConfig(): OverlayConfig {\n const positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this.inputGroup)\n .withLockedPosition()\n .withPositions(positions);\n const scrollStrategy = this._overlay.scrollStrategies.reposition();\n return new OverlayConfig({\n positionStrategy,\n scrollStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: this.inputGroup.nativeElement.offsetWidth\n });\n }\n\n /** @hidden */\n _initializeDataSource(dataSource: SearchFieldDataSource<any>): void {\n this._dataSourceChanged$.next();\n dataSource\n .open()\n .pipe(takeUntil(merge(this._onDestroy$, this._dataSourceChanged$)))\n .subscribe((data) => {\n this._dropdownValues$ = of(data);\n });\n this._dataSource = dataSource;\n }\n\n /**\n * @hidden return count for matching suggestion with input text\n * @returns number\n */\n private _getSuggestionsLength(): number {\n let count = 0;\n this._dropdownValues$.pipe(takeUntil(this._onDestroy$)).subscribe((suggestions) => {\n suggestions?.forEach((suggestion) => {\n if (this.inputText && suggestion?.toLowerCase().indexOf(this.inputText?.trim()?.toLowerCase()) > -1) {\n count++;\n }\n });\n });\n\n return count;\n }\n\n /** @hidden */\n private async _updateSearchAnnouncementText(): Promise<void> {\n // create search suggestion message with count.\n const suggestionCount = this._getSuggestionsLength();\n const searchSuggestionMessage = this.resolveTranslation('platformSearchField.searchSuggestionMessage', {\n count: suggestionCount\n });\n const searchSuggestionNavigateMessage = this.resolveTranslation(\n 'platformSearchField.searchSuggestionNavigateMessage'\n );\n this._currentSearchSuggestionAnnouncementMessage =\n searchSuggestionMessage + (suggestionCount > 0 ? searchSuggestionNavigateMessage : '');\n if (this.inputText?.length > 0) {\n await this._liveAnnouncer.announce(this._currentSearchSuggestionAnnouncementMessage);\n }\n }\n\n /** @hidden */\n private async _setUpMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: SEARCH_FIELD_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n await this._dynamicComponentService.createDynamicModule(\n { inputFieldTemplate: this.inputFieldTemplate, suggestionMenuTemplate: this.suggestionMenuTemplate },\n PlatformSearchFieldMobileModule,\n SearchFieldMobileComponent,\n this._viewContainerRef,\n injector\n );\n }\n}\n\n@Pipe({\n name: 'suggestionMatches',\n standalone: true\n})\nexport class SuggestionMatchesPipe implements PipeTransform {\n /** @hidden */\n transform(values: string[] | null, match: string, mobile = false): string[] {\n if (!values) {\n values = [];\n }\n if (mobile && !match) {\n return values;\n }\n const processedMatch = match.trim().toLowerCase();\n return values.filter((value) => value.toLowerCase().indexOf(processedMatch) > -1);\n }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : inputFieldTemplate\"></ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"inputFieldTemplate\"></ng-template>\n</ng-template>\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n @if (!hideCategoryLabel) {\n <span class=\"fdp-search-field__category-label\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n }\n </button>\n <fdp-menu #categoryMenu>\n @for (category of categories; track category) {\n <fdp-menu-item (itemSelect)=\"setCurrentCategory(category)\">{{ category.label }} </fdp-menu-item>\n }\n </fdp-menu>\n</ng-template>\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n @for (category of categories; track category) {\n <li fd-option [value]=\"category\">{{ category.label }}</li>\n }\n </fd-select>\n</ng-template>\n<ng-template #inputFieldTemplate>\n <div\n class=\"fdp-search-field\"\n [class.with-categories]=\"_showCategoryDropdown\"\n [class.is-loading]=\"isLoading\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.hide-category-label]=\"hideCategoryLabel\"\n >\n <div\n #inputGroup\n class=\"fdp-search-field__input-group fd-input-group {{ appearance?.searchClass }}\"\n [class.is-focus]=\"isFocused\"\n >\n @if (_showCategoryDropdown) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\">\n <ng-template\n [ngTemplateOutlet]=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n }\n <input\n #inputField\n type=\"search\"\n [attr.placeholder]=\"placeholder\"\n class=\"fdp-search-field__input fd-input fd-input-group__input {{ appearance?.searchFieldClass }}\"\n [attr.id]=\"_inputId\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.aria-label]=\"ariaLabel || ('platformSearchField.searchInputLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"\n (_dropdownValues$ | async)?.length !== 0 ? (_showDropdown ? 'true' : 'false') : null\n \"\n [attr.aria-haspopup]=\"(_dropdownValues$ | async)?.length !== 0\"\n autocomplete=\"off\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onSearchSubmit($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"mobile && openMobileMode()\"\n />\n @if (inputText && inputText.length > 0) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\">\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.clearButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__clear fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_clearId\"\n (click)=\"clearTextInput()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n @if (forceSearchButton || isLoading || (!isLoading && !_isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n @if (!disableSearch) {\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.id]=\"_submitId\"\n [attr.disabled]=\"disabled ? '' : null\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"search\"></fd-icon>\n </button>\n }\n </span>\n }\n @if (!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n <button\n [attr.aria-label]=\"'platformSearchField.synchronizeButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__loading fd-input-group__button fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_refreshId\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"synchronize\"></fd-icon>\n </button>\n </span>\n }\n @if (appearance?.helperClass) {\n <div [ngClass]=\"appearance?.helperClass\"></div>\n }\n </div>\n </div>\n</ng-template>\n<ng-template #suggestionMenuTemplate>\n @if (_dropdownValues$ | async | suggestionMatches: inputText : mobile; as suggestions) {\n @if (suggestions?.length) {\n <div class=\"fdp-search-field__suggestion-dropdown\" [attr.dir]=\"_dir\">\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.fd-menu--mobile]=\"mobile\"\n [class.fd-menu--overflow]=\"!mobile\"\n [attr.id]=\"_menuId\"\n #menu\n (keydown)=\"onKeydown($event)\"\n >\n <ul class=\"fd-menu__list\" role=\"menu\">\n @for (value of suggestions; track value) {\n <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n (keydown.enter)=\"onItemClick(value); $event.preventDefault()\"\n (keydown.tab)=\"onItemClick(value)\"\n (keyup.space)=\"onItemClick(value); $event.stopPropagation()\"\n (click)=\"onItemClick(value)\"\n [innerHTML]=\"value | highlight: inputText : true : true\"\n role=\"menuitem\"\n ></li>\n }\n </ul>\n </nav>\n </div>\n }\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe } from './search-field.component';\n\nconst components = [SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe, ContentDensityModule];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformSearchFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}