renalware-core 2.0.123 → 2.0.124

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -6
  3. data/app/assets/config/renalware/core/manifest.js +5 -0
  4. data/app/assets/images/renalware/icons/chevron-down.svg +1 -0
  5. data/app/assets/images/renalware/icons/chevron-up.svg +1 -0
  6. data/app/assets/images/renalware/icons/chevrons-down.svg +1 -0
  7. data/app/assets/images/renalware/icons/chevrons-up.svg +1 -0
  8. data/app/assets/javascripts/renalware/README.md +9 -0
  9. data/app/assets/javascripts/renalware/{charting/charting.js.erb → charting.js} +0 -2
  10. data/app/assets/javascripts/renalware/{ajax_errors.js → components/ajax_errors.js} +0 -0
  11. data/app/assets/javascripts/renalware/{aki_alerts.js → components/aki_alerts.js} +0 -0
  12. data/app/assets/javascripts/renalware/{appointments.js → components/appointments.js} +0 -0
  13. data/app/assets/javascripts/renalware/{behaviours.js → components/behaviours.js} +0 -0
  14. data/app/assets/javascripts/renalware/components/bla.es6 +1 -0
  15. data/app/assets/javascripts/renalware/{clipboard_setup.js → components/clipboard_setup.js} +0 -0
  16. data/app/assets/javascripts/renalware/components/clockpicker.js +742 -0
  17. data/app/assets/javascripts/renalware/{contacts.js → components/contacts.js} +0 -0
  18. data/app/assets/javascripts/renalware/{dialogs.js.erb → components/dialogs.js.erb} +0 -0
  19. data/app/assets/javascripts/renalware/{drugs.js → components/drugs.js} +0 -0
  20. data/app/assets/javascripts/renalware/{events.js → components/events.js} +0 -0
  21. data/app/assets/javascripts/renalware/{feed_only_inputs.js.erb → components/feed_only_inputs.js.erb} +0 -0
  22. data/app/assets/javascripts/renalware/{feeds.js → components/feeds.js} +0 -0
  23. data/app/assets/javascripts/renalware/{forms.js → components/forms.js} +0 -0
  24. data/app/assets/javascripts/renalware/{full_screen.js → components/full_screen.js} +0 -0
  25. data/app/assets/javascripts/renalware/{hd.js → components/hd.js} +0 -0
  26. data/app/assets/javascripts/renalware/{iframe.js → components/iframe.js} +0 -0
  27. data/app/assets/javascripts/renalware/{keyboard_shortcuts.js → components/keyboard_shortcuts.js} +0 -0
  28. data/app/assets/javascripts/renalware/{layout.js → components/layout.js} +0 -0
  29. data/app/assets/javascripts/renalware/{letters.js → components/letters.js} +0 -0
  30. data/app/assets/javascripts/renalware/{masonry.run.js → components/masonry.run.js} +0 -0
  31. data/app/assets/javascripts/renalware/{messaging.js → components/messaging.js} +0 -0
  32. data/app/assets/javascripts/renalware/{modality_codes.js → components/modality_codes.js} +0 -0
  33. data/app/assets/javascripts/renalware/{modality_reasons.js → components/modality_reasons.js} +0 -0
  34. data/app/assets/javascripts/renalware/{navigation.js → components/navigation.js} +0 -0
  35. data/app/assets/javascripts/renalware/{patient_ajax_search.js → components/patient_ajax_search.js} +0 -0
  36. data/app/assets/javascripts/renalware/{patient_menu.js → components/patient_menu.js} +0 -0
  37. data/app/assets/javascripts/renalware/{pd.js → components/pd.js} +0 -0
  38. data/app/assets/javascripts/renalware/{pdf.js → components/pdf.js} +0 -0
  39. data/app/assets/javascripts/renalware/{person_ajax_search.js → components/person_ajax_search.js} +0 -0
  40. data/app/assets/javascripts/renalware/{primary_care_physician_search.js → components/primary_care_physician_search.js} +0 -0
  41. data/app/assets/javascripts/renalware/{primary_care_physicians.js → components/primary_care_physicians.js} +0 -0
  42. data/app/assets/javascripts/renalware/{problems.js → components/problems.js} +0 -0
  43. data/app/assets/javascripts/renalware/{renal.js → components/renal.js} +0 -0
  44. data/app/assets/javascripts/renalware/{reporting.js.erb → components/reporting.js.erb} +0 -0
  45. data/app/assets/javascripts/renalware/{searchables.js → components/searchables.js} +0 -0
  46. data/app/assets/javascripts/renalware/{select2-ajax-search.js → components/select2-ajax-search.js} +0 -0
  47. data/app/assets/javascripts/renalware/{session_timeout_redirect.js.erb → components/session_timeout_redirect.js.erb} +0 -0
  48. data/app/assets/javascripts/renalware/{sortable.js → components/sortable.js} +0 -0
  49. data/app/assets/javascripts/renalware/{table.js → components/table.js} +0 -0
  50. data/app/assets/javascripts/renalware/{tabs.js → components/tabs.js} +0 -0
  51. data/app/assets/javascripts/renalware/components/toggler.js +64 -0
  52. data/app/assets/javascripts/renalware/{transplants.js → components/transplants.js} +0 -0
  53. data/app/assets/javascripts/renalware/{application.js.erb → core.js.erb} +1 -2
  54. data/app/assets/stylesheets/renalware/README.md +16 -0
  55. data/app/assets/stylesheets/renalware/base/_variables.scss +1 -0
  56. data/app/assets/stylesheets/renalware/{application.scss → core.scss} +0 -0
  57. data/app/assets/stylesheets/renalware/lib/_clockpicker.css +98 -98
  58. data/app/assets/stylesheets/renalware/partials/_button.scss +49 -0
  59. data/app/assets/stylesheets/renalware/{clipboard.scss → partials/_clipboard.scss} +0 -0
  60. data/app/assets/stylesheets/renalware/partials/_tables.scss +63 -1
  61. data/app/assets/stylesheets/renalware/partials/_toggling.scss +38 -0
  62. data/app/assets/stylesheets/renalware/{print/pathology_request_forms.scss → pathology_request_forms.scss} +0 -0
  63. data/app/controllers/renalware/letters/letters_controller.rb +1 -1
  64. data/app/controllers/renalware/problems/notes_controller.rb +6 -0
  65. data/app/helpers/renalware/application_helper.rb +0 -7
  66. data/app/helpers/renalware/link_helper.rb +13 -0
  67. data/app/helpers/renalware/mdm_helper.rb +2 -1
  68. data/app/helpers/renalware/toggle_helper.rb +22 -0
  69. data/app/javascript/controllers/{clipboard_controller.js → clipboard_controller.js.dead} +0 -0
  70. data/app/models/concerns/renalware/transaction_retry.rb +38 -0
  71. data/app/models/renalware/accesses/patient.rb +1 -1
  72. data/app/models/renalware/hd/session.rb +1 -0
  73. data/app/models/renalware/letters/letter.rb +1 -0
  74. data/app/models/renalware/modalities/modality.rb +1 -1
  75. data/app/models/renalware/patient.rb +9 -4
  76. data/app/models/renalware/patients/ingestion/commands/add_or_update_patient.rb +6 -0
  77. data/app/views/renalware/clinical/body_compositions/_table.html.slim +9 -2
  78. data/app/views/renalware/clinics/clinic_visits/_table.html.slim +2 -1
  79. data/app/views/renalware/clinics/clinic_visits/_table_row.html.slim +3 -8
  80. data/app/views/renalware/clinics/visits/_table.html.slim +6 -5
  81. data/app/views/renalware/clinics/visits/_table_row.html.slim +34 -12
  82. data/app/views/renalware/dashboard/letters/_letter.html.slim +0 -2
  83. data/app/views/renalware/events/events/_event.html.slim +6 -9
  84. data/app/views/renalware/events/events/_table.html.slim +3 -1
  85. data/app/views/renalware/hd/sessions/_row.html.slim +2 -6
  86. data/app/views/renalware/hd/sessions/_thead.html.slim +1 -0
  87. data/app/views/renalware/hd/sessions/dna/_row.html.slim +3 -6
  88. data/app/views/renalware/hospitals/units/index.html.slim +0 -2
  89. data/app/views/renalware/layouts/error.html.slim +1 -1
  90. data/app/views/renalware/letters/electronic_receipts/_table.html.slim +0 -1
  91. data/app/views/renalware/letters/electronic_receipts/sent.html.slim +0 -1
  92. data/app/views/renalware/letters/letters/_letter.html.slim +4 -7
  93. data/app/views/renalware/letters/letters/_table.html.slim +2 -1
  94. data/app/views/renalware/letters/lists/_letter.html.slim +8 -12
  95. data/app/views/renalware/letters/lists/_table.html.slim +4 -3
  96. data/app/views/renalware/mdm/_clinic_visits.html.slim +5 -0
  97. data/app/views/renalware/pathology/requests/requests/create.pdf.slim +1 -1
  98. data/app/views/renalware/pathology/requests/requests/new.html.slim +2 -19
  99. data/app/views/renalware/pathology/requests/requests/show.pdf.slim +1 -1
  100. data/app/views/renalware/problems/notes/_table.html.slim +12 -3
  101. data/app/views/renalware/snippets/snippets/_row.html.slim +0 -2
  102. data/app/views/renalware/surveys/_eq5d_summary_part.html.slim +1 -1
  103. data/app/views/renalware/surveys/_pos_s_summary_part.html.slim +1 -1
  104. data/config/routes/patients.rb +1 -1
  105. data/lib/renalware.rb +0 -13
  106. data/lib/renalware/engine.rb +3 -60
  107. data/lib/renalware/version.rb +1 -1
  108. data/lib/tasks/renalware.rake +3 -100
  109. metadata +63 -58
  110. data/app/assets/javascripts/renalware/clockpicker.js +0 -742
  111. data/app/assets/javascripts/renalware/toggler.js +0 -41
  112. data/app/javascript/packs/renalware_core.js +0 -20
  113. data/config/webpack/development.js +0 -5
  114. data/config/webpack/environment.js +0 -3
  115. data/config/webpack/production.js +0 -5
  116. data/config/webpack/test.js +0 -5
  117. data/config/webpacker.yml +0 -103
@@ -0,0 +1,64 @@
1
+ function initTogglers() {
2
+
3
+ function triggerMasonryLayoutRefresh() {
4
+ $('.grid > .row').masonry('layout');
5
+ }
6
+
7
+ function toggleTarget(elem, open) {
8
+ // Get e.g. the tr to toggle
9
+ var toggled = $(elem).attr("href");
10
+ $(toggled).toggle(open);
11
+ // If we are toggling open tr B by clicking a link within tr A above it,
12
+ // add a class to the tr A sibling above it so it can also be styled
13
+ // to match the expanded TR B below it, to create a clear connection between the two.
14
+ // $(toggled).prev().toggleClass("content-toggled", open);
15
+ $(elem).closest("tr").toggleClass("content-toggled", open);
16
+ }
17
+
18
+ var togglers = $("a[data-behaviour='toggler']");
19
+ if (togglers.length > 0) {
20
+ $(togglers).on("click", function(event) {
21
+ event.preventDefault();
22
+ toggleTarget(event.target);
23
+ triggerMasonryLayoutRefresh();
24
+ })
25
+ }
26
+
27
+ // This handles toggers in a thead th that when clicked will open all the
28
+ // toggleable rows in the table.
29
+ var tableTogglers = $("a[data-behaviour='table-toggler']");
30
+ if (tableTogglers.length > 0) {
31
+ $(tableTogglers).on("click", function(event) {
32
+ event.preventDefault();
33
+ var parentTable = $(event.target).closest("table");
34
+ var togglers = $("a[data-behaviour='toggler']", parentTable);
35
+
36
+ // If the toggler in the the already has the class togglrf indicting it is
37
+ // toggled open then reverse that anf toggle accordingly
38
+ var open = !$(event.target).hasClass("toggled");
39
+ $(event.target).toggleClass("toggled", open);
40
+ $(togglers).each(function(e) { toggleTarget(this, open) });
41
+ triggerMasonryLayoutRefresh();
42
+ })
43
+ }
44
+
45
+ // css-toggler applies where you want a single line of text with a trailing ellipsis
46
+ // contained in a .css-toggle-container to be expandable. Targeting the href selector here
47
+ // will toggle the .expanded class on that element.
48
+ // See the SCSS for what that class does, but it will probably take off the nowrap and allow
49
+ // the content to expand downwards so it is all visible.
50
+ // This is useful for expanding content in a table cell for example.
51
+ var togglers = $("a[data-behaviour='css-toggler']");
52
+ if (togglers.length > 0) {
53
+ $(togglers).on("click", function(event) {
54
+ event.preventDefault();
55
+ var selectorsToToggle = $(event.target).attr("href");
56
+ $(selectorsToToggle).toggleClass("expanded");
57
+ triggerMasonryLayoutRefresh();
58
+ })
59
+ }
60
+ }
61
+
62
+ $(function() {
63
+ initTogglers();
64
+ });
@@ -33,7 +33,6 @@
33
33
  //= require select2/dist/js/select2
34
34
  //= require jquery_nested_form
35
35
  //= require foundation-datepicker
36
- //= require renalware/clockpicker
37
36
  //= require renalware/double_scroll
38
37
  //= require cocoon
39
38
  //= require mousetrap/mousetrap
@@ -44,7 +43,7 @@
44
43
  //= require rails.validations.simple_form
45
44
  //= require print-js/dist/print
46
45
  //= require moment/moment
47
- //= require_directory .
46
+ //= require_directory ./components
48
47
  //
49
48
 
50
49
  // Define a console.log if one does not yet exist - e.g. we in IE11
@@ -0,0 +1,16 @@
1
+ # CSS
2
+
3
+ The css or scss files in this top-level folder will be compiled and linked
4
+ by sprockets 4 as individually downloadble css assets (as .css and .css.gz files).
5
+
6
+ core.scss is the main css file which imports other .scss files in
7
+ ./partials and ./modules, and includes css assets from external gem dependencies.
8
+
9
+ The other css files mainly relate to pdf processing and are required because
10
+ of the way wicked_pdf and the wkhtmltopdf process handle (ie inlining) css.
11
+ If we replaced wkhtmltopdf with prawn for example, these css files would not be
12
+ required.
13
+
14
+ watermark.css is required by both pdf and html rendering which is why its a separate thing.
15
+
16
+ See also e.g. https://github.com/rails/sprockets#link_directory
@@ -116,6 +116,7 @@ $footer-bg-colour: $patient-menu-background-colour;
116
116
  // Forms
117
117
  $form-hint-colour: #bbb;
118
118
  $disabled-colour: #ccc;
119
+ $pipe-separator-colour: #AAA;
119
120
 
120
121
  // Menus
121
122
  $patient-menu-icon-color: $gainsboro;
@@ -212,164 +212,164 @@
212
212
  */
213
213
 
214
214
  .clockpicker .input-group-addon {
215
- cursor: pointer;
215
+ cursor: pointer;
216
216
  }
217
217
  .clockpicker-moving {
218
- cursor: move;
218
+ cursor: move;
219
219
  }
220
220
  .clockpicker-align-left.popover > .arrow {
221
- left: 25px;
221
+ left: 25px;
222
222
  }
223
223
  .clockpicker-align-top.popover > .arrow {
224
- top: 17px;
224
+ top: 17px;
225
225
  }
226
226
  .clockpicker-align-right.popover > .arrow {
227
- left: auto;
228
- right: 25px;
227
+ left: auto;
228
+ right: 25px;
229
229
  }
230
230
  .clockpicker-align-bottom.popover > .arrow {
231
- top: auto;
232
- bottom: 6px;
231
+ top: auto;
232
+ bottom: 6px;
233
233
  }
234
234
  .clockpicker-popover .popover-title {
235
- background-color: #fff;
236
- color: #999;
237
- font-size: 24px;
238
- font-weight: bold;
239
- line-height: 30px;
240
- text-align: center;
235
+ background-color: #fff;
236
+ color: #999;
237
+ font-size: 24px;
238
+ font-weight: bold;
239
+ line-height: 30px;
240
+ text-align: center;
241
241
  }
242
242
  .clockpicker-popover .popover-title span {
243
- cursor: pointer;
243
+ cursor: pointer;
244
244
  }
245
245
  .clockpicker-popover .popover-content {
246
- background-color: #f8f8f8;
247
- padding: 12px;
246
+ background-color: #f8f8f8;
247
+ padding: 12px;
248
248
  }
249
249
  .popover-content:last-child {
250
- border-bottom-left-radius: 5px;
251
- border-bottom-right-radius: 5px;
250
+ border-bottom-left-radius: 5px;
251
+ border-bottom-right-radius: 5px;
252
252
  }
253
253
  .clockpicker-plate {
254
- background-color: #fff;
255
- border: 1px solid #ccc;
256
- border-radius: 50%;
257
- width: 200px;
258
- height: 200px;
259
- overflow: visible;
260
- position: relative;
261
- /* Disable text selection highlighting. Thanks to Hermanya */
262
- -webkit-touch-callout: none;
263
- -webkit-user-select: none;
264
- -khtml-user-select: none;
265
- -moz-user-select: none;
266
- -ms-user-select: none;
267
- user-select: none;
254
+ background-color: #fff;
255
+ border: 1px solid #ccc;
256
+ border-radius: 50%;
257
+ width: 200px;
258
+ height: 200px;
259
+ overflow: visible;
260
+ position: relative;
261
+ /* Disable text selection highlighting. Thanks to Hermanya */
262
+ -webkit-touch-callout: none;
263
+ -webkit-user-select: none;
264
+ -khtml-user-select: none;
265
+ -moz-user-select: none;
266
+ -ms-user-select: none;
267
+ user-select: none;
268
268
  }
269
269
  .clockpicker-canvas,
270
270
  .clockpicker-dial {
271
- width: 200px;
272
- height: 200px;
273
- position: absolute;
274
- left: -1px;
275
- top: -1px;
271
+ width: 200px;
272
+ height: 200px;
273
+ position: absolute;
274
+ left: -1px;
275
+ top: -1px;
276
276
  }
277
277
  .clockpicker-minutes {
278
- visibility: hidden;
278
+ visibility: hidden;
279
279
  }
280
280
  .clockpicker-tick {
281
- border-radius: 50%;
282
- color: #666;
283
- line-height: 26px;
284
- text-align: center;
285
- width: 26px;
286
- height: 26px;
287
- position: absolute;
288
- cursor: pointer;
281
+ border-radius: 50%;
282
+ color: #666;
283
+ line-height: 26px;
284
+ text-align: center;
285
+ width: 26px;
286
+ height: 26px;
287
+ position: absolute;
288
+ cursor: pointer;
289
289
  }
290
290
  .clockpicker-tick.active,
291
291
  .clockpicker-tick:hover {
292
- background-color: rgb(192, 229, 247);
293
- background-color: rgba(0, 149, 221, .25);
292
+ background-color: rgb(192, 229, 247);
293
+ background-color: rgba(0, 149, 221, .25);
294
294
  }
295
295
  .clockpicker-button {
296
- background-image: none;
297
- background-color: #fff;
298
- border-width: 1px 0 0;
299
- border-top-left-radius: 0;
300
- border-top-right-radius: 0;
301
- margin: 0;
302
- padding: 10px 0;
296
+ background-image: none;
297
+ background-color: #fff;
298
+ border-width: 1px 0 0;
299
+ border-top-left-radius: 0;
300
+ border-top-right-radius: 0;
301
+ margin: 0;
302
+ padding: 10px 0;
303
303
  }
304
304
  .clockpicker-button:hover {
305
- background-image: none;
306
- background-color: #ebebeb;
305
+ background-image: none;
306
+ background-color: #ebebeb;
307
307
  }
308
308
  .clockpicker-button:focus {
309
- outline: none!important;
309
+ outline: none!important;
310
310
  }
311
311
  .clockpicker-dial {
312
- -webkit-transition: -webkit-transform 350ms, opacity 350ms;
313
- -moz-transition: -moz-transform 350ms, opacity 350ms;
314
- -ms-transition: -ms-transform 350ms, opacity 350ms;
315
- -o-transition: -o-transform 350ms, opacity 350ms;
316
- transition: transform 350ms, opacity 350ms;
312
+ -webkit-transition: -webkit-transform 350ms, opacity 350ms;
313
+ -moz-transition: -moz-transform 350ms, opacity 350ms;
314
+ -ms-transition: -ms-transform 350ms, opacity 350ms;
315
+ -o-transition: -o-transform 350ms, opacity 350ms;
316
+ transition: transform 350ms, opacity 350ms;
317
317
  }
318
318
  .clockpicker-dial-out {
319
- opacity: 0;
319
+ opacity: 0;
320
320
  }
321
321
  .clockpicker-hours.clockpicker-dial-out {
322
- -webkit-transform: scale(1.2, 1.2);
323
- -moz-transform: scale(1.2, 1.2);
324
- -ms-transform: scale(1.2, 1.2);
325
- -o-transform: scale(1.2, 1.2);
326
- transform: scale(1.2, 1.2);
322
+ -webkit-transform: scale(1.2, 1.2);
323
+ -moz-transform: scale(1.2, 1.2);
324
+ -ms-transform: scale(1.2, 1.2);
325
+ -o-transform: scale(1.2, 1.2);
326
+ transform: scale(1.2, 1.2);
327
327
  }
328
328
  .clockpicker-minutes.clockpicker-dial-out {
329
- -webkit-transform: scale(.8, .8);
330
- -moz-transform: scale(.8, .8);
331
- -ms-transform: scale(.8, .8);
332
- -o-transform: scale(.8, .8);
333
- transform: scale(.8, .8);
329
+ -webkit-transform: scale(.8, .8);
330
+ -moz-transform: scale(.8, .8);
331
+ -ms-transform: scale(.8, .8);
332
+ -o-transform: scale(.8, .8);
333
+ transform: scale(.8, .8);
334
334
  }
335
335
  .clockpicker-canvas {
336
- -webkit-transition: opacity 175ms;
337
- -moz-transition: opacity 175ms;
338
- -ms-transition: opacity 175ms;
339
- -o-transition: opacity 175ms;
340
- transition: opacity 175ms;
336
+ -webkit-transition: opacity 175ms;
337
+ -moz-transition: opacity 175ms;
338
+ -ms-transition: opacity 175ms;
339
+ -o-transition: opacity 175ms;
340
+ transition: opacity 175ms;
341
341
  }
342
342
  .clockpicker-canvas-out {
343
- opacity: 0.25;
343
+ opacity: 0.25;
344
344
  }
345
345
  .clockpicker-canvas-bearing,
346
346
  .clockpicker-canvas-fg {
347
- stroke: none;
348
- fill: rgb(0, 149, 221);
347
+ stroke: none;
348
+ fill: rgb(0, 149, 221);
349
349
  }
350
350
  .clockpicker-canvas-bg {
351
- stroke: none;
352
- fill: rgb(192, 229, 247);
351
+ stroke: none;
352
+ fill: rgb(192, 229, 247);
353
353
  }
354
354
  .clockpicker-canvas-bg-trans {
355
- fill: rgba(0, 149, 221, .25);
355
+ fill: rgba(0, 149, 221, .25);
356
356
  }
357
357
  .clockpicker-canvas line {
358
- stroke: rgb(0, 149, 221);
359
- stroke-width: 1;
360
- stroke-linecap: round;
361
- /*shape-rendering: crispEdges;*/
358
+ stroke: rgb(0, 149, 221);
359
+ stroke-width: 1;
360
+ stroke-linecap: round;
361
+ /*shape-rendering: crispEdges;*/
362
362
  }
363
363
  .clockpicker-button.am-button {
364
- margin: 1px;
365
- padding: 5px;
366
- border: 1px solid rgba(0, 0, 0, .2);
367
- border-radius: 4px;
364
+ margin: 1px;
365
+ padding: 5px;
366
+ border: 1px solid rgba(0, 0, 0, .2);
367
+ border-radius: 4px;
368
368
 
369
369
  }
370
370
  .clockpicker-button.pm-button {
371
- margin: 1px 1px 1px 136px;
372
- padding: 5px;
373
- border: 1px solid rgba(0, 0, 0, .2);
374
- border-radius: 4px;
371
+ margin: 1px 1px 1px 136px;
372
+ padding: 5px;
373
+ border: 1px solid rgba(0, 0, 0, .2);
374
+ border-radius: 4px;
375
375
  }
@@ -79,3 +79,52 @@
79
79
  border-bottom-right-radius: 0 !important;
80
80
  border-top-right-radius: 0 !important;
81
81
  }
82
+
83
+ .button.dropdown.actions {
84
+ @extend %fa-icon;
85
+ @extend .fas;
86
+ background-color: $white;
87
+ color: $monsoon;
88
+ font-size: 1.2rem;
89
+ font-weight: 600;
90
+ margin: 0 .3rem 0 0;
91
+ padding: 0.2rem .9rem;
92
+ border: solid 1px $light-grey;
93
+ vertical-align: middle;
94
+
95
+ &:hover {
96
+ background-color: darken(#efefef, 10);
97
+ color: darken(#555, 10);
98
+ }
99
+
100
+ &:before {
101
+ content: fa-content($fa-var-ellipsis-h);
102
+ }
103
+
104
+ &:after {
105
+ border: 0;
106
+ position: relative;
107
+ }
108
+ }
109
+
110
+ .f-dropdown {
111
+ /* separator */
112
+ li.separator {
113
+ border-top: 1px solid #ccc;
114
+ margin: .3rem 0 .1rem 0;
115
+ padding: 0;
116
+ }
117
+ }
118
+
119
+ .f-dropdown.f-dropdown-no-arrow {
120
+ border-radius: 3px;
121
+ box-shadow: 0 3px 12px rgba(0,0,0,.05);
122
+ margin-left: 23px;
123
+ margin-top: 0;
124
+ max-width: 150px;
125
+
126
+ &:before, &:after {
127
+ border: 0;
128
+ position: relative;
129
+ }
130
+ }