@shoper/phoenix_design_system 1.0.4 → 1.1.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 (234) hide show
  1. package/build/cjs/{packages/phoenix/external → external}/classnames/index.js +10 -16
  2. package/build/{esm/packages/phoenix → cjs}/external/classnames/index.js.map +1 -1
  3. package/build/cjs/external/lit/external/lit-html/async-directive.js +18 -0
  4. package/build/cjs/external/lit/external/lit-html/async-directive.js.map +1 -0
  5. package/build/cjs/external/lit/external/lit-html/directive-helpers.js +14 -0
  6. package/build/cjs/external/lit/external/lit-html/directive-helpers.js.map +1 -0
  7. package/build/cjs/external/lit/external/lit-html/directive.js +2 -1
  8. package/build/cjs/external/lit/external/lit-html/directive.js.map +1 -1
  9. package/build/cjs/packages/phoenix/src/components/accordion/accordion.js +1 -1
  10. package/build/cjs/packages/phoenix/src/components/accordion/accordion_content.js +1 -1
  11. package/build/cjs/packages/phoenix/src/components/accordion/accordion_group.js +2 -2
  12. package/build/cjs/packages/phoenix/src/components/accordion/accordion_toggler.js +2 -2
  13. package/build/cjs/packages/phoenix/src/components/color_swatches/color_item/color_item.js +1 -1
  14. package/build/cjs/packages/phoenix/src/components/color_swatches/show-more/show_more.js +1 -1
  15. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown.js +3 -3
  16. package/build/cjs/packages/phoenix/src/components/dropdown/dropdown_toggler.js +1 -1
  17. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  18. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  19. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_control.js +2 -2
  20. package/build/cjs/packages/phoenix/src/components/form/checkbox/checkbox_control.js.map +1 -1
  21. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +11 -13
  22. package/build/cjs/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +1 -1
  23. package/build/cjs/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_consumer_controller.js +1 -1
  24. package/build/cjs/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_provider_controller.js +1 -1
  25. package/build/cjs/packages/phoenix/src/components/form/input/input.js +1 -1
  26. package/build/cjs/packages/phoenix/src/components/form/input/input.js.map +1 -1
  27. package/build/cjs/packages/phoenix/src/components/form/input/input_icon.js +1 -1
  28. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js +1 -1
  29. package/build/cjs/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  30. package/build/cjs/packages/phoenix/src/components/form/select/components/option/select_option.js +57 -0
  31. package/build/cjs/packages/phoenix/src/components/form/select/components/option/select_option.js.map +1 -0
  32. package/build/cjs/packages/phoenix/src/components/form/select/components/option/select_option_constants.js +12 -0
  33. package/build/cjs/packages/phoenix/src/components/form/select/components/option/select_option_constants.js.map +1 -0
  34. package/build/cjs/packages/phoenix/src/components/form/select/components/search/select_search.js +50 -0
  35. package/build/cjs/packages/phoenix/src/components/form/select/components/search/select_search.js.map +1 -0
  36. package/build/cjs/packages/phoenix/src/components/form/select/components/search/select_search_constants.js +13 -0
  37. package/build/cjs/packages/phoenix/src/components/form/select/components/search/select_search_constants.js.map +1 -0
  38. package/build/cjs/packages/phoenix/src/components/form/select/components/select_components_constatns.js +29 -0
  39. package/build/cjs/packages/phoenix/src/components/form/select/components/select_components_constatns.js.map +1 -0
  40. package/build/cjs/packages/phoenix/src/components/form/select/components/select_options.js +31 -0
  41. package/build/cjs/packages/phoenix/src/components/form/select/components/select_options.js.map +1 -0
  42. package/build/cjs/packages/phoenix/src/components/form/select/components/value/select_value.js +69 -0
  43. package/build/cjs/packages/phoenix/src/components/form/select/components/value/select_value.js.map +1 -0
  44. package/build/cjs/packages/phoenix/src/components/form/select/components/value/select_value_constants.js +10 -0
  45. package/build/cjs/packages/phoenix/src/components/form/select/components/value/select_value_constants.js.map +1 -0
  46. package/build/cjs/packages/phoenix/src/components/form/select/controllers/base_select_controller.js +93 -0
  47. package/build/cjs/packages/phoenix/src/components/form/select/controllers/base_select_controller.js.map +1 -0
  48. package/build/cjs/packages/phoenix/src/components/form/select/controllers/multi_select_controller.js +22 -0
  49. package/build/cjs/packages/phoenix/src/components/form/select/controllers/multi_select_controller.js.map +1 -0
  50. package/build/cjs/packages/phoenix/src/components/form/select/controllers/select_controller.js +19 -0
  51. package/build/cjs/packages/phoenix/src/components/form/select/controllers/select_controller.js.map +1 -0
  52. package/build/cjs/packages/phoenix/src/components/form/select/model/select_option.js +19 -0
  53. package/build/cjs/packages/phoenix/src/components/form/select/model/select_option.js.map +1 -0
  54. package/build/cjs/packages/phoenix/src/components/form/select/model/select_option_mapper.js +24 -0
  55. package/build/cjs/packages/phoenix/src/components/form/select/model/select_option_mapper.js.map +1 -0
  56. package/build/cjs/packages/phoenix/src/components/form/select/select.js +225 -0
  57. package/build/cjs/packages/phoenix/src/components/form/select/select.js.map +1 -0
  58. package/build/cjs/packages/phoenix/src/components/form/select/select_constants.js +35 -0
  59. package/build/cjs/packages/phoenix/src/components/form/select/select_constants.js.map +1 -0
  60. package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js +52 -0
  61. package/build/cjs/packages/phoenix/src/components/form/select/select_utils.js.map +1 -0
  62. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js +1 -1
  63. package/build/cjs/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  64. package/build/cjs/packages/phoenix/src/components/form/textarea/textarea.js +1 -1
  65. package/build/cjs/packages/phoenix/src/components/form/textarea/textarea.js.map +1 -1
  66. package/build/cjs/packages/phoenix/src/components/icon/icon.js +1 -1
  67. package/build/cjs/packages/phoenix/src/components/icon/icon.js.map +1 -1
  68. package/build/cjs/packages/phoenix/src/components/messages/base_message.js +1 -1
  69. package/build/cjs/packages/phoenix/src/components/modal/modal.js +4 -4
  70. package/build/cjs/packages/phoenix/src/components/portal/portal.js +1 -1
  71. package/build/cjs/packages/phoenix/src/components/portal/portal.js.map +1 -1
  72. package/build/cjs/packages/phoenix/src/components/portal/portal_target.js +1 -1
  73. package/build/cjs/packages/phoenix/src/components/scroll_to/scroll_to.js +1 -1
  74. package/build/cjs/packages/phoenix/src/components/tabs/tab/tab.js +1 -1
  75. package/build/cjs/packages/phoenix/src/components/tag/tag.js +3 -2
  76. package/build/cjs/packages/phoenix/src/components/tag/tag.js.map +1 -1
  77. package/build/cjs/packages/phoenix/src/controllers/{btn_controller.js → btn_controller/btn_controller.js} +4 -3
  78. package/build/cjs/packages/phoenix/src/controllers/btn_controller/btn_controller.js.map +1 -0
  79. package/build/cjs/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +4 -4
  80. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js +11 -0
  81. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js.map +1 -0
  82. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js +84 -0
  83. package/build/cjs/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js.map +1 -0
  84. package/build/cjs/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js +2 -7
  85. package/build/cjs/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js.map +1 -1
  86. package/build/cjs/packages/phoenix/src/core/classes/subject/subject.js +8 -1
  87. package/build/cjs/packages/phoenix/src/core/classes/subject/subject.js.map +1 -1
  88. package/build/cjs/packages/phoenix/src/core/context/context_consumer_controller.js +1 -1
  89. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +10 -5
  90. package/build/cjs/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  91. package/build/cjs/packages/phoenix/src/directives/observable_directive.js +40 -0
  92. package/build/cjs/packages/phoenix/src/directives/observable_directive.js.map +1 -0
  93. package/build/cjs/packages/phoenix/src/index.js +73 -45
  94. package/build/cjs/packages/phoenix/src/index.js.map +1 -1
  95. package/build/esm/{packages/phoenix/external → external}/classnames/index.js +10 -16
  96. package/build/{cjs/packages/phoenix → esm}/external/classnames/index.js.map +1 -1
  97. package/build/esm/external/lit/external/lit-html/async-directive.js +12 -0
  98. package/build/esm/external/lit/external/lit-html/async-directive.js.map +1 -0
  99. package/build/esm/external/lit/external/lit-html/directive-helpers.js +10 -0
  100. package/build/esm/external/lit/external/lit-html/directive-helpers.js.map +1 -0
  101. package/build/esm/external/lit/external/lit-html/directive.js +2 -2
  102. package/build/esm/packages/phoenix/src/components/accordion/accordion.js +1 -1
  103. package/build/esm/packages/phoenix/src/components/accordion/accordion_content.js +1 -1
  104. package/build/esm/packages/phoenix/src/components/accordion/accordion_group.js +2 -2
  105. package/build/esm/packages/phoenix/src/components/accordion/accordion_toggler.js +2 -2
  106. package/build/esm/packages/phoenix/src/components/color_swatches/color_item/color_item.js +1 -1
  107. package/build/esm/packages/phoenix/src/components/color_swatches/show-more/show_more.js +1 -1
  108. package/build/esm/packages/phoenix/src/components/dropdown/dropdown.js +3 -3
  109. package/build/esm/packages/phoenix/src/components/dropdown/dropdown_toggler.js +1 -1
  110. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js +1 -1
  111. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox.js.map +1 -1
  112. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_control.js +2 -2
  113. package/build/esm/packages/phoenix/src/components/form/checkbox/checkbox_control.js.map +1 -1
  114. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.d.ts +2 -3
  115. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js +11 -13
  116. package/build/esm/packages/phoenix/src/components/form/color_swatches_control/color_swatches_control.js.map +1 -1
  117. package/build/esm/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_consumer_controller.js +1 -1
  118. package/build/esm/packages/phoenix/src/components/form/controllers/props_synchronizing/control_props_sync_provider_controller.js +1 -1
  119. package/build/esm/packages/phoenix/src/components/form/input/input.js +1 -1
  120. package/build/esm/packages/phoenix/src/components/form/input/input.js.map +1 -1
  121. package/build/esm/packages/phoenix/src/components/form/input/input_icon.js +1 -1
  122. package/build/esm/packages/phoenix/src/components/form/radio/radio.js +1 -1
  123. package/build/esm/packages/phoenix/src/components/form/radio/radio.js.map +1 -1
  124. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option.d.ts +11 -0
  125. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option.js +55 -0
  126. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option.js.map +1 -0
  127. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option_constants.d.ts +4 -0
  128. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option_constants.js +8 -0
  129. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option_constants.js.map +1 -0
  130. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option_content.d.ts +4 -0
  131. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option_content.js +16 -0
  132. package/build/esm/packages/phoenix/src/components/form/select/components/option/select_option_content.js.map +1 -0
  133. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search.d.ts +7 -0
  134. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search.js +48 -0
  135. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search.js.map +1 -0
  136. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search_constants.d.ts +5 -0
  137. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search_constants.js +9 -0
  138. package/build/esm/packages/phoenix/src/components/form/select/components/search/select_search_constants.js.map +1 -0
  139. package/build/esm/packages/phoenix/src/components/form/select/components/select_close_btn.d.ts +6 -0
  140. package/build/esm/packages/phoenix/src/components/form/select/components/select_close_btn.js +23 -0
  141. package/build/esm/packages/phoenix/src/components/form/select/components/select_close_btn.js.map +1 -0
  142. package/build/esm/packages/phoenix/src/components/form/select/components/select_components_constatns.d.ts +19 -0
  143. package/build/esm/packages/phoenix/src/components/form/select/components/select_components_constatns.js +21 -0
  144. package/build/esm/packages/phoenix/src/components/form/select/components/select_components_types.d.ts +4 -0
  145. package/build/esm/packages/phoenix/src/components/form/select/components/select_components_types.js +2 -0
  146. package/build/esm/packages/phoenix/src/components/form/select/components/select_components_types.js.map +1 -0
  147. package/build/esm/packages/phoenix/src/components/form/select/components/select_options.d.ts +5 -0
  148. package/build/esm/packages/phoenix/src/components/form/select/components/select_options.js +29 -0
  149. package/build/esm/packages/phoenix/src/components/form/select/components/select_options.js.map +1 -0
  150. package/build/esm/packages/phoenix/src/components/form/select/components/value/select_value.d.ts +13 -0
  151. package/build/esm/packages/phoenix/src/components/form/select/components/value/select_value.js +67 -0
  152. package/build/esm/packages/phoenix/src/components/form/select/components/value/select_value.js.map +1 -0
  153. package/build/esm/packages/phoenix/src/components/form/select/components/value/select_value_constants.d.ts +3 -0
  154. package/build/esm/packages/phoenix/src/components/form/select/components/value/select_value_constants.js +6 -0
  155. package/build/esm/packages/phoenix/src/components/form/select/components/value/select_value_constants.js.map +1 -0
  156. package/build/esm/packages/phoenix/src/components/form/select/controllers/base_select_controller.d.ts +27 -0
  157. package/build/esm/packages/phoenix/src/components/form/select/controllers/base_select_controller.js +89 -0
  158. package/build/esm/packages/phoenix/src/components/form/select/controllers/base_select_controller.js.map +1 -0
  159. package/build/esm/packages/phoenix/src/components/form/select/controllers/multi_select_controller.d.ts +7 -0
  160. package/build/esm/packages/phoenix/src/components/form/select/controllers/multi_select_controller.js +18 -0
  161. package/build/esm/packages/phoenix/src/components/form/select/controllers/multi_select_controller.js.map +1 -0
  162. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controller.d.ts +5 -0
  163. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controller.js +15 -0
  164. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controller.js.map +1 -0
  165. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controllers_types.d.ts +22 -0
  166. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controllers_types.js +5 -0
  167. package/build/esm/packages/phoenix/src/components/form/select/controllers/select_controllers_types.js.map +1 -0
  168. package/build/esm/packages/phoenix/src/components/form/select/model/select_option.d.ts +10 -0
  169. package/build/esm/packages/phoenix/src/components/form/select/model/select_option.js +15 -0
  170. package/build/esm/packages/phoenix/src/components/form/select/model/select_option.js.map +1 -0
  171. package/build/esm/packages/phoenix/src/components/form/select/model/select_option_constants.d.ts +7 -0
  172. package/build/esm/packages/phoenix/src/components/form/select/model/select_option_constants.js +2 -0
  173. package/build/esm/packages/phoenix/src/components/form/select/model/select_option_constants.js.map +1 -0
  174. package/build/esm/packages/phoenix/src/components/form/select/model/select_option_mapper.d.ts +5 -0
  175. package/build/esm/packages/phoenix/src/components/form/select/model/select_option_mapper.js +20 -0
  176. package/build/esm/packages/phoenix/src/components/form/select/model/select_option_mapper.js.map +1 -0
  177. package/build/esm/packages/phoenix/src/components/form/select/select.d.ts +37 -0
  178. package/build/esm/packages/phoenix/src/components/form/select/select.js +223 -0
  179. package/build/esm/packages/phoenix/src/components/form/select/select.js.map +1 -0
  180. package/build/esm/packages/phoenix/src/components/form/select/select_constants.d.ts +23 -0
  181. package/build/esm/packages/phoenix/src/components/form/select/select_constants.js +27 -0
  182. package/build/esm/packages/phoenix/src/components/form/select/select_constants.js.map +1 -0
  183. package/build/esm/packages/phoenix/src/components/form/select/select_utils.d.ts +9 -0
  184. package/build/esm/packages/phoenix/src/components/form/select/select_utils.js +48 -0
  185. package/build/esm/packages/phoenix/src/components/form/select/select_utils.js.map +1 -0
  186. package/build/esm/packages/phoenix/src/components/form/switch/switch.js +1 -1
  187. package/build/esm/packages/phoenix/src/components/form/switch/switch.js.map +1 -1
  188. package/build/esm/packages/phoenix/src/components/form/textarea/textarea.js +1 -1
  189. package/build/esm/packages/phoenix/src/components/form/textarea/textarea.js.map +1 -1
  190. package/build/esm/packages/phoenix/src/components/icon/icon.js +1 -1
  191. package/build/esm/packages/phoenix/src/components/icon/icon.js.map +1 -1
  192. package/build/esm/packages/phoenix/src/components/messages/base_message.js +1 -1
  193. package/build/esm/packages/phoenix/src/components/modal/modal.js +4 -4
  194. package/build/esm/packages/phoenix/src/components/portal/portal.js +1 -1
  195. package/build/esm/packages/phoenix/src/components/portal/portal.js.map +1 -1
  196. package/build/esm/packages/phoenix/src/components/portal/portal_target.js +1 -1
  197. package/build/esm/packages/phoenix/src/components/scroll_to/scroll_to.js +1 -1
  198. package/build/esm/packages/phoenix/src/components/tabs/tab/tab.js +1 -1
  199. package/build/esm/packages/phoenix/src/components/tag/tag.js +3 -2
  200. package/build/esm/packages/phoenix/src/components/tag/tag.js.map +1 -1
  201. package/build/esm/packages/phoenix/src/controllers/{btn_controller.d.ts → btn_controller/btn_controller.d.ts} +2 -1
  202. package/build/esm/packages/phoenix/src/controllers/{btn_controller.js → btn_controller/btn_controller.js} +4 -3
  203. package/build/{cjs/packages/phoenix/src/controllers → esm/packages/phoenix/src/controllers/btn_controller}/btn_controller.js.map +1 -1
  204. package/build/esm/packages/phoenix/src/controllers/btn_controller/btn_controller_types.d.ts +3 -0
  205. package/build/esm/packages/phoenix/src/controllers/btn_controller/btn_controller_types.js +2 -0
  206. package/build/esm/packages/phoenix/src/controllers/btn_controller/btn_controller_types.js.map +1 -0
  207. package/build/esm/packages/phoenix/src/controllers/keystrokes_controller/keystrokes_controller.js +4 -4
  208. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.d.ts +4 -0
  209. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js +7 -0
  210. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_constants.js.map +1 -0
  211. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.d.ts +10 -0
  212. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.js +4 -0
  213. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_controller_types.js.map +1 -0
  214. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.d.ts +10 -0
  215. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js +80 -0
  216. package/build/esm/packages/phoenix/src/controllers/list_box_controller/list_box_keyboard_controller.js.map +1 -0
  217. package/build/esm/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.d.ts +0 -2
  218. package/build/esm/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js +2 -7
  219. package/build/esm/packages/phoenix/src/core/classes/behavior_subject/behavior_subject.js.map +1 -1
  220. package/build/esm/packages/phoenix/src/core/classes/subject/subject.d.ts +4 -2
  221. package/build/esm/packages/phoenix/src/core/classes/subject/subject.js +8 -1
  222. package/build/esm/packages/phoenix/src/core/classes/subject/subject.js.map +1 -1
  223. package/build/esm/packages/phoenix/src/core/classes/subject/subject_types.d.ts +2 -1
  224. package/build/esm/packages/phoenix/src/core/context/context_consumer_controller.js +1 -1
  225. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js +10 -5
  226. package/build/esm/packages/phoenix/src/core/phoenix_light_lit_element/phoenix_light_lit_element.js.map +1 -1
  227. package/build/esm/packages/phoenix/src/directives/observable_directive.d.ts +1 -0
  228. package/build/esm/packages/phoenix/src/directives/observable_directive.js +35 -31
  229. package/build/esm/packages/phoenix/src/directives/observable_directive.js.map +1 -1
  230. package/build/esm/packages/phoenix/src/index.d.ts +5 -1
  231. package/build/esm/packages/phoenix/src/index.js +16 -12
  232. package/build/esm/packages/phoenix/src/index.js.map +1 -1
  233. package/package.json +2 -2
  234. /package/build/esm/packages/phoenix/src/{controllers/btn_controller.js.map → components/form/select/components/select_components_constatns.js.map} +0 -0
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../../../external/tslib/tslib.es6.js');
6
+ var utilities = require('@dreamcommerce/utilities');
7
+ var phoenix_light_lit_element = require('../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
8
+ var phoenix_custom_element = require('../../../../core/decorators/phoenix_custom_element.js');
9
+ var select_components_constatns = require('./select_components_constatns.js');
10
+
11
+ exports.HSelectOptions = class HSelectOptions extends phoenix_light_lit_element.PhoenixLightLitElement {
12
+ constructor() {
13
+ super();
14
+ this._dispatchClickedEvent = ({ detail }) => {
15
+ this.dispatchEvent(new CustomEvent(select_components_constatns.SELECT_OPTIONS_EVENT_NAMES.clicked, {
16
+ bubbles: true,
17
+ detail: {
18
+ $option: detail.$option
19
+ }
20
+ }));
21
+ };
22
+ this.setAttribute('role', 'listbox');
23
+ utilities.UiDomUtils.makeNavigable(this);
24
+ this.addEventListener(select_components_constatns.SELECT_OPTION_EVENT_NAMES.clicked, this._dispatchClickedEvent);
25
+ }
26
+ };
27
+ exports.HSelectOptions = tslib_es6.__decorate([
28
+ phoenix_custom_element.phoenixCustomElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.options),
29
+ tslib_es6.__metadata("design:paramtypes", [])
30
+ ], exports.HSelectOptions);
31
+ //# sourceMappingURL=select_options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,kDAAsD;AAC9E;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,69 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../../../../external/tslib/tslib.es6.js');
6
+ var decorators = require('lit/decorators');
7
+ var phoenix_light_lit_element = require('../../../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
8
+ var phoenix_custom_element = require('../../../../../core/decorators/phoenix_custom_element.js');
9
+ var select_components_constatns = require('../select_components_constatns.js');
10
+ var litHtml = require('lit-html');
11
+ var context_consumer_controller = require('../../../../../core/context/context_consumer_controller.js');
12
+ var select_constants = require('../../select_constants.js');
13
+ var observable_directive = require('../../../../../directives/observable_directive.js');
14
+ var select_value_constants = require('./select_value_constants.js');
15
+
16
+ exports.HSelectValue = class HSelectValue extends phoenix_light_lit_element.PhoenixLightLitElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ this._contextConsumer = new context_consumer_controller.ContextConsumerController(this);
20
+ this._dispatchOptionDeselect = (option) => {
21
+ this.dispatchEvent(new CustomEvent(select_constants.SELECT_EVENT_NAMES.deselectOption, {
22
+ detail: option.value,
23
+ bubbles: true
24
+ }));
25
+ };
26
+ }
27
+ connectedCallback() {
28
+ super.connectedCallback();
29
+ this.setAttribute('slot', select_constants.SELECT_SLOT_NAMES.input);
30
+ this.setAttribute('role', 'textbox');
31
+ this._subscribeObserver();
32
+ }
33
+ async _subscribeObserver() {
34
+ this.isMultiselect = (await this._contextConsumer.consumeAsync(select_constants.SELECT_CONTEXTS.isMultiselect));
35
+ this.selectedOptions$ = (await this._contextConsumer.consumeAsync(select_constants.SELECT_CONTEXTS.selectedOptions$));
36
+ }
37
+ render() {
38
+ if (!this.selectedOptions$)
39
+ return;
40
+ return litHtml.html `
41
+ <div class=${select_value_constants.SELECT_VALUE_CSS_CLASSES.selectValue}>
42
+ ${observable_directive.observe(this.selectedOptions$, (selectOptions) => {
43
+ var _a;
44
+ if (!selectOptions.length)
45
+ return litHtml.html `${(_a = this.getSlot(select_components_constatns.SELECT_INPUT_PLACEHOLDER_SLOT_NAME)) !== null && _a !== void 0 ? _a : 'Select'}`;
46
+ return this.isMultiselect
47
+ ? litHtml.html `${selectOptions.map((option) => litHtml.html `<h-tag @tag.remove=${() => this._dispatchOptionDeselect(option)}>
48
+ ${option.content}
49
+
50
+ <h-tag-remove-button>x</h-tag-remove-button>
51
+ </h-tag>`)}`
52
+ : selectOptions[0].content;
53
+ })}
54
+ </div>
55
+ `;
56
+ }
57
+ };
58
+ tslib_es6.__decorate([
59
+ decorators.state(),
60
+ tslib_es6.__metadata("design:type", Object)
61
+ ], exports.HSelectValue.prototype, "selectedOptions$", void 0);
62
+ tslib_es6.__decorate([
63
+ decorators.state(),
64
+ tslib_es6.__metadata("design:type", Boolean)
65
+ ], exports.HSelectValue.prototype, "isMultiselect", void 0);
66
+ exports.HSelectValue = tslib_es6.__decorate([
67
+ phoenix_custom_element.phoenixCustomElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.value)
68
+ ], exports.HSelectValue);
69
+ //# sourceMappingURL=select_value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,qDAAyD;AACjF;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,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const SELECT_VALUE_CSS_CLASSES = {
6
+ selectValue: 'select-value'
7
+ };
8
+
9
+ exports.SELECT_VALUE_CSS_CLASSES = SELECT_VALUE_CSS_CLASSES;
10
+ //# sourceMappingURL=select_value_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;"}
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('lit');
6
+ var utilities = require('@dreamcommerce/utilities');
7
+ var observer = require('../../../../core/classes/observer/observer.js');
8
+ var behavior_subject = require('../../../../core/classes/behavior_subject/behavior_subject.js');
9
+
10
+ class BaseSelectController {
11
+ constructor({ host }) {
12
+ this.options$ = new behavior_subject.BehaviorSubject([]);
13
+ this.selectedOptions$ = new behavior_subject.BehaviorSubject([]);
14
+ this._calculateValuesRelatedToOptions = (selectOptions) => {
15
+ const { visibleCount, selectedCount } = selectOptions.reduce((acc, option) => {
16
+ return {
17
+ visibleCount: !option.hidden ? acc.visibleCount + 1 : acc.visibleCount,
18
+ selectedCount: option.selected ? acc.selectedCount + 1 : acc.selectedCount
19
+ };
20
+ }, { visibleCount: 0, selectedCount: 0 });
21
+ this.visibleOptionsCount = visibleCount;
22
+ this.selectedOptionsCount = selectedCount;
23
+ this.selectedOptions$.notify(selectOptions.filter((option) => option.selected));
24
+ };
25
+ this.host = host;
26
+ this.host.addController(this);
27
+ this._setupComputedStateObserver();
28
+ }
29
+ _setupComputedStateObserver() {
30
+ this._optionsObserver = new observer.Observer(this._calculateValuesRelatedToOptions);
31
+ this.options$.subscribe(this._optionsObserver);
32
+ }
33
+ toggleOption(option) {
34
+ option.selected ? this.deselectOption(option) : this.selectOption(option);
35
+ }
36
+ removeOption(optionValue) {
37
+ const options = this.options$.getValue();
38
+ if (!options)
39
+ return;
40
+ this.options$.notify(options.filter((option) => option.value !== optionValue));
41
+ }
42
+ addOption(option, position) {
43
+ var _a;
44
+ const options = (_a = this.options$.getValue()) !== null && _a !== void 0 ? _a : [];
45
+ if (position === undefined) {
46
+ options.push(option);
47
+ this.options$.notify(options);
48
+ return;
49
+ }
50
+ this.options$.notify([...options.slice(0, position - 1), option, ...options.slice(position - 1)]);
51
+ }
52
+ replaceOptions(options) {
53
+ this.options$.notify(options);
54
+ }
55
+ deselectOptions() {
56
+ var _a;
57
+ (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.forEach((option) => (option.selected = false));
58
+ this.requestOptionsUpdate();
59
+ }
60
+ deselectOption(option) {
61
+ var _a;
62
+ (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.forEach((option) => (option.selected = false));
63
+ this.requestOptionsUpdate();
64
+ }
65
+ filterOptions(value) {
66
+ const selectOptions = this.options$.getValue();
67
+ if (!selectOptions)
68
+ return;
69
+ const filtered = utilities.SearchingUtils.fuzzySearch(value, selectOptions, 'content');
70
+ selectOptions.forEach((option) => (option.hidden = true));
71
+ filtered.forEach((option) => {
72
+ option.hidden = false;
73
+ });
74
+ this.requestOptionsUpdate();
75
+ }
76
+ requestOptionsUpdate() {
77
+ const selectOptions = this.options$.getValue();
78
+ if (!selectOptions)
79
+ return;
80
+ this.options$.notify([...selectOptions]);
81
+ this.host.requestUpdate();
82
+ }
83
+ getSelectOption(selectValue) {
84
+ var _a;
85
+ return (_a = this.options$.getValue()) === null || _a === void 0 ? void 0 : _a.find((option) => option.value === selectValue);
86
+ }
87
+ hostConnected() {
88
+ this.options$.unsubscribe(this._optionsObserver);
89
+ }
90
+ }
91
+
92
+ exports.BaseSelectController = BaseSelectController;
93
+ //# 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;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var base_select_controller = require('./base_select_controller.js');
6
+
7
+ class MultiSelectController extends base_select_controller.BaseSelectController {
8
+ toggleOption(option) {
9
+ option.selected ? this.deselectOption(option) : this.selectOption(option);
10
+ }
11
+ selectOption(option) {
12
+ option.selected = true;
13
+ this.requestOptionsUpdate();
14
+ }
15
+ deselectOption(option) {
16
+ option.selected = false;
17
+ this.requestOptionsUpdate();
18
+ }
19
+ }
20
+
21
+ exports.MultiSelectController = MultiSelectController;
22
+ //# 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;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var base_select_controller = require('./base_select_controller.js');
6
+
7
+ class SelectController extends base_select_controller.BaseSelectController {
8
+ selectOption(option) {
9
+ var _a;
10
+ const selectedOptions = (_a = this.options$.getValue()) !== null && _a !== void 0 ? _a : [];
11
+ selectedOptions.forEach((option) => (option.selected = false));
12
+ option.selected = true;
13
+ this.selectedOptions$.notify([option]);
14
+ this.requestOptionsUpdate();
15
+ }
16
+ }
17
+
18
+ exports.SelectController = SelectController;
19
+ //# 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;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ class SelectOption {
6
+ constructor({ selected = false, hidden = false, disabled = false, value, content }) {
7
+ this.value = value;
8
+ this.selected = selected;
9
+ this.hidden = hidden;
10
+ this.disabled = disabled;
11
+ this.content = content;
12
+ }
13
+ static create(options) {
14
+ return new SelectOption(options);
15
+ }
16
+ }
17
+
18
+ exports.SelectOption = SelectOption;
19
+ //# 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;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var select_components_constatns = require('../components/select_components_constatns.js');
6
+ var select_option = require('./select_option.js');
7
+
8
+ class SelectOptionMapper {
9
+ static toModel($option) {
10
+ var _a;
11
+ const optionContent = (_a = $option.querySelector(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.optionContent)) === null || _a === void 0 ? void 0 : _a.textContent;
12
+ if (!optionContent)
13
+ throw new Error('h-options must contains a h-option-content element inside');
14
+ return select_option.SelectOption.create({
15
+ value: $option.value,
16
+ disabled: $option.disabled,
17
+ hidden: $option.hidden,
18
+ content: optionContent
19
+ });
20
+ }
21
+ }
22
+
23
+ exports.SelectOptionMapper = SelectOptionMapper;
24
+ //# 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;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,225 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('../../../../../../external/tslib/tslib.es6.js');
6
+ var lit = require('lit');
7
+ var decorators = require('lit/decorators');
8
+ var phoenix_light_lit_element = require('../../../core/phoenix_light_lit_element/phoenix_light_lit_element.js');
9
+ var phoenix_custom_element = require('../../../core/decorators/phoenix_custom_element.js');
10
+ var decorators_js = require('@lit/reactive-element/decorators.js');
11
+ var select_components_constatns = require('./components/select_components_constatns.js');
12
+ var select_constants = require('./select_constants.js');
13
+ var observer = require('../../../core/classes/observer/observer.js');
14
+ var observable_directive = require('../../../directives/observable_directive.js');
15
+ var context_provider_controller = require('../../../core/context/context_provider_controller.js');
16
+ var ref_js = require('lit-html/directives/ref.js');
17
+ var multi_select_controller = require('./controllers/multi_select_controller.js');
18
+ var select_controller = require('./controllers/select_controller.js');
19
+ var select_search = require('./components/search/select_search.js');
20
+ var list_box_keyboard_controller = require('../../../controllers/list_box_controller/list_box_keyboard_controller.js');
21
+ var icon = require('../../icon/icon.js');
22
+ var select_option_mapper = require('./model/select_option_mapper.js');
23
+ var select_utils = require('./select_utils.js');
24
+
25
+ exports.HSelect = class HSelect extends phoenix_light_lit_element.PhoenixLightLitElement {
26
+ constructor() {
27
+ super();
28
+ this.multiselect = false;
29
+ this.opened = false;
30
+ this._searchValue = '';
31
+ this._$options = {};
32
+ this._$dropdown = ref_js.createRef();
33
+ this._$search = ref_js.createRef();
34
+ this._$optionsList = ref_js.createRef();
35
+ this._$dropdownContent = ref_js.createRef();
36
+ this._selectContext = new context_provider_controller.ContextProviderController(this);
37
+ this._handleOptionDeselect = (event) => {
38
+ const selectedOption = this._selectController.getSelectOption(event.detail);
39
+ if (!selectedOption)
40
+ return;
41
+ this._selectController.deselectOption(selectedOption);
42
+ };
43
+ this._updateOptionsView = (options) => {
44
+ // if (options.length < Object.keys(this._$options).length) this._removeHTMLOptions(options.map((option: SelectOption) => option.value));
45
+ options.forEach((option, index) => {
46
+ const { selected, value } = option;
47
+ const $option = this._$options[value];
48
+ if (!$option) {
49
+ // this._appendNewHTMLOption(option, index + 1);
50
+ return;
51
+ }
52
+ select_utils.SelectControlUtils.syncHTMLOptionWithModel(option, $option);
53
+ if (!selected)
54
+ return;
55
+ $option.setAttribute(this.multiselect ? 'aria-checked' : 'aria-selected', 'true');
56
+ });
57
+ };
58
+ this._handleOptionClicked = (event) => {
59
+ const selectedOption = this._selectController.getSelectOption(event.detail.$option.value);
60
+ if (!selectedOption)
61
+ return;
62
+ this._selectController.toggleOption(selectedOption);
63
+ if (!this.multiselect)
64
+ this._closeSelect();
65
+ };
66
+ this._closeSelect = () => {
67
+ var _a;
68
+ (_a = this._$dropdown.value) === null || _a === void 0 ? void 0 : _a.hide();
69
+ };
70
+ this._clearOptions = () => {
71
+ this._selectController.deselectOptions();
72
+ };
73
+ this._handleDropdownHidden = () => {
74
+ this._searchValue = '';
75
+ this.opened = false;
76
+ };
77
+ const $options = Array.from(this.querySelectorAll(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option));
78
+ $options.forEach(($option) => $option.setAttribute('slot', select_constants.SELECT_SLOT_NAMES.content));
79
+ }
80
+ updated(changedProperties) {
81
+ super.updated(changedProperties);
82
+ if (changedProperties.has('opened'))
83
+ this.opened ? this.classList.add(select_constants.SELECT_CSS_CLASSES.selectOpened) : this.classList.remove(select_constants.SELECT_CSS_CLASSES.selectOpened);
84
+ if (this._$optionsList.value && !this._listBoxController)
85
+ this._listBoxController = new list_box_keyboard_controller.ListBoxKeyboardController({
86
+ host: this,
87
+ $list: this._$optionsList.value
88
+ });
89
+ }
90
+ connectedCallback() {
91
+ super.connectedCallback();
92
+ this.classList.add(select_constants.SELECT_CSS_CLASSES.select);
93
+ this._selectController = this.multiselect ? new multi_select_controller.MultiSelectController({ host: this }) : new select_controller.SelectController({ host: this });
94
+ this._selectContext.provide(select_constants.SELECT_CONTEXTS.selectedOptions$, this._selectController.selectedOptions$);
95
+ this._selectContext.provide(select_constants.SELECT_CONTEXTS.isMultiselect, this.multiselect);
96
+ const $options = Array.from(this.querySelectorAll(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option));
97
+ this._selectController.options$.subscribe(new observer.Observer((selectedOptions) => this._updateOptionsView(selectedOptions)));
98
+ this._$options = $options.reduce((acc, $option) => {
99
+ if (acc[$option.value] !== undefined)
100
+ throw Error('Select options must hava a unique values.');
101
+ return {
102
+ ...acc,
103
+ [$option.value]: $option
104
+ };
105
+ }, {});
106
+ this._selectController.options$.notify($options.map(select_option_mapper.SelectOptionMapper.toModel));
107
+ this._setupEvents();
108
+ }
109
+ firstUpdated(props) {
110
+ super.firstUpdated(props);
111
+ if (this._$dropdownContent.value)
112
+ this._$dropdownContent.value.style.width = `${this.getBoundingClientRect().width}px`;
113
+ }
114
+ _setupEvents() {
115
+ this.addEventListener(select_constants.SELECT_EVENT_NAMES.deselectOption, this._handleOptionDeselect);
116
+ }
117
+ _appendNewHTMLOption(option, position) {
118
+ const $list = this._$optionsList.value;
119
+ if (!$list)
120
+ return;
121
+ const { value, selected } = option;
122
+ const $option = select_utils.SelectControlUtils.createHTMLOption(option);
123
+ if (selected)
124
+ $option.setAttribute(this.multiselect ? 'aria-checked' : 'aria-selected', 'true');
125
+ this._$options[value] = $option;
126
+ select_utils.SelectControlUtils.appendHTMLOption($option, $list, position);
127
+ }
128
+ _removeHTMLOptions(optionsValues) {
129
+ this._$options = select_utils.SelectControlUtils.removeHTMLOptions(Object.values(this._$options), optionsValues);
130
+ }
131
+ _handleSearch({ detail }) {
132
+ this._searchValue = detail;
133
+ }
134
+ update(changedProperties) {
135
+ super.update(changedProperties);
136
+ if (changedProperties.has('_searchValue'))
137
+ this._selectController.filterOptions(this._searchValue);
138
+ }
139
+ addOption(option, position) {
140
+ this._selectController.addOption(option, position);
141
+ }
142
+ removeOption(optionValue) {
143
+ this._selectController.removeOption(optionValue);
144
+ }
145
+ replaceOptions(options) {
146
+ this._selectController.replaceOptions(options);
147
+ }
148
+ render() {
149
+ var _a;
150
+ const options = (_a = this._selectController.options$.getValue()) !== null && _a !== void 0 ? _a : [];
151
+ return lit.html `
152
+ <h-dropdown
153
+ ${ref_js.ref(this._$dropdown)}
154
+ @dropdown.showed=${() => (this.opened = true)}
155
+ @dropdown.hidden=${this._handleDropdownHidden}
156
+ name=${this.controlName}
157
+ >
158
+ <h-dropdown-toggler name=${this.controlName} class="${select_constants.SELECT_CSS_CLASSES.selectControl}">
159
+ ${this.getSlot(select_constants.SELECT_SLOT_NAMES.input)}
160
+ <h-icon icon-name="icon-chevron-down"></h-icon>
161
+ </h-dropdown-toggler>
162
+
163
+ <h-dropdown-content class=${select_constants.SELECT_CSS_CLASSES.selectContent} ${ref_js.ref(this._$dropdownContent)} name=${this.controlName}>
164
+ <h-select-close-btn @click=${this._closeSelect}></h-select-close-btn>
165
+
166
+ ${options.length > select_constants.MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH
167
+ ? lit.html `<h-select-search
168
+ class=${select_constants.SELECT_CSS_CLASSES.selectSearch}
169
+ ${ref_js.ref(this._$search)}
170
+ .value=${this._searchValue}
171
+ @selectSearch.search=${this._handleSearch}
172
+ ></h-select-search>`
173
+ : lit.nothing}
174
+ ${this.hasSlot(select_constants.SELECT_SLOT_NAMES.content)
175
+ ? lit.html `
176
+ <h-select-options
177
+ class=${select_constants.SELECT_CSS_CLASSES.selectOptions}
178
+ ${ref_js.ref(this._$optionsList)}
179
+ @selectOptions.clicked=${this._handleOptionClicked}
180
+ >
181
+ ${this.getSlot(select_constants.SELECT_SLOT_NAMES.content)}
182
+ </h-select-options>
183
+ `
184
+ : lit.nothing}
185
+ ${!this._selectController.visibleOptionsCount ? lit.html `<p>brak wyników dla ${this._searchValue}</p>` : lit.nothing}
186
+ ${this.multiselect && this._selectController.selectedOptionsCount >= 1
187
+ ? lit.html `
188
+ <section class=${select_constants.SELECT_CSS_CLASSES.selectFooter}>
189
+ <button @click=${this._clearOptions}>clear</button>
190
+ <h-select-close-btn @click=${this._closeSelect}>ok</h-select-close-btn>
191
+ </section>
192
+ `
193
+ : lit.nothing}
194
+ </h-dropdown-content>
195
+ </h-dropdown>
196
+
197
+ ${observable_directive.observe(this._selectController.selectedOptions$, (selectOptions) => selectOptions.map((option) => lit.html `<input type="hidden" name=${this.controlName} value=${option.value} />`))}
198
+ `;
199
+ }
200
+ };
201
+ exports.HSelect._components = {
202
+ search: select_search.HSelectSearch,
203
+ icon: icon.HIcon
204
+ };
205
+ tslib_es6.__decorate([
206
+ decorators_js.property({ type: String }),
207
+ tslib_es6.__metadata("design:type", String)
208
+ ], exports.HSelect.prototype, "controlName", void 0);
209
+ tslib_es6.__decorate([
210
+ decorators_js.property({ type: Boolean }),
211
+ tslib_es6.__metadata("design:type", Boolean)
212
+ ], exports.HSelect.prototype, "multiselect", void 0);
213
+ tslib_es6.__decorate([
214
+ decorators_js.property({ type: Boolean }),
215
+ tslib_es6.__metadata("design:type", Boolean)
216
+ ], exports.HSelect.prototype, "opened", void 0);
217
+ tslib_es6.__decorate([
218
+ decorators.state(),
219
+ tslib_es6.__metadata("design:type", String)
220
+ ], exports.HSelect.prototype, "_searchValue", void 0);
221
+ exports.HSelect = tslib_es6.__decorate([
222
+ phoenix_custom_element.phoenixCustomElement('h-select'),
223
+ tslib_es6.__metadata("design:paramtypes", [])
224
+ ], exports.HSelect);
225
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,wBAAwB,+CAAmD;AAC3E;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;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,35 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const SELECT_CONTEXTS = {
6
+ isMultiselect: 'isMultiselect',
7
+ selectedOptions$: 'selectedOptions$'
8
+ };
9
+ const SELECT_SLOT_NAMES = {
10
+ content: 'content',
11
+ input: 'input'
12
+ };
13
+ const SELECT_EVENT_NAMES = {
14
+ selectOption: 'selectOption.select',
15
+ deselectOption: 'selectOption.deselect'
16
+ };
17
+ const MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH = 6;
18
+ const baseSelectClass = 'select';
19
+ const SELECT_CSS_CLASSES = {
20
+ select: baseSelectClass,
21
+ selectOpened: `${baseSelectClass}_opened`,
22
+ selectControl: `${baseSelectClass}__control`,
23
+ selectInput: `${baseSelectClass}__value`,
24
+ selectSearch: `${baseSelectClass}__search`,
25
+ selectOptions: `${baseSelectClass}__options`,
26
+ selectContent: `${baseSelectClass}__content`,
27
+ selectFooter: `${baseSelectClass}__footer`
28
+ };
29
+
30
+ exports.MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH = MIN_NUMBER_OF_OPTIONS_TO_SHOW_SEARCH;
31
+ exports.SELECT_CONTEXTS = SELECT_CONTEXTS;
32
+ exports.SELECT_CSS_CLASSES = SELECT_CSS_CLASSES;
33
+ exports.SELECT_EVENT_NAMES = SELECT_EVENT_NAMES;
34
+ exports.SELECT_SLOT_NAMES = SELECT_SLOT_NAMES;
35
+ //# sourceMappingURL=select_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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var select_components_constatns = require('./components/select_components_constatns.js');
6
+
7
+ class SelectControlUtils {
8
+ static createHTMLOption(option) {
9
+ const { selected, value, disabled, hidden, content } = option;
10
+ const $option = document.createElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option);
11
+ $option.setAttribute('value', String(value));
12
+ const $optionContent = document.createElement(select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.optionContent);
13
+ $optionContent.innerText = content;
14
+ $option.append($optionContent);
15
+ if (selected)
16
+ $option.setAttribute('selected', '');
17
+ if (disabled)
18
+ $option.setAttribute('disabled', '');
19
+ if (hidden)
20
+ $option.setAttribute('hidden', '');
21
+ return $option;
22
+ }
23
+ static syncHTMLOptionWithModel(option, $option) {
24
+ const { selected, value, disabled, hidden } = option;
25
+ $option.selected = selected;
26
+ $option.value = value;
27
+ $option.disabled = disabled;
28
+ $option.hidden = hidden;
29
+ }
30
+ static removeHTMLOptions($options, optionsValuesThatExists) {
31
+ return $options.reduce((acc, $option) => {
32
+ if (optionsValuesThatExists.includes($option.value))
33
+ return {
34
+ ...acc,
35
+ [$option.value]: $option
36
+ };
37
+ $option.remove();
38
+ return acc;
39
+ }, {});
40
+ }
41
+ static appendHTMLOption($option, $list, position) {
42
+ if (position !== undefined) {
43
+ const $nextOption = $list.querySelector(`${select_components_constatns.SELECT_RELATED_COMPONENTS_NAMES.option}:nth-child(${position})`);
44
+ $nextOption ? $nextOption.insertAdjacentElement('beforebegin', $option) : $list.append($option);
45
+ return;
46
+ }
47
+ $list.append($option);
48
+ }
49
+ }
50
+
51
+ exports.SelectControlUtils = SelectControlUtils;
52
+ //# sourceMappingURL=select_utils.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;"}