@shoper/phoenix_design_system 0.27.0 → 0.28.0-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 (237) hide show
  1. package/build/cjs/external/lit/external/lit-html/async-directive.js +18 -0
  2. package/build/cjs/external/lit/external/lit-html/async-directive.js.map +1 -0
  3. package/build/cjs/external/lit/external/lit-html/directive-helpers.js +14 -0
  4. package/build/cjs/external/lit/external/lit-html/directive-helpers.js.map +1 -0
  5. package/build/cjs/external/lit/external/lit-html/directive.js +2 -1
  6. package/build/cjs/external/lit/external/lit-html/directive.js.map +1 -1
  7. package/build/cjs/packages/phoenix/src/components/accordion/accordion.js +1 -1
  8. package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js +1 -1
  9. package/build/cjs/packages/phoenix/src/components/accordion/accordion_group.js +2 -2
  10. package/build/cjs/packages/phoenix/src/components/accordion/accordion_toggler.js +2 -2
  11. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js +1 -1
  12. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more.js +1 -1
  13. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +3 -3
  14. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +1 -1
  15. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  16. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  17. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_content.js +1 -1
  18. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_control.js +3 -3
  19. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +11 -13
  20. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +1 -1
  21. package/build/cjs/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_consumer_controller.js +1 -1
  22. package/build/cjs/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_provider_controller.js +1 -1
  23. package/build/cjs/packages/phoenix/src/components/form/input/input.js +1 -1
  24. package/build/cjs/packages/phoenix/src/components/form/input/input.js.map +1 -1
  25. package/build/cjs/packages/phoenix/src/components/form/input/input_icon.js +1 -1
  26. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js +1 -1
  27. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  28. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_components_constatns.js +29 -0
  29. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_components_constatns.js.map +1 -0
  30. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_input.js +66 -0
  31. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_input.js.map +1 -0
  32. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_option.js +57 -0
  33. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_option.js.map +1 -0
  34. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_options.js +31 -0
  35. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_options.js.map +1 -0
  36. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_search.js +43 -0
  37. package/build/cjs/packages/phoenix/src/components/form/select/control/components/select_search.js.map +1 -0
  38. package/build/cjs/packages/phoenix/src/components/form/select/control/controllers/base_select_controller.js +93 -0
  39. package/build/cjs/packages/phoenix/src/components/form/select/control/controllers/base_select_controller.js.map +1 -0
  40. package/build/cjs/packages/phoenix/src/components/form/select/control/controllers/multi_select_controller.js +22 -0
  41. package/build/cjs/packages/phoenix/src/components/form/select/control/controllers/multi_select_controller.js.map +1 -0
  42. package/build/cjs/packages/phoenix/src/components/form/select/control/controllers/select_controller.js +19 -0
  43. package/build/cjs/packages/phoenix/src/components/form/select/control/controllers/select_controller.js.map +1 -0
  44. package/build/cjs/packages/phoenix/src/components/form/select/control/model/select_option.js +19 -0
  45. package/build/cjs/packages/phoenix/src/components/form/select/control/model/select_option.js.map +1 -0
  46. package/build/cjs/packages/phoenix/src/components/form/select/control/model/select_option_mapper.js +24 -0
  47. package/build/cjs/packages/phoenix/src/components/form/select/control/model/select_option_mapper.js.map +1 -0
  48. package/build/cjs/packages/phoenix/src/components/form/select/control/select_control.js +200 -0
  49. package/build/cjs/packages/phoenix/src/components/form/select/control/select_control.js.map +1 -0
  50. package/build/cjs/packages/phoenix/src/components/form/select/control/select_control_constants.js +23 -0
  51. package/build/cjs/packages/phoenix/src/components/form/select/control/select_control_constants.js.map +1 -0
  52. package/build/cjs/packages/phoenix/src/components/form/select/control/select_control_utils.js +52 -0
  53. package/build/cjs/packages/phoenix/src/components/form/select/control/select_control_utils.js.map +1 -0
  54. package/build/cjs/packages/phoenix/src/components/form/select/select.js +67 -0
  55. package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -0
  56. package/build/cjs/packages/phoenix/src/components/form/select/select_constants.js +15 -0
  57. package/build/cjs/packages/phoenix/src/components/form/select/select_constants.js.map +1 -0
  58. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js +1 -1
  59. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  60. package/build/cjs/packages/phoenix/src/components/messages/base_message.js +1 -1
  61. package/build/cjs/packages/phoenix/src/components/modal/modal.js +4 -4
  62. package/build/cjs/packages/phoenix/src/components/portal/portal.js +1 -1
  63. package/build/cjs/packages/phoenix/src/components/portal/portal.js.map +1 -1
  64. package/build/cjs/packages/phoenix/src/components/portal/portal_target.js +1 -1
  65. package/build/cjs/packages/phoenix/src/components/scroll_to/scroll_to.js +1 -1
  66. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js +1 -1
  67. package/build/cjs/packages/phoenix/src/components/tag/tag.js +7 -2
  68. package/build/cjs/packages/phoenix/src/components/tag/tag.js.map +1 -1
  69. package/build/cjs/packages/phoenix/src/controllers/{btn_controller.js → btn_controller/btn_controller.js} +4 -3
  70. package/build/cjs/packages/phoenix/src/controllers/btn_controller/btn_controller.js.map +1 -0
  71. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +4 -4
  72. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js +11 -0
  73. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js.map +1 -0
  74. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js +84 -0
  75. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js.map +1 -0
  76. package/build/cjs/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js +2 -7
  77. package/build/cjs/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js.map +1 -1
  78. package/build/cjs/packages/phoenix/src/core/classes/subject/subject.js +8 -1
  79. package/build/cjs/packages/phoenix/src/core/classes/subject/subject.js.map +1 -1
  80. package/build/cjs/packages/phoenix/src/core/context/context_consumer_controller.js +1 -1
  81. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +10 -5
  82. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  83. package/build/cjs/packages/phoenix/src/directives/observable_directive.js +40 -0
  84. package/build/cjs/packages/phoenix/src/directives/observable_directive.js.map +1 -0
  85. package/build/cjs/packages/phoenix/src/index.js +85 -50
  86. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  87. package/build/esm/external/lit/external/lit-html/async-directive.js +12 -0
  88. package/build/esm/external/lit/external/lit-html/async-directive.js.map +1 -0
  89. package/build/esm/external/lit/external/lit-html/directive-helpers.js +10 -0
  90. package/build/esm/external/lit/external/lit-html/directive-helpers.js.map +1 -0
  91. package/build/esm/external/lit/external/lit-html/directive.js +2 -2
  92. package/build/esm/packages/phoenix/src/components/accordion/accordion.js +1 -1
  93. package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +1 -1
  94. package/build/esm/packages/phoenix/src/components/accordion/accordion_group.js +2 -2
  95. package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js +2 -2
  96. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js +1 -1
  97. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.js +1 -1
  98. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +3 -3
  99. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +1 -1
  100. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  101. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  102. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_content.js +1 -1
  103. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_control.js +3 -3
  104. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.d.ts +2 -3
  105. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +11 -13
  106. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +1 -1
  107. package/build/esm/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_consumer_controller.js +1 -1
  108. package/build/esm/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_provider_controller.js +1 -1
  109. package/build/esm/packages/phoenix/src/components/form/input/input.js +1 -1
  110. package/build/esm/packages/phoenix/src/components/form/input/input.js.map +1 -1
  111. package/build/esm/packages/phoenix/src/components/form/input/input_icon.js +1 -1
  112. package/build/esm/packages/phoenix/src/components/form/radio/radio.js +1 -1
  113. package/build/esm/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  114. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_close_btn.d.ts +6 -0
  115. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_close_btn.js +23 -0
  116. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_close_btn.js.map +1 -0
  117. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_components_constatns.d.ts +19 -0
  118. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_components_constatns.js +21 -0
  119. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_components_types.d.ts +4 -0
  120. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_components_types.js +2 -0
  121. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_components_types.js.map +1 -0
  122. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_input.d.ts +13 -0
  123. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_input.js +64 -0
  124. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_input.js.map +1 -0
  125. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_option.d.ts +11 -0
  126. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_option.js +55 -0
  127. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_option.js.map +1 -0
  128. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_options.d.ts +5 -0
  129. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_options.js +29 -0
  130. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_options.js.map +1 -0
  131. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_search.d.ts +7 -0
  132. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_search.js +41 -0
  133. package/build/esm/packages/phoenix/src/components/form/select/control/components/select_search.js.map +1 -0
  134. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/base_select_controller.d.ts +27 -0
  135. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/base_select_controller.js +89 -0
  136. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/base_select_controller.js.map +1 -0
  137. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/multi_select_controller.d.ts +7 -0
  138. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/multi_select_controller.js +18 -0
  139. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/multi_select_controller.js.map +1 -0
  140. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/select_controller.d.ts +5 -0
  141. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/select_controller.js +15 -0
  142. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/select_controller.js.map +1 -0
  143. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/select_controllers_types.d.ts +22 -0
  144. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/select_controllers_types.js +5 -0
  145. package/build/esm/packages/phoenix/src/components/form/select/control/controllers/select_controllers_types.js.map +1 -0
  146. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option.d.ts +10 -0
  147. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option.js +15 -0
  148. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option.js.map +1 -0
  149. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option_constants.d.ts +7 -0
  150. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option_constants.js +2 -0
  151. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option_constants.js.map +1 -0
  152. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option_mapper.d.ts +5 -0
  153. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option_mapper.js +20 -0
  154. package/build/esm/packages/phoenix/src/components/form/select/control/model/select_option_mapper.js.map +1 -0
  155. package/build/esm/packages/phoenix/src/components/form/select/control/select_control.d.ts +34 -0
  156. package/build/esm/packages/phoenix/src/components/form/select/control/select_control.js +198 -0
  157. package/build/esm/packages/phoenix/src/components/form/select/control/select_control.js.map +1 -0
  158. package/build/esm/packages/phoenix/src/components/form/select/control/select_control_constants.d.ts +13 -0
  159. package/build/esm/packages/phoenix/src/components/form/select/control/select_control_constants.js +16 -0
  160. package/build/esm/packages/phoenix/src/components/form/select/control/select_control_constants.js.map +1 -0
  161. package/build/esm/packages/phoenix/src/components/form/select/control/select_control_utils.d.ts +9 -0
  162. package/build/esm/packages/phoenix/src/components/form/select/control/select_control_utils.js +48 -0
  163. package/build/esm/packages/phoenix/src/components/form/select/control/select_control_utils.js.map +1 -0
  164. package/build/esm/packages/phoenix/src/components/{select/components/select_option.d.ts → form/select/select.d.ts} +5 -4
  165. package/build/esm/packages/phoenix/src/components/form/select/select.js +65 -0
  166. package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -0
  167. package/build/esm/packages/phoenix/src/components/form/select/select_constants.d.ts +7 -0
  168. package/build/esm/packages/phoenix/src/components/form/select/select_constants.js +11 -0
  169. package/build/esm/packages/phoenix/src/components/form/select/select_constants.js.map +1 -0
  170. package/build/esm/packages/phoenix/src/components/form/select/select_types.d.ts +8 -0
  171. package/build/esm/packages/phoenix/src/components/form/select/select_types.js +3 -0
  172. package/build/esm/packages/phoenix/src/components/form/select/select_types.js.map +1 -0
  173. package/build/esm/packages/phoenix/src/components/form/switch/switch.js +1 -1
  174. package/build/esm/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  175. package/build/esm/packages/phoenix/src/components/messages/base_message.js +1 -1
  176. package/build/esm/packages/phoenix/src/components/modal/modal.js +4 -4
  177. package/build/esm/packages/phoenix/src/components/portal/portal.js +1 -1
  178. package/build/esm/packages/phoenix/src/components/portal/portal.js.map +1 -1
  179. package/build/esm/packages/phoenix/src/components/portal/portal_target.js +1 -1
  180. package/build/esm/packages/phoenix/src/components/scroll_to/scroll_to.js +1 -1
  181. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js +1 -1
  182. package/build/esm/packages/phoenix/src/components/tag/tag.js +7 -2
  183. package/build/esm/packages/phoenix/src/components/tag/tag.js.map +1 -1
  184. package/build/esm/packages/phoenix/src/controllers/{btn_controller.d.ts → btn_controller/btn_controller.d.ts} +2 -1
  185. package/build/esm/packages/phoenix/src/controllers/{btn_controller.js → btn_controller/btn_controller.js} +4 -3
  186. package/build/{cjs/packages/phoenix/src/controllers → esm/packages/phoenix/src/controllers/btn_controller}/btn_controller.js.map +1 -1
  187. package/build/esm/packages/phoenix/src/controllers/btn_controller/btn_controller_types.d.ts +3 -0
  188. package/build/esm/packages/phoenix/src/controllers/btn_controller/btn_controller_types.js +2 -0
  189. package/build/esm/packages/phoenix/src/controllers/btn_controller/btn_controller_types.js.map +1 -0
  190. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +4 -4
  191. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.d.ts +4 -0
  192. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js +7 -0
  193. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js.map +1 -0
  194. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.d.ts +10 -0
  195. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.js +4 -0
  196. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.js.map +1 -0
  197. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.d.ts +10 -0
  198. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js +80 -0
  199. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js.map +1 -0
  200. package/build/esm/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.d.ts +0 -2
  201. package/build/esm/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js +2 -7
  202. package/build/esm/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js.map +1 -1
  203. package/build/esm/packages/phoenix/src/core/classes/subject/subject.d.ts +4 -2
  204. package/build/esm/packages/phoenix/src/core/classes/subject/subject.js +8 -1
  205. package/build/esm/packages/phoenix/src/core/classes/subject/subject.js.map +1 -1
  206. package/build/esm/packages/phoenix/src/core/classes/subject/subject_types.d.ts +2 -1
  207. package/build/esm/packages/phoenix/src/core/context/context_consumer_controller.js +1 -1
  208. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +10 -5
  209. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  210. package/build/esm/packages/phoenix/src/directives/observable_directive.d.ts +1 -0
  211. package/build/esm/packages/phoenix/src/directives/observable_directive.js +35 -31
  212. package/build/esm/packages/phoenix/src/directives/observable_directive.js.map +1 -1
  213. package/build/esm/packages/phoenix/src/index.d.ts +6 -1
  214. package/build/esm/packages/phoenix/src/index.js +18 -13
  215. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  216. package/package.json +3 -3
  217. package/build/esm/packages/phoenix/src/components/select/components/select_option.js +0 -54
  218. package/build/esm/packages/phoenix/src/components/select/components/select_option.js.map +0 -1
  219. package/build/esm/packages/phoenix/src/components/select/components/select_options.d.ts +0 -4
  220. package/build/esm/packages/phoenix/src/components/select/components/select_options.js +0 -15
  221. package/build/esm/packages/phoenix/src/components/select/components/select_options.js.map +0 -1
  222. package/build/esm/packages/phoenix/src/components/select/components/select_search.d.ts +0 -1
  223. package/build/esm/packages/phoenix/src/components/select/components/select_search.js +0 -2
  224. package/build/esm/packages/phoenix/src/components/select/components/select_search.js.map +0 -1
  225. package/build/esm/packages/phoenix/src/components/select/controlers/multi_select_controler.d.ts +0 -1
  226. package/build/esm/packages/phoenix/src/components/select/controlers/multi_select_controler.js +0 -2
  227. package/build/esm/packages/phoenix/src/components/select/controlers/multi_select_controler.js.map +0 -1
  228. package/build/esm/packages/phoenix/src/components/select/controlers/select_controler.d.ts +0 -11
  229. package/build/esm/packages/phoenix/src/components/select/controlers/select_controler.js +0 -14
  230. package/build/esm/packages/phoenix/src/components/select/controlers/select_controler.js.map +0 -1
  231. package/build/esm/packages/phoenix/src/components/select/model/option.d.ts +0 -2
  232. package/build/esm/packages/phoenix/src/components/select/model/option.js +0 -3
  233. package/build/esm/packages/phoenix/src/components/select/model/option.js.map +0 -1
  234. package/build/esm/packages/phoenix/src/components/select/select.d.ts +0 -12
  235. package/build/esm/packages/phoenix/src/components/select/select.js +0 -62
  236. package/build/esm/packages/phoenix/src/components/select/select.js.map +0 -1
  237. /package/build/esm/packages/phoenix/src/{controllers/btn_controller.js.map → components/form/select/control/components/select_components_constatns.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,7 @@
1
+ import { PhoenixLightLitElement } from "../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ import { TemplateResult } from 'lit';
3
+ export declare class HSelectSearch extends PhoenixLightLitElement {
4
+ value: string;
5
+ private _handleInputChange;
6
+ protected render(): TemplateResult;
7
+ }
@@ -0,0 +1,41 @@
1
+ import { __decorate, __metadata } from '../../../../../../../../external/tslib/tslib.es6.js';
2
+ import { html } from 'lit';
3
+ import { property } from 'lit/decorators';
4
+ import { PhoenixLightLitElement } from '../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
+ import { phoenixCustomElement } from '../../../../../core/decorators/phoenix_custom_element.js';
6
+ import { SELECT_SEARCH_EVENT_NAMES, SELECT_RELATED_COMPONENTS_NAMES } from './select_components_constatns.js';
7
+ import debounce_1 from '../../../../../../../../external/lodash/debounce.js';
8
+
9
+ let HSelectSearch = class HSelectSearch extends PhoenixLightLitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.value = '';
13
+ this._handleInputChange = debounce_1(({ target }) => {
14
+ this.value = target.value;
15
+ this.dispatchEvent(new CustomEvent(SELECT_SEARCH_EVENT_NAMES.search, {
16
+ bubbles: true,
17
+ detail: target.value
18
+ }));
19
+ }, 200);
20
+ }
21
+ render() {
22
+ return html `<input
23
+ type="text"
24
+ role="search"
25
+ .value=${this.value}
26
+ aria-autocomplete="list"
27
+ autocomplete="false"
28
+ @input=${this._handleInputChange}
29
+ />`;
30
+ }
31
+ };
32
+ __decorate([
33
+ property({ type: String, reflect: true }),
34
+ __metadata("design:type", String)
35
+ ], HSelectSearch.prototype, "value", void 0);
36
+ HSelectSearch = __decorate([
37
+ phoenixCustomElement(SELECT_RELATED_COMPONENTS_NAMES.search)
38
+ ], HSelectSearch);
39
+
40
+ export { HSelectSearch };
41
+ //# sourceMappingURL=select_search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,qDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA,uBAAuB,qDAAyD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,27 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import { ISelectController, SelectControllerConstructorOptions } from "./select_controllers_types";
3
+ import { SelectOption } from "../model/select_option";
4
+ import { BehaviorSubject } from "../../../../../core/classes/behavior_subject/behavior_subject";
5
+ import { HSelectControl } from "../select_control";
6
+ export declare abstract class BaseSelectController implements ISelectController, ReactiveController {
7
+ options$: BehaviorSubject<SelectOption[]>;
8
+ visibleOptionsCount: number;
9
+ selectedOptionsCount: number;
10
+ selectedOptions$: BehaviorSubject<SelectOption[]>;
11
+ protected host: HSelectControl & ReactiveControllerHost;
12
+ private _optionsObserver;
13
+ constructor({ host }: SelectControllerConstructorOptions);
14
+ private _setupComputedStateObserver;
15
+ private _calculateValuesRelatedToOptions;
16
+ toggleOption(option: SelectOption): void;
17
+ abstract selectOption(option: SelectOption): void;
18
+ removeOption(optionValue: string): void;
19
+ addOption(option: SelectOption, position?: number): void;
20
+ replaceOptions(options: SelectOption[]): void;
21
+ deselectOptions(): void;
22
+ deselectOption(option: SelectOption): void;
23
+ filterOptions(value: string): void;
24
+ protected requestOptionsUpdate(): void;
25
+ getSelectOption(selectValue: string): SelectOption | undefined;
26
+ hostConnected(): void;
27
+ }
@@ -0,0 +1,89 @@
1
+ import 'lit';
2
+ import { SearchingUtils } from '@dreamcommerce/utilities';
3
+ import { Observer } from '../../../../../core/classes/observer/observer.js';
4
+ import { BehaviorSubject } from '../../../../../core/classes/behavior_subject/behavior_subject.js';
5
+
6
+ class BaseSelectController {
7
+ constructor({ host }) {
8
+ this.options$ = new BehaviorSubject([]);
9
+ this.selectedOptions$ = new BehaviorSubject([]);
10
+ this._calculateValuesRelatedToOptions = (selectOptions) => {
11
+ const { visibleCount, selectedCount } = selectOptions.reduce((acc, option) => {
12
+ return {
13
+ visibleCount: !option.hidden ? acc.visibleCount + 1 : acc.visibleCount,
14
+ selectedCount: option.selected ? acc.selectedCount + 1 : acc.selectedCount
15
+ };
16
+ }, { visibleCount: 0, selectedCount: 0 });
17
+ this.visibleOptionsCount = visibleCount;
18
+ this.selectedOptionsCount = selectedCount;
19
+ this.selectedOptions$.notify(selectOptions.filter((option) => option.selected));
20
+ };
21
+ this.host = host;
22
+ this.host.addController(this);
23
+ this._setupComputedStateObserver();
24
+ }
25
+ _setupComputedStateObserver() {
26
+ this._optionsObserver = new Observer(this._calculateValuesRelatedToOptions);
27
+ this.options$.subscribe(this._optionsObserver);
28
+ }
29
+ toggleOption(option) {
30
+ option.selected ? this.deselectOption(option) : this.selectOption(option);
31
+ }
32
+ removeOption(optionValue) {
33
+ const options = this.options$.getValue();
34
+ if (!options)
35
+ return;
36
+ this.options$.notify(options.filter((option) => option.value !== optionValue));
37
+ }
38
+ addOption(option, position) {
39
+ var _a;
40
+ const options = (_a = this.options$.getValue()) !== null && _a !== void 0 ? _a : [];
41
+ if (position === undefined) {
42
+ options.push(option);
43
+ this.options$.notify(options);
44
+ return;
45
+ }
46
+ this.options$.notify([...options.slice(0, position - 1), option, ...options.slice(position - 1)]);
47
+ }
48
+ replaceOptions(options) {
49
+ this.options$.notify(options);
50
+ }
51
+ deselectOptions() {
52
+ var _a;
53
+ (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.forEach((option) => (option.selected = false));
54
+ this.requestOptionsUpdate();
55
+ }
56
+ deselectOption(option) {
57
+ var _a;
58
+ (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.forEach((option) => (option.selected = false));
59
+ this.requestOptionsUpdate();
60
+ }
61
+ filterOptions(value) {
62
+ const selectOptions = this.options$.getValue();
63
+ if (!selectOptions)
64
+ return;
65
+ const filtered = SearchingUtils.fuzzySearch(value, selectOptions, 'content');
66
+ selectOptions.forEach((option) => (option.hidden = true));
67
+ filtered.forEach((option) => {
68
+ option.hidden = false;
69
+ });
70
+ this.requestOptionsUpdate();
71
+ }
72
+ requestOptionsUpdate() {
73
+ const selectOptions = this.options$.getValue();
74
+ if (!selectOptions)
75
+ return;
76
+ this.options$.notify([...selectOptions]);
77
+ this.host.requestUpdate();
78
+ }
79
+ getSelectOption(selectValue) {
80
+ var _a;
81
+ return (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.find((option) => option.value === selectValue);
82
+ }
83
+ hostConnected() {
84
+ this.options$.unsubscribe(this._optionsObserver);
85
+ }
86
+ }
87
+
88
+ export { BaseSelectController };
89
+ //# sourceMappingURL=base_select_controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,7 @@
1
+ import { SelectOption } from "../model/select_option";
2
+ import { BaseSelectController } from "./base_select_controller";
3
+ export declare class MultiSelectController extends BaseSelectController {
4
+ toggleOption(option: SelectOption): void;
5
+ selectOption(option: SelectOption): void;
6
+ deselectOption(option: SelectOption): void;
7
+ }
@@ -0,0 +1,18 @@
1
+ import { BaseSelectController } from './base_select_controller.js';
2
+
3
+ class MultiSelectController extends BaseSelectController {
4
+ toggleOption(option) {
5
+ option.selected ? this.deselectOption(option) : this.selectOption(option);
6
+ }
7
+ selectOption(option) {
8
+ option.selected = true;
9
+ this.requestOptionsUpdate();
10
+ }
11
+ deselectOption(option) {
12
+ option.selected = false;
13
+ this.requestOptionsUpdate();
14
+ }
15
+ }
16
+
17
+ export { MultiSelectController };
18
+ //# sourceMappingURL=multi_select_controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,5 @@
1
+ import { SelectOption } from "../model/select_option";
2
+ import { BaseSelectController } from "./base_select_controller";
3
+ export declare class SelectController extends BaseSelectController {
4
+ selectOption(option: SelectOption): void;
5
+ }
@@ -0,0 +1,15 @@
1
+ import { BaseSelectController } from './base_select_controller.js';
2
+
3
+ class SelectController extends BaseSelectController {
4
+ selectOption(option) {
5
+ var _a;
6
+ const selectedOptions = (_a = this.options$.getValue()) !== null && _a !== void 0 ? _a : [];
7
+ selectedOptions.forEach((option) => (option.selected = false));
8
+ option.selected = true;
9
+ this.selectedOptions$.notify([option]);
10
+ this.requestOptionsUpdate();
11
+ }
12
+ }
13
+
14
+ export { SelectController };
15
+ //# sourceMappingURL=select_controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,22 @@
1
+ import { ReactiveControllerHost } from 'lit';
2
+ import { SelectOption } from "../model/select_option";
3
+ import { BehaviorSubject } from "../../../../../core/classes/behavior_subject/behavior_subject";
4
+ import { HSelectControl } from "../select_control";
5
+ export declare type SelectControllerConstructorOptions = {
6
+ host: HSelectControl & ReactiveControllerHost;
7
+ };
8
+ export interface ISelectController {
9
+ selectedOptions$: BehaviorSubject<SelectOption[]>;
10
+ options$: BehaviorSubject<SelectOption[]>;
11
+ visibleOptionsCount: number;
12
+ selectedOptionsCount: number;
13
+ deselectOptions(): void;
14
+ deselectOption(option: SelectOption): void;
15
+ filterOptions(value: string): void;
16
+ toggleOption(option: SelectOption): void;
17
+ selectOption(option: SelectOption): void;
18
+ getSelectOption(selectValue: string): SelectOption | undefined;
19
+ removeOption(optionValue: string): void;
20
+ addOption(option: SelectOption, position?: number): void;
21
+ replaceOptions(options: SelectOption[]): void;
22
+ }
@@ -0,0 +1,5 @@
1
+ import 'lit';
2
+ import '@phoenixRoot/components/form/select/control/model/select_option';
3
+ import '@phoenixRoot/core/classes/behavior_subject/behavior_subject';
4
+ import '@phoenixRoot/components/form/select/control/select_control';
5
+ //# sourceMappingURL=select_controllers_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select_controllers_types.js","sourceRoot":"","sources":["../../../../../../../../../../src/components/form/select/control/controllers/select_controllers_types.ts"],"names":[],"mappings":"AAAA,OAAuC,KAAK,CAAC;AAC7C,OAA6B,iEAAiE,CAAC;AAC/F,OAAgC,6DAA6D,CAAC;AAC9F,OAA+B,4DAA4D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { TSelectOptionConstructorOptions } from "./select_option_constants";
2
+ export declare class SelectOption {
3
+ selected: boolean;
4
+ disabled: boolean;
5
+ value: string;
6
+ hidden: boolean;
7
+ content: string;
8
+ private constructor();
9
+ static create(options: TSelectOptionConstructorOptions): SelectOption;
10
+ }
@@ -0,0 +1,15 @@
1
+ class SelectOption {
2
+ constructor({ selected = false, hidden = false, disabled = false, value, content }) {
3
+ this.value = value;
4
+ this.selected = selected;
5
+ this.hidden = hidden;
6
+ this.disabled = disabled;
7
+ this.content = content;
8
+ }
9
+ static create(options) {
10
+ return new SelectOption(options);
11
+ }
12
+ }
13
+
14
+ export { SelectOption };
15
+ //# sourceMappingURL=select_option.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,7 @@
1
+ export declare type TSelectOptionConstructorOptions = {
2
+ value: string;
3
+ content: string;
4
+ selected?: boolean;
5
+ disabled?: boolean;
6
+ hidden?: boolean;
7
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=select_option_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select_option_constants.js","sourceRoot":"","sources":["../../../../../../../../../../src/components/form/select/control/model/select_option_constants.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { HOption } from "../components/select_option";
2
+ import { SelectOption } from "./select_option";
3
+ export declare class SelectOptionMapper {
4
+ static toModel($option: HOption): SelectOption;
5
+ }
@@ -0,0 +1,20 @@
1
+ import { SELECT_RELATED_COMPONENTS_NAMES } from '../components/select_components_constatns.js';
2
+ import { SelectOption } from './select_option.js';
3
+
4
+ class SelectOptionMapper {
5
+ static toModel($option) {
6
+ var _a;
7
+ const optionContent = (_a = $option.querySelector(SELECT_RELATED_COMPONENTS_NAMES.optionContent)) === null || _a === void 0 ? void 0 : _a.textContent;
8
+ if (!optionContent)
9
+ throw new Error('h-options must contains a h-option-content element inside');
10
+ return SelectOption.create({
11
+ value: $option.value,
12
+ disabled: $option.disabled,
13
+ hidden: $option.hidden,
14
+ content: optionContent
15
+ });
16
+ }
17
+ }
18
+
19
+ export { SelectOptionMapper };
20
+ //# sourceMappingURL=select_option_mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,34 @@
1
+ import { PhoenixLightLitElement } from "../../../../core/phoenix_light_lit_element/phoenix_light_lit_element";
2
+ import { TemplateResult, PropertyValues } from 'lit';
3
+ import { SelectOption } from "./model/select_option";
4
+ export declare class HSelectControl extends PhoenixLightLitElement {
5
+ private static _components;
6
+ controlName: string;
7
+ multiselect: boolean;
8
+ private _searchValue;
9
+ private _selectController;
10
+ private _$options;
11
+ private _$dropdown;
12
+ private _$search;
13
+ private _$optionsList;
14
+ private _selectContext;
15
+ private _listBoxController;
16
+ constructor();
17
+ updated(props: PropertyValues): void;
18
+ connectedCallback(): void;
19
+ private _setupEvents;
20
+ private _handleOptionDeselect;
21
+ private _updateOptionsView;
22
+ private _appendNewHTMLOption;
23
+ private _removeHTMLOptions;
24
+ private _handleOptionClicked;
25
+ private _handleSearch;
26
+ private _closeSelect;
27
+ private _clearOptions;
28
+ private _handleDropdownHidden;
29
+ protected update(changedProperties: PropertyValues): void;
30
+ addOption(option: SelectOption, position?: number): void;
31
+ removeOption(optionValue: string): void;
32
+ replaceOptions(options: SelectOption[]): void;
33
+ protected render(): TemplateResult;
34
+ }
@@ -0,0 +1,198 @@
1
+ import { __decorate, __metadata } from '../../../../../../../external/tslib/tslib.es6.js';
2
+ import { html, nothing } from 'lit';
3
+ import { state } from 'lit/decorators';
4
+ import { PhoenixLightLitElement } from '../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js';
5
+ import { phoenixCustomElement } from '../../../../core/decorators/phoenix_custom_element.js';
6
+ import { property } from '@lit/reactive-element/decorators.js';
7
+ import { SELECT_RELATED_COMPONENTS_NAMES } from './components/select_components_constatns.js';
8
+ import { SELECT_SLOT_NAMES, SELECT_CONTEXTS, SELECT_EVENT_NAMES, MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH } from './select_control_constants.js';
9
+ import { Observer } from '../../../../core/classes/observer/observer.js';
10
+ import { observe } from '../../../../directives/observable_directive.js';
11
+ import { ContextProviderController } from '../../../../core/context/context_provider_controller.js';
12
+ import { createRef, ref } from 'lit-html/directives/ref.js';
13
+ import { MultiSelectController } from './controllers/multi_select_controller.js';
14
+ import { SelectController } from './controllers/select_controller.js';
15
+ import { HSelectSearch } from './components/select_search.js';
16
+ import { ListBoxKeyboardController } from '../../../../controllers/list_box_controller/list_box_keyboard_controller.js';
17
+ import { HIcon } from '../../../icon/icon.js';
18
+ import { SelectOptionMapper } from './model/select_option_mapper.js';
19
+ import { SelectControlUtils } from './select_control_utils.js';
20
+
21
+ let HSelectControl = class HSelectControl extends PhoenixLightLitElement {
22
+ constructor() {
23
+ super();
24
+ this.multiselect = false;
25
+ this._searchValue = '';
26
+ this._$options = {};
27
+ this._$dropdown = createRef();
28
+ this._$search = createRef();
29
+ this._$optionsList = createRef();
30
+ this._selectContext = new ContextProviderController(this);
31
+ this._handleOptionDeselect = (event) => {
32
+ const selectedOption = this._selectController.getSelectOption(event.detail);
33
+ if (!selectedOption)
34
+ return;
35
+ this._selectController.deselectOption(selectedOption);
36
+ };
37
+ this._updateOptionsView = (options) => {
38
+ if (options.length < Object.keys(this._$options).length)
39
+ this._removeHTMLOptions(options.map((option) => option.value));
40
+ options.forEach((option, index) => {
41
+ const { selected, value } = option;
42
+ const $option = this._$options[value];
43
+ if (!$option) {
44
+ this._appendNewHTMLOption(option, index + 1);
45
+ return;
46
+ }
47
+ SelectControlUtils.syncHTMLOptionWithModel(option, $option);
48
+ if (!selected)
49
+ return;
50
+ $option.setAttribute(this.multiselect ? 'aria-checked' : 'aria-selected', 'true');
51
+ });
52
+ };
53
+ this._handleOptionClicked = (event) => {
54
+ const selectedOption = this._selectController.getSelectOption(event.detail.$option.value);
55
+ if (!selectedOption)
56
+ return;
57
+ this._selectController.toggleOption(selectedOption);
58
+ if (!this.multiselect)
59
+ this._closeSelect();
60
+ };
61
+ this._closeSelect = () => {
62
+ var _a;
63
+ (_a = this._$dropdown.value) === null || _a === void 0 ? void 0 : _a.hide();
64
+ };
65
+ this._clearOptions = () => {
66
+ this._selectController.deselectOptions();
67
+ };
68
+ this._handleDropdownHidden = () => {
69
+ this._searchValue = '';
70
+ };
71
+ const $options = Array.from(this.querySelectorAll(SELECT_RELATED_COMPONENTS_NAMES.option));
72
+ $options.forEach(($option) => $option.setAttribute('slot', SELECT_SLOT_NAMES.content));
73
+ }
74
+ updated(props) {
75
+ super.updated(props);
76
+ if (this._$optionsList.value && !this._listBoxController)
77
+ this._listBoxController = new ListBoxKeyboardController({
78
+ host: this,
79
+ $list: this._$optionsList.value
80
+ });
81
+ }
82
+ connectedCallback() {
83
+ super.connectedCallback();
84
+ this._selectController = this.multiselect ? new MultiSelectController({ host: this }) : new SelectController({ host: this });
85
+ this._selectContext.provide(SELECT_CONTEXTS.selectedOptions$, this._selectController.selectedOptions$);
86
+ this._selectContext.provide(SELECT_CONTEXTS.isMultiselect, this.multiselect);
87
+ const $options = Array.from(this.querySelectorAll(SELECT_RELATED_COMPONENTS_NAMES.option));
88
+ this._selectController.options$.subscribe(new Observer((selectedOptions) => this._updateOptionsView(selectedOptions)));
89
+ this._$options = $options.reduce((acc, $option) => {
90
+ if (acc[$option.value] !== undefined)
91
+ throw Error('Select options must hava a unique values.');
92
+ return {
93
+ ...acc,
94
+ [$option.value]: $option
95
+ };
96
+ }, {});
97
+ this._selectController.options$.notify($options.map(SelectOptionMapper.toModel));
98
+ this._setupEvents();
99
+ }
100
+ _setupEvents() {
101
+ this.addEventListener(SELECT_EVENT_NAMES.deselectOption, this._handleOptionDeselect);
102
+ }
103
+ _appendNewHTMLOption(option, position) {
104
+ const $list = this._$optionsList.value;
105
+ if (!$list)
106
+ return;
107
+ const { value, selected } = option;
108
+ const $option = SelectControlUtils.createHTMLOption(option);
109
+ if (selected)
110
+ $option.setAttribute(this.multiselect ? 'aria-checked' : 'aria-selected', 'true');
111
+ this._$options[value] = $option;
112
+ SelectControlUtils.appendHTMLOption($option, $list, position);
113
+ }
114
+ _removeHTMLOptions(optionsValues) {
115
+ this._$options = SelectControlUtils.removeHTMLOption(Object.values(this._$options), optionsValues);
116
+ }
117
+ _handleSearch({ detail }) {
118
+ this._searchValue = detail;
119
+ }
120
+ update(changedProperties) {
121
+ super.update(changedProperties);
122
+ if (changedProperties.has('_searchValue'))
123
+ this._selectController.filterOptions(this._searchValue);
124
+ }
125
+ addOption(option, position) {
126
+ this._selectController.addOption(option, position);
127
+ }
128
+ removeOption(optionValue) {
129
+ this._selectController.removeOption(optionValue);
130
+ }
131
+ replaceOptions(options) {
132
+ this._selectController.replaceOptions(options);
133
+ }
134
+ render() {
135
+ var _a;
136
+ const options = (_a = this._selectController.options$.getValue()) !== null && _a !== void 0 ? _a : [];
137
+ return html `
138
+ <div>
139
+ <h-dropdown ${ref(this._$dropdown)} @dropdown.hidden=${this._handleDropdownHidden} name=${this.controlName}>
140
+ <h-dropdown-toggler name=${this.controlName}> ${this.getSlot(SELECT_SLOT_NAMES.input)} </h-dropdown-toggler>
141
+
142
+ <h-dropdown-content name=${this.controlName}>
143
+ <h-select-close-btn @click=${this._closeSelect}></h-select-close-btn>
144
+
145
+ ${options.length > MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH
146
+ ? html `<h-select-search
147
+ ${ref(this._$search)}
148
+ .value=${this._searchValue}
149
+ @selectSearch.search=${this._handleSearch}
150
+ ></h-select-search>`
151
+ : nothing}
152
+ ${this.hasSlot(SELECT_SLOT_NAMES.content)
153
+ ? html `
154
+ <h-select-options ${ref(this._$optionsList)} @selectOptions.clicked=${this._handleOptionClicked}>
155
+ ${this.getSlot(SELECT_SLOT_NAMES.content)}
156
+ </h-select-options>
157
+ `
158
+ : nothing}
159
+ ${!this._selectController.visibleOptionsCount ? html `<p>brak wyników dla ${this._searchValue}</p>` : nothing}
160
+ ${this.multiselect && this._selectController.selectedOptionsCount >= 1
161
+ ? html `
162
+ <section>
163
+ <button @click=${this._clearOptions}>clear</button>
164
+ <h-select-close-btn @click=${this._closeSelect}>ok</h-select-close-btn>
165
+ </section>
166
+ `
167
+ : nothing}
168
+ </h-dropdown-content>
169
+ </h-dropdown>
170
+
171
+ ${observe(this._selectController.selectedOptions$, (selectOptions) => selectOptions.map((option) => html `<input type="hidden" name=${this.controlName} value=${option.value} />`))}
172
+ </div>
173
+ `;
174
+ }
175
+ };
176
+ HSelectControl._components = {
177
+ search: HSelectSearch,
178
+ icon: HIcon
179
+ };
180
+ __decorate([
181
+ property({ type: String }),
182
+ __metadata("design:type", String)
183
+ ], HSelectControl.prototype, "controlName", void 0);
184
+ __decorate([
185
+ property({ type: Boolean }),
186
+ __metadata("design:type", Boolean)
187
+ ], HSelectControl.prototype, "multiselect", void 0);
188
+ __decorate([
189
+ state(),
190
+ __metadata("design:type", String)
191
+ ], HSelectControl.prototype, "_searchValue", void 0);
192
+ HSelectControl = __decorate([
193
+ phoenixCustomElement('h-select-control'),
194
+ __metadata("design:paramtypes", [])
195
+ ], HSelectControl);
196
+
197
+ export { HSelectControl };
198
+ //# sourceMappingURL=select_control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA,uCAAuC,kDAAsD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,13 @@
1
+ export declare const SELECT_CONTEXTS: {
2
+ readonly isMultiselect: "isMultiselect";
3
+ readonly selectedOptions$: "selectedOptions$";
4
+ };
5
+ export declare const SELECT_SLOT_NAMES: {
6
+ readonly content: "content";
7
+ readonly input: "input";
8
+ };
9
+ export declare const SELECT_EVENT_NAMES: {
10
+ readonly selectOption: "selectOption.select";
11
+ readonly deselectOption: "selectOption.deselect";
12
+ };
13
+ export declare const MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH = 6;
@@ -0,0 +1,16 @@
1
+ const SELECT_CONTEXTS = {
2
+ isMultiselect: 'isMultiselect',
3
+ selectedOptions$: 'selectedOptions$'
4
+ };
5
+ const SELECT_SLOT_NAMES = {
6
+ content: 'content',
7
+ input: 'input'
8
+ };
9
+ const SELECT_EVENT_NAMES = {
10
+ selectOption: 'selectOption.select',
11
+ deselectOption: 'selectOption.deselect'
12
+ };
13
+ const MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH = 6;
14
+
15
+ export { MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH, SELECT_CONTEXTS, SELECT_EVENT_NAMES, SELECT_SLOT_NAMES };
16
+ //# sourceMappingURL=select_control_constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,9 @@
1
+ import { SelectOption } from "./model/select_option";
2
+ import { HOption } from "./components/select_option";
3
+ import { HSelectOptions } from "./components/select_options";
4
+ export declare class SelectControlUtils {
5
+ static createHTMLOption(option: SelectOption): HOption;
6
+ static syncHTMLOptionWithModel(option: SelectOption, $option: HOption): void;
7
+ static removeHTMLOption($options: HOption[], optionsValuesThatExists: string[]): Record<string, HOption>;
8
+ static appendHTMLOption($option: HOption, $list: HSelectOptions, position?: number): void;
9
+ }