spree_backend 4.2.0.rc2 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +1 -2
  3. data/app/assets/javascripts/spree/backend/address_states.js +20 -9
  4. data/app/assets/javascripts/spree/backend/admin.js +9 -15
  5. data/app/assets/javascripts/spree/backend/calculator.js +2 -0
  6. data/app/assets/javascripts/spree/backend/checkouts/edit.js +99 -71
  7. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +1 -1
  8. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +31 -37
  9. data/app/assets/javascripts/spree/backend/option_value_picker.js +50 -23
  10. data/app/assets/javascripts/spree/backend/product_picker.js +35 -19
  11. data/app/assets/javascripts/spree/backend/promotions.js +32 -27
  12. data/app/assets/javascripts/spree/backend/shipments.js +28 -37
  13. data/app/assets/javascripts/spree/backend/spree-select2.js +33 -14
  14. data/app/assets/javascripts/spree/backend/stock_transfer.js +32 -13
  15. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +30 -43
  16. data/app/assets/javascripts/spree/backend/taxons.js +60 -47
  17. data/app/assets/javascripts/spree/backend/user_picker.js +16 -18
  18. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +23 -22
  19. data/app/assets/stylesheets/spree/backend/components/_badges.scss +1 -1
  20. data/app/assets/stylesheets/spree/backend/components/_tables.scss +2 -2
  21. data/app/assets/stylesheets/spree/backend/global/_mixins.scss +19 -0
  22. data/app/assets/stylesheets/spree/backend/global/_variables.scss +1 -1
  23. data/app/assets/stylesheets/spree/backend/plugins/_flatpickr.scss +94 -76
  24. data/app/assets/stylesheets/spree/backend/plugins/_select2_custom.scss +11 -0
  25. data/app/assets/stylesheets/spree/backend/plugins/select2_bootstrap4.scss +622 -0
  26. data/app/assets/stylesheets/spree/backend/shared/_base.scss +4 -0
  27. data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +3 -1
  28. data/app/controllers/spree/admin/base_controller.rb +2 -0
  29. data/app/controllers/spree/admin/general_settings_controller.rb +1 -1
  30. data/app/controllers/spree/admin/images_controller.rb +3 -3
  31. data/app/controllers/spree/admin/orders/customer_details_controller.rb +1 -1
  32. data/app/controllers/spree/admin/orders_controller.rb +15 -2
  33. data/app/controllers/spree/admin/prices_controller.rb +0 -13
  34. data/app/controllers/spree/admin/products_controller.rb +2 -2
  35. data/app/controllers/spree/admin/states_controller.rb +1 -1
  36. data/app/controllers/spree/admin/stores_controller.rb +7 -14
  37. data/app/controllers/spree/admin/taxons_controller.rb +15 -5
  38. data/app/helpers/spree/admin/base_helper.rb +68 -6
  39. data/app/helpers/spree/admin/navigation_helper.rb +11 -1
  40. data/app/helpers/spree/admin/payments_helper.rb +3 -3
  41. data/app/helpers/spree/admin/stock_movements_helper.rb +2 -0
  42. data/app/views/kaminari/admin-twitter-bootstrap-4/_first_page.html.erb +2 -2
  43. data/app/views/kaminari/admin-twitter-bootstrap-4/_gap.html.erb +2 -2
  44. data/app/views/kaminari/admin-twitter-bootstrap-4/_last_page.html.erb +2 -2
  45. data/app/views/kaminari/admin-twitter-bootstrap-4/_next_page.html.erb +2 -2
  46. data/app/views/kaminari/admin-twitter-bootstrap-4/_page.html.erb +2 -2
  47. data/app/views/kaminari/admin-twitter-bootstrap-4/_paginator.html.erb +2 -2
  48. data/app/views/kaminari/admin-twitter-bootstrap-4/_prev_page.html.erb +2 -2
  49. data/app/views/spree/admin/adjustments/index.html.erb +2 -2
  50. data/app/views/spree/admin/countries/index.html.erb +6 -6
  51. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +48 -46
  52. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +3 -1
  53. data/app/views/spree/admin/customer_returns/edit.html.erb +1 -1
  54. data/app/views/spree/admin/customer_returns/index.html.erb +2 -2
  55. data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
  56. data/app/views/spree/admin/general_settings/edit.html.erb +27 -4
  57. data/app/views/spree/admin/images/edit.html.erb +1 -1
  58. data/app/views/spree/admin/log_entries/index.html.erb +1 -1
  59. data/app/views/spree/admin/option_types/index.html.erb +2 -2
  60. data/app/views/spree/admin/orders/_add_line_item.html.erb +1 -1
  61. data/app/views/spree/admin/orders/_add_product.html.erb +1 -1
  62. data/app/views/spree/admin/orders/_adjustments.html.erb +2 -2
  63. data/app/views/spree/admin/orders/_channel_form.html.erb +18 -0
  64. data/app/views/spree/admin/orders/_form.html.erb +6 -10
  65. data/app/views/spree/admin/orders/_line_items.html.erb +1 -1
  66. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +5 -8
  67. data/app/views/spree/admin/orders/_order_actions.html.erb +1 -2
  68. data/app/views/spree/admin/orders/_risk_analysis.html.erb +3 -3
  69. data/app/views/spree/admin/orders/_shipment.html.erb +3 -2
  70. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +1 -1
  71. data/app/views/spree/admin/orders/cart.html.erb +1 -1
  72. data/app/views/spree/admin/orders/channel.html.erb +7 -0
  73. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +35 -12
  74. data/app/views/spree/admin/orders/customer_details/_form.html.erb +3 -3
  75. data/app/views/spree/admin/orders/customer_details/edit.html.erb +1 -1
  76. data/app/views/spree/admin/orders/edit.html.erb +1 -1
  77. data/app/views/spree/admin/orders/index.html.erb +12 -11
  78. data/app/views/spree/admin/payment_methods/_form.html.erb +65 -46
  79. data/app/views/spree/admin/payment_methods/index.html.erb +2 -2
  80. data/app/views/spree/admin/payments/_form.html.erb +2 -3
  81. data/app/views/spree/admin/payments/show.html.erb +1 -2
  82. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +3 -4
  83. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  84. data/app/views/spree/admin/prices/_variant_prices.html.erb +5 -5
  85. data/app/views/spree/admin/prices/index.html.erb +2 -2
  86. data/app/views/spree/admin/product_properties/index.html.erb +3 -4
  87. data/app/views/spree/admin/products/_form.html.erb +8 -9
  88. data/app/views/spree/admin/products/index.html.erb +2 -1
  89. data/app/views/spree/admin/products/new.html.erb +5 -3
  90. data/app/views/spree/admin/products/stock.html.erb +2 -2
  91. data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
  92. data/app/views/spree/admin/promotions/_actions.html.erb +2 -3
  93. data/app/views/spree/admin/promotions/_form.html.erb +10 -11
  94. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  95. data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +1 -1
  96. data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +1 -1
  97. data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +1 -1
  98. data/app/views/spree/admin/promotions/index.html.erb +7 -5
  99. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +8 -7
  100. data/app/views/spree/admin/promotions/rules/_product.html.erb +1 -1
  101. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +2 -2
  102. data/app/views/spree/admin/promotions/rules/_user.html.erb +1 -1
  103. data/app/views/spree/admin/prototypes/_form.html.erb +1 -1
  104. data/app/views/spree/admin/prototypes/show.html.erb +1 -1
  105. data/app/views/spree/admin/refunds/edit.html.erb +2 -2
  106. data/app/views/spree/admin/refunds/new.html.erb +3 -3
  107. data/app/views/spree/admin/reimbursements/edit.html.erb +5 -4
  108. data/app/views/spree/admin/reimbursements/show.html.erb +3 -1
  109. data/app/views/spree/admin/return_authorizations/_form.html.erb +7 -5
  110. data/app/views/spree/admin/return_authorizations/index.html.erb +2 -2
  111. data/app/views/spree/admin/return_index/customer_returns.html.erb +2 -2
  112. data/app/views/spree/admin/return_index/return_authorizations.html.erb +2 -2
  113. data/app/views/spree/admin/roles/index.html.erb +1 -1
  114. data/app/views/spree/admin/shared/_account_nav.html.erb +3 -3
  115. data/app/views/spree/admin/shared/_address_form.html.erb +9 -9
  116. data/app/views/spree/admin/shared/_error_messages.html.erb +1 -1
  117. data/app/views/spree/admin/shared/_head.html.erb +6 -2
  118. data/app/views/spree/admin/shared/_header.html.erb +0 -2
  119. data/app/views/spree/admin/shared/_main_menu.html.erb +1 -1
  120. data/app/views/spree/admin/shared/_order_summary.html.erb +25 -21
  121. data/app/views/spree/admin/shared/_order_tabs.html.erb +9 -0
  122. data/app/views/spree/admin/shared/_refunds.html.erb +2 -2
  123. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +4 -2
  124. data/app/views/spree/admin/shared/_translations.html.erb +9 -38
  125. data/app/views/spree/admin/shared/_update_order_state.js.erb +6 -2
  126. data/app/views/spree/admin/shared/named_types/_index.html.erb +1 -1
  127. data/app/views/spree/admin/shipping_categories/index.html.erb +2 -2
  128. data/app/views/spree/admin/shipping_methods/_form.html.erb +2 -2
  129. data/app/views/spree/admin/shipping_methods/index.html.erb +7 -3
  130. data/app/views/spree/admin/states/index.html.erb +2 -2
  131. data/app/views/spree/admin/stock_locations/_form.html.erb +2 -2
  132. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +1 -1
  133. data/app/views/spree/admin/stock_locations/index.html.erb +6 -6
  134. data/app/views/spree/admin/stock_movements/_form.html.erb +1 -1
  135. data/app/views/spree/admin/stock_movements/index.html.erb +2 -2
  136. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +1 -1
  137. data/app/views/spree/admin/stock_transfers/index.html.erb +42 -37
  138. data/app/views/spree/admin/stock_transfers/new.html.erb +1 -1
  139. data/app/views/spree/admin/stock_transfers/show.html.erb +0 -1
  140. data/app/views/spree/admin/stores/_form.html.erb +83 -25
  141. data/app/views/spree/admin/stores/index.html.erb +15 -8
  142. data/app/views/spree/admin/tax_categories/index.html.erb +3 -3
  143. data/app/views/spree/admin/tax_rates/index.html.erb +8 -8
  144. data/app/views/spree/admin/taxonomies/_js_head.html.erb +1 -2
  145. data/app/views/spree/admin/taxonomies/_list.html.erb +1 -1
  146. data/app/views/spree/admin/taxons/_form.html.erb +38 -35
  147. data/app/views/spree/admin/taxons/_taxon_table.html.erb +2 -2
  148. data/app/views/spree/admin/taxons/index.html.erb +1 -1
  149. data/app/views/spree/admin/users/_addresses_form.html.erb +4 -6
  150. data/app/views/spree/admin/users/_form.html.erb +0 -1
  151. data/app/views/spree/admin/users/edit.html.erb +1 -1
  152. data/app/views/spree/admin/users/index.html.erb +2 -2
  153. data/app/views/spree/admin/users/items.html.erb +1 -1
  154. data/app/views/spree/admin/variants/_form.html.erb +5 -3
  155. data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
  156. data/app/views/spree/admin/zones/_form.html.erb +2 -2
  157. data/app/views/spree/admin/zones/index.html.erb +1 -1
  158. data/app/views/spree/admin/zones/new.html.erb +1 -1
  159. data/app/views/spree/layouts/admin.html.erb +2 -3
  160. data/config/initializers/assets.rb +1 -1
  161. data/config/routes.rb +7 -1
  162. data/spree_backend.gemspec +2 -2
  163. metadata +20 -20
  164. data/app/assets/javascripts/spree/backend/flatpickr_locals.js +0 -37
  165. data/app/assets/javascripts/spree/backend/tag_picker.js +0 -52
  166. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +0 -190
  167. data/app/helpers/spree/admin/currency_helper.rb +0 -14
  168. data/app/views/spree/admin/general_settings/_form.html.erb +0 -17
@@ -0,0 +1,11 @@
1
+ // Stop an open select2-dropdown from appearing over fixed nav bar.
2
+ .select2-dropdown {
3
+ z-index: 1028;
4
+ }
5
+
6
+ // Hides the empty <li> tag highligted in open select2-dropdown.
7
+ ul.select2-results__options {
8
+ li:empty {
9
+ display: none;
10
+ }
11
+ }
@@ -0,0 +1,622 @@
1
+ // Variables directly translating Bootstrap variables
2
+ // -------------------------
3
+ $s2bs-border-radius-base: $border-radius !default;
4
+ $s2bs-border-radius-large: $border-radius-lg !default;
5
+ $s2bs-border-radius-small: $border-radius-sm !default;
6
+ $s2bs-btn-default-bg: transparent !default;
7
+ $s2bs-btn-default-border: $dark !default;
8
+ $s2bs-btn-default-color: $dark !default;
9
+ $s2bs-caret-padding: $custom-select-indicator-padding !default;
10
+ $s2bs-caret-width-base: 0.25rem !default;
11
+ $s2bs-caret-width-large: 0.3125rem !default;
12
+ $s2bs-cursor-disabled: not-allowed !default;
13
+ $s2bs-dropdown-bg: $dropdown-bg !default;
14
+ $s2bs-dropdown-header-color: $dropdown-header-color !default;
15
+ $s2bs-dropdown-link-active-bg: $dropdown-link-active-bg !default;
16
+ $s2bs-dropdown-link-active-color: $dropdown-link-active-color !default;
17
+ $s2bs-dropdown-link-disabled-color: $dropdown-link-disabled-color !default;
18
+ $s2bs-dropdown-link-hover-bg: $dropdown-link-hover-bg !default;
19
+ $s2bs-dropdown-link-hover-color: $dropdown-link-hover-color !default;
20
+ $s2bs-font-size-base: $font-size-base !default;
21
+ $s2bs-font-size-large: $font-size-lg !default;
22
+ $s2bs-font-size-small: $font-size-sm !default;
23
+ $s2bs-padding-base-horizontal: $custom-select-padding-x !default;
24
+ $s2bs-padding-large-horizontal: $input-padding-x-lg !default;
25
+ $s2bs-padding-small-horizontal: $input-padding-x-sm !default;
26
+ $s2bs-padding-base-vertical: $custom-select-padding-y !default;
27
+ $s2bs-padding-large-vertical: $input-btn-padding-y-lg !default;
28
+ $s2bs-padding-small-vertical: $input-btn-padding-y-sm !default;
29
+ $s2bs-line-height: $custom-select-line-height !default;
30
+ $s2bs-input-bg: $input-bg !default;
31
+ $s2bs-input-bg-disabled: $input-disabled-bg !default;
32
+ $s2bs-input-color: $input-color !default;
33
+ $s2bs-input-color-placeholder: $input-placeholder-color !default;
34
+ $s2bs-input-border: $input-border-color !default;
35
+ $s2bs-input-border-width: $input-border-width !default;
36
+ $s2bs-input-border-focus: $input-focus-border-color !default;
37
+ $s2bs-input-border-radius: $input-border-radius !default;
38
+ $s2bs-input-height-base: $input-height !default;
39
+ $s2bs-input-height-large: $input-height-lg !default;
40
+ $s2bs-input-height-small: $input-height-sm !default;
41
+
42
+
43
+ // Theme-specific variables
44
+ // -------------------------
45
+ $s2bs-dropdown-arrow-color: $s2bs-input-color-placeholder !default;
46
+ $s2bs-dropdown-box-shadow: 0 6px 12px rgba(0,0,0,.175) !default;
47
+ $s2bs-dropdown-box-shadow-above: 0px -6px 12px rgba(0,0,0,.175) !default;
48
+ $s2bs-clear-selection-color: $s2bs-dropdown-arrow-color !default;
49
+ $s2bs-clear-selection-hover-color: $s2bs-btn-default-color !default;
50
+ $s2bs-remove-choice-color: $s2bs-input-color-placeholder !default;
51
+ $s2bs-remove-choice-hover-color: $s2bs-btn-default-color !default;
52
+ $s2bs-selection-choice-border-radius: $s2bs-border-radius-base !default;
53
+ $s2bs-dropdown-header-padding-vertical: $s2bs-padding-base-vertical !default;
54
+ $s2bs-dropdown-header-font-size: $s2bs-font-size-small !default;
55
+
56
+
57
+ // Bootstrap defaults not available as pre-defined variables
58
+ // These should not be overridden.
59
+ // -------------------------
60
+ $s2bs-form-control-default-box-shadow: inset 0 1px 1px rgba(0,0,0,.075) !default;
61
+ $s2bs-form-control-focus-box-shadow: $s2bs-form-control-default-box-shadow, 0 0 8px rgba($s2bs-input-border-focus, 0.6) !default;
62
+ $s2bs-form-control-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s !default;
63
+
64
+
65
+ //
66
+ // Mixins
67
+ // --------------------------------------------------
68
+ @mixin bootstrap-input-defaults($font-size: $s2bs-font-size-base) {
69
+ @include box-shadow($s2bs-form-control-default-box-shadow);
70
+ background-color: $s2bs-input-bg;
71
+ border: $s2bs-input-border-width solid $s2bs-input-border;
72
+ @include border-radius($s2bs-input-border-radius);
73
+ color: $s2bs-input-color;
74
+ font-size: $font-size;
75
+ }
76
+
77
+ @mixin validation-state-focus($color) {
78
+ $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($color, 20%);
79
+
80
+ .select2-dropdown,
81
+ .select2-selection {
82
+ border-color: $color;
83
+ }
84
+
85
+ .select2-container--focus .select2-selection,
86
+ .select2-container--open .select2-selection {
87
+ @include box-shadow($shadow);
88
+ border-color: darken($color, 10%);
89
+ }
90
+
91
+ &.select2-drop-active {
92
+ border-color: darken($color, 10%);
93
+
94
+ &.select2-drop.select2-drop-above {
95
+ border-top-color: darken($color, 10%);
96
+ }
97
+ }
98
+ }
99
+
100
+ @mixin dropdown-arrow {
101
+ .select2-selection--single {
102
+ .select2-selection__arrow b {
103
+ border-color: transparent transparent $s2bs-dropdown-arrow-color transparent;
104
+ border-width: 0 $s2bs-caret-width-large $s2bs-caret-width-large $s2bs-caret-width-large;
105
+ }
106
+ }
107
+ }
108
+
109
+ .select2-container--bootstrap4 {
110
+ display: block;
111
+
112
+ .select2-selection {
113
+ @include bootstrap-input-defaults;
114
+ outline: 0;
115
+
116
+ &.form-control {
117
+ @include border-radius($s2bs-border-radius-base);
118
+ }
119
+ }
120
+
121
+ .select2-search__field {
122
+ outline: 0;
123
+
124
+ &::-webkit-input-placeholder {
125
+ color: $s2bs-input-color-placeholder;
126
+ }
127
+
128
+ &::-moz-placeholder {
129
+ color: $s2bs-input-color-placeholder;
130
+ opacity: 1;
131
+ }
132
+
133
+ &:-moz-placeholder {
134
+ color: $s2bs-input-color-placeholder;
135
+ }
136
+
137
+ &:-ms-input-placeholder {
138
+ color: $s2bs-input-color-placeholder;
139
+ }
140
+ }
141
+
142
+ .select2-search--dropdown {
143
+ .select2-search__field {
144
+ @include bootstrap-input-defaults;
145
+ }
146
+ }
147
+
148
+ .select2-results__group {
149
+ color: $s2bs-dropdown-header-color;
150
+ display: block;
151
+ padding: $s2bs-dropdown-header-padding-vertical $s2bs-padding-base-horizontal;
152
+ font-size: $s2bs-dropdown-header-font-size;
153
+ line-height: $s2bs-line-height;
154
+ white-space: nowrap;
155
+ }
156
+
157
+ .select2-results__option {
158
+ padding: $s2bs-padding-base-vertical $s2bs-padding-base-horizontal;
159
+ font-size: $s2bs-font-size-base;
160
+
161
+ &[role=group] {
162
+ padding: 0;
163
+ }
164
+
165
+ &[aria-disabled=true] {
166
+ color: $s2bs-dropdown-link-disabled-color;
167
+ cursor: $s2bs-cursor-disabled;
168
+ }
169
+
170
+ &[aria-selected=true] {
171
+ background-color: $s2bs-dropdown-link-hover-bg;
172
+ color: $s2bs-dropdown-link-hover-color;
173
+ }
174
+ &--highlighted[aria-selected] {
175
+ background-color: $s2bs-dropdown-link-active-bg;
176
+ color: $s2bs-dropdown-link-active-color;
177
+ }
178
+
179
+ .select2-results__option {
180
+ padding: $s2bs-padding-base-vertical $s2bs-padding-base-horizontal;
181
+
182
+ .select2-results__group {
183
+ padding-left: 0;
184
+ }
185
+
186
+ .select2-results__option {
187
+ margin-left: -$s2bs-padding-base-horizontal;
188
+ padding-left: $s2bs-padding-base-horizontal*2;
189
+
190
+ .select2-results__option {
191
+ margin-left: -$s2bs-padding-base-horizontal*2;
192
+ padding-left: $s2bs-padding-base-horizontal*3;
193
+
194
+ .select2-results__option {
195
+ margin-left: -$s2bs-padding-base-horizontal*3;
196
+ padding-left: $s2bs-padding-base-horizontal*4;
197
+
198
+ .select2-results__option {
199
+ margin-left: -$s2bs-padding-base-horizontal*4;
200
+ padding-left: $s2bs-padding-base-horizontal*5;
201
+
202
+ .select2-results__option {
203
+ margin-left: -$s2bs-padding-base-horizontal*5;
204
+ padding-left: $s2bs-padding-base-horizontal*6;
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+
213
+ &.select2-container--focus,
214
+ &.select2-container--open {
215
+ .select2-selection {
216
+ @include box-shadow($s2bs-form-control-focus-box-shadow);
217
+ @include transition($s2bs-form-control-transition);
218
+ border-color: $s2bs-input-border-focus;
219
+ }
220
+ }
221
+
222
+ .select2-selection__clear {
223
+ margin-top: -2px; //make up for lowercase line centering
224
+ padding-left: 3px;
225
+ padding-right: 3px;
226
+ margin-left: -3px;
227
+ margin-right: -3px;
228
+ color: $s2bs-clear-selection-color;
229
+ cursor: pointer;
230
+ float: right;
231
+ font-weight: bold;
232
+
233
+ &:hover {
234
+ color: $s2bs-clear-selection-hover-color;
235
+ }
236
+ }
237
+
238
+ .select2-selection--multiple {
239
+ min-height: $s2bs-input-height-base;
240
+ padding: 0;
241
+ height: auto;
242
+ cursor: text;
243
+
244
+ .select2-selection__rendered {
245
+ box-sizing: border-box;
246
+ display: block;
247
+ line-height: $s2bs-line-height;
248
+ list-style: none;
249
+ margin: 0;
250
+ overflow: hidden;
251
+ padding: $s2bs-padding-base-vertical $s2bs-padding-base-horizontal 0 $s2bs-padding-base-horizontal;
252
+ width: 100%;
253
+ text-overflow: ellipsis;
254
+ white-space: nowrap;
255
+ }
256
+
257
+ .select2-selection__placeholder {
258
+ color: $s2bs-input-color-placeholder;
259
+ float: left;
260
+ margin-top: 5px;
261
+ }
262
+
263
+ .select2-selection__clear {
264
+ border: $s2bs-input-border-width solid transparent;
265
+ margin-bottom: calc(#{$s2bs-padding-base-horizontal/2} + 2px);
266
+ }
267
+
268
+ .select2-selection__choice {
269
+ color: $s2bs-input-color;
270
+ background: $s2bs-btn-default-bg;
271
+ border: $s2bs-input-border-width solid $s2bs-btn-default-border;
272
+ @include border-radius($s2bs-selection-choice-border-radius);
273
+ cursor: default;
274
+ float: left;
275
+ overflow: hidden;
276
+ text-overflow: ellipsis;
277
+ max-width: 100%;
278
+ margin: 0 $s2bs-padding-base-horizontal/2 $s2bs-padding-base-horizontal/2 0;
279
+ padding: 0 $s2bs-padding-base-horizontal;
280
+ }
281
+
282
+ .select2-search--inline {
283
+ margin-bottom: $s2bs-padding-base-horizontal/2;
284
+
285
+ .select2-search__field {
286
+ background: transparent;
287
+
288
+ line-height: $s2bs-line-height;
289
+ margin-top: 0;
290
+ }
291
+ }
292
+
293
+ .select2-selection__choice__remove {
294
+ color: $s2bs-remove-choice-color;
295
+ cursor: pointer;
296
+ display: inline-block;
297
+ font-weight: bold;
298
+ margin-right: $s2bs-padding-base-horizontal / 2;
299
+ margin-left: -($s2bs-padding-base-horizontal / 2);
300
+
301
+ &:hover {
302
+ color: $s2bs-remove-choice-hover-color;
303
+ }
304
+ }
305
+ }
306
+
307
+ &.select2-container--disabled {
308
+ .select2-selection {
309
+ border-color: $s2bs-input-border;
310
+ @include box-shadow(none);
311
+ }
312
+
313
+ .select2-selection,
314
+ .select2-search__field { /* stylelint-disable-line no-descending-specificity */
315
+ cursor: $s2bs-cursor-disabled;
316
+ }
317
+
318
+ .select2-selection,
319
+ .select2-selection--multiple .select2-selection__choice {
320
+ background-color: $s2bs-input-bg-disabled;
321
+ }
322
+
323
+ .select2-selection__clear,
324
+ .select2-selection--multiple .select2-selection__choice__remove {
325
+ display: none;
326
+ }
327
+ }
328
+
329
+ .select2-selection--single {
330
+ display: flex;
331
+ align-items: center;
332
+ height: $s2bs-input-height-base;
333
+ line-height: $s2bs-line-height;
334
+ padding: 0 ($s2bs-padding-base-horizontal + $s2bs-caret-padding) 0 $s2bs-padding-base-horizontal;
335
+
336
+ .select2-selection__arrow {
337
+ display: flex;
338
+ justify-content: center;
339
+ align-items: center;
340
+ position: absolute;
341
+ top: 0;
342
+ bottom: 0;
343
+ right: $s2bs-padding-base-horizontal;
344
+
345
+ b {
346
+ border-color: $s2bs-dropdown-arrow-color transparent transparent transparent;
347
+ border-style: solid;
348
+ border-width: $s2bs-caret-width-base $s2bs-caret-width-base 0 $s2bs-caret-width-base;
349
+ }
350
+ }
351
+
352
+ .select2-selection__rendered {
353
+ flex-grow: 1;
354
+ padding: 0 3px 0 0;
355
+ margin-right: -3px;
356
+ color: $s2bs-input-color;
357
+ }
358
+
359
+ .select2-selection__placeholder {
360
+ color: $s2bs-input-color-placeholder;
361
+ }
362
+ }
363
+
364
+ .input-group-lg & .select2-selection {
365
+ &.select2-container--open {
366
+ @include dropdown-arrow;
367
+ }
368
+ }
369
+
370
+ &.select2-container--open {
371
+ .select2-selection .select2-selection__arrow b {
372
+ border-color: transparent transparent $s2bs-dropdown-arrow-color transparent;
373
+ border-width: 0 $s2bs-caret-width-base $s2bs-caret-width-base $s2bs-caret-width-base;
374
+ }
375
+
376
+ &.select2-container--below {
377
+ .select2-selection {
378
+ @include border-bottom-radius(0);
379
+ border-bottom-color: transparent;
380
+ }
381
+ }
382
+
383
+ &.select2-container--above {
384
+ .select2-selection {
385
+ @include border-top-radius(0);
386
+ border-top-color: transparent;
387
+ }
388
+ }
389
+ }
390
+
391
+ .select2-dropdown {
392
+ @include box-shadow($s2bs-dropdown-box-shadow);
393
+ border-color: $s2bs-input-border-focus;
394
+ border-width: $s2bs-input-border-width;
395
+ overflow-x: hidden;
396
+ margin-top: -1px;
397
+
398
+ background-color: $dropdown-bg;
399
+
400
+ &--above {
401
+ @include box-shadow($s2bs-dropdown-box-shadow-above);
402
+ margin-top: 1px;
403
+ }
404
+ }
405
+
406
+ .select2-results > .select2-results__options {
407
+ max-height: 200px;
408
+ overflow-y: auto;
409
+ }
410
+
411
+ .select2-selection--single.input-sm,
412
+ .input-group-sm & .select2-selection--single,
413
+ .form-group-sm & .select2-selection--single {
414
+ @include border-radius($s2bs-border-radius-small);
415
+ font-size: $s2bs-font-size-small;
416
+ height: $s2bs-input-height-small;
417
+ line-height: $s2bs-line-height;
418
+
419
+ // .select2-selection__arrow b { }
420
+ }
421
+
422
+ .select2-selection--multiple.input-sm,
423
+ .input-group-sm & .select2-selection--multiple,
424
+ .form-group-sm & .select2-selection--multiple {
425
+ min-height: $s2bs-input-height-small;
426
+ @include border-radius($s2bs-border-radius-small);
427
+
428
+ .select2-selection__rendered
429
+ {
430
+ padding: $s2bs-padding-small-vertical $s2bs-padding-small-horizontal 0 $s2bs-padding-small-horizontal;
431
+ font-size: $s2bs-font-size-small;
432
+ }
433
+
434
+ .select2-selection__clear {
435
+ margin-bottom: calc(#{$s2bs-padding-small-horizontal/2} + 2px);
436
+ }
437
+
438
+ .select2-selection__choice {
439
+ line-height: $s2bs-line-height;
440
+ margin: 0 $s2bs-padding-small-horizontal/2 $s2bs-padding-small-horizontal/2 0;
441
+ padding: 0 $s2bs-padding-small-horizontal;
442
+ }
443
+
444
+ .select2-search--inline {
445
+ margin-bottom: $s2bs-padding-small-horizontal/2;
446
+ .select2-search__field {
447
+ font-size: $s2bs-font-size-small;
448
+ }
449
+ }
450
+
451
+ .select2-selection__choice__remove {
452
+ margin-right: $s2bs-padding-small-horizontal / 2;
453
+ margin-left: -($s2bs-padding-small-horizontal / 2);
454
+ }
455
+ }
456
+
457
+ .select2-selection--single.input-lg,
458
+ .input-group-lg & .select2-selection--single,
459
+ .form-group-lg & .select2-selection--single {
460
+ @include border-radius($s2bs-border-radius-large);
461
+ font-size: $s2bs-font-size-large;
462
+ height: $s2bs-input-height-large;
463
+ line-height: $s2bs-line-height;
464
+ padding: $s2bs-padding-large-vertical ($s2bs-padding-large-horizontal + $s2bs-caret-padding) $s2bs-padding-large-vertical $s2bs-padding-large-horizontal;
465
+
466
+ .select2-selection__arrow {
467
+ b {
468
+ border-width: $s2bs-caret-width-large $s2bs-caret-width-large 0 $s2bs-caret-width-large;
469
+ }
470
+ }
471
+ }
472
+
473
+ .select2-selection--multiple.input-lg,
474
+ .input-group-lg & .select2-selection--multiple,
475
+ .form-group-lg & .select2-selection--multiple {
476
+ min-height: $s2bs-input-height-large;
477
+ @include border-radius($s2bs-border-radius-large);
478
+
479
+ .select2-selection__rendered
480
+ {
481
+ padding: $s2bs-padding-large-vertical $s2bs-padding-large-horizontal 0 $s2bs-padding-large-horizontal;
482
+ font-size: $s2bs-font-size-large;
483
+ }
484
+
485
+ .select2-selection__clear {
486
+ margin-bottom: calc(#{$s2bs-padding-large-horizontal/2} + 2px);
487
+ }
488
+
489
+ .select2-selection__choice {
490
+ font-size: $s2bs-font-size-large;
491
+ margin: 0 $s2bs-padding-large-horizontal/2 $s2bs-padding-large-horizontal/2 0;
492
+ padding: 0 $s2bs-padding-large-horizontal;
493
+
494
+ }
495
+
496
+ .select2-search--inline {
497
+ margin-bottom: $s2bs-padding-large-horizontal/2;
498
+ .select2-search__field {
499
+ font-size: $s2bs-font-size-large;
500
+ }
501
+ }
502
+
503
+ .select2-selection__choice__remove {
504
+ margin-right: $s2bs-padding-large-horizontal / 2;
505
+ margin-left: -($s2bs-padding-large-horizontal / 2);
506
+ }
507
+ }
508
+
509
+ .select2-selection.input-lg.select2-container--open {
510
+ @include dropdown-arrow;
511
+ }
512
+
513
+ &[dir="rtl"] {
514
+
515
+ .select2-selection--single {
516
+ padding-left: $s2bs-padding-base-horizontal + $s2bs-caret-padding;
517
+ padding-right: $s2bs-padding-base-horizontal;
518
+
519
+ .select2-selection__rendered {
520
+ padding-right: 0;
521
+ padding-left: 0;
522
+ text-align: right;
523
+ }
524
+
525
+ .select2-selection__clear {
526
+ float: left;
527
+ }
528
+
529
+ .select2-selection__arrow {
530
+ left: $s2bs-padding-base-horizontal;
531
+ right: auto;
532
+
533
+ b {
534
+ margin-left: 0;
535
+ }
536
+ }
537
+ }
538
+
539
+ .select2-selection--multiple {
540
+ .select2-selection__choice,
541
+ .select2-selection__placeholder,
542
+ .select2-search--inline {
543
+ float: right;
544
+ }
545
+
546
+ .select2-selection__choice {
547
+ margin-left: 0;
548
+ margin-right: $s2bs-padding-base-horizontal/2;
549
+ }
550
+
551
+ .select2-selection__choice__remove {
552
+ margin-left: 2px;
553
+ margin-right: auto;
554
+ }
555
+ }
556
+ }
557
+ }
558
+
559
+ .has-warning {
560
+ @include validation-state-focus($warning);
561
+ }
562
+
563
+ .has-error {
564
+ @include validation-state-focus($danger);
565
+ }
566
+
567
+ .has-success {
568
+ @include validation-state-focus($success);
569
+ }
570
+
571
+ .input-group > .select2-container--bootstrap4 {
572
+ display: table;
573
+ table-layout: fixed;
574
+ position: relative;
575
+ z-index: 2;
576
+ width: 100%;
577
+ margin-bottom: 0;
578
+
579
+ > .selection > .select2-selection.form-control {
580
+ float: none;
581
+ }
582
+
583
+ &.select2-container--open,
584
+ &.select2-container--focus{
585
+ z-index: 3;
586
+ }
587
+
588
+
589
+ &,
590
+ .input-group-btn,
591
+ .input-group-btn .btn {
592
+ vertical-align: top;
593
+ }
594
+ }
595
+
596
+ .input-group > .select2-hidden-accessible {
597
+ &:first-child + .select2-container--bootstrap4 > .selection > .select2-selection,
598
+ &:first-child + .select2-container--bootstrap4 > .selection > .select2-selection.form-control {
599
+ @include border-right-radius(0);
600
+ }
601
+
602
+ &:not(:first-child) + .select2-container--bootstrap4:not(:last-child) > .selection > .select2-selection,
603
+ &:not(:first-child) + .select2-container--bootstrap4:not(:last-child) > .selection > .select2-selection.form-control {
604
+ border-radius: 0;
605
+ }
606
+
607
+ &:not(:first-child):not(:last-child) + .select2-container--bootstrap4:last-child > .selection > .select2-selection,
608
+ &:not(:first-child):not(:last-child) + .select2-container--bootstrap4:last-child > .selection > .select2-selection.form-control {
609
+ @include border-left-radius(0);
610
+ }
611
+ }
612
+
613
+ .form-control.select2-hidden-accessible {
614
+ position: absolute !important;
615
+ width: 1px !important;
616
+ }
617
+
618
+ .form-inline .select2-container--bootstrap4 {
619
+ @include media-breakpoint-up(sm) {
620
+ display: inline-block;
621
+ }
622
+ }