fomantic-ui-sass 2.8.6 → 2.8.8

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +6 -0
  4. data/app/assets/fonts/semantic-ui/brand-icons.eot +0 -0
  5. data/app/assets/fonts/semantic-ui/brand-icons.svg +6 -41
  6. data/app/assets/fonts/semantic-ui/brand-icons.ttf +0 -0
  7. data/app/assets/fonts/semantic-ui/brand-icons.woff +0 -0
  8. data/app/assets/fonts/semantic-ui/brand-icons.woff2 +0 -0
  9. data/app/assets/fonts/semantic-ui/icons.eot +0 -0
  10. data/app/assets/fonts/semantic-ui/icons.svg +7 -245
  11. data/app/assets/fonts/semantic-ui/icons.ttf +0 -0
  12. data/app/assets/fonts/semantic-ui/icons.woff +0 -0
  13. data/app/assets/fonts/semantic-ui/icons.woff2 +0 -0
  14. data/app/assets/fonts/semantic-ui/outline-icons.eot +0 -0
  15. data/app/assets/fonts/semantic-ui/outline-icons.svg +2 -2
  16. data/app/assets/fonts/semantic-ui/outline-icons.ttf +0 -0
  17. data/app/assets/fonts/semantic-ui/outline-icons.woff +0 -0
  18. data/app/assets/fonts/semantic-ui/outline-icons.woff2 +0 -0
  19. data/app/assets/javascripts/semantic-ui/calendar.js +153 -29
  20. data/app/assets/javascripts/semantic-ui/checkbox.js +1 -1
  21. data/app/assets/javascripts/semantic-ui/dimmer.js +11 -14
  22. data/app/assets/javascripts/semantic-ui/dropdown.js +240 -112
  23. data/app/assets/javascripts/semantic-ui/form.js +131 -67
  24. data/app/assets/javascripts/semantic-ui/modal.js +259 -16
  25. data/app/assets/javascripts/semantic-ui/nag.js +130 -64
  26. data/app/assets/javascripts/semantic-ui/popup.js +4 -4
  27. data/app/assets/javascripts/semantic-ui/progress.js +25 -31
  28. data/app/assets/javascripts/semantic-ui/search.js +15 -12
  29. data/app/assets/javascripts/semantic-ui/slider.js +57 -33
  30. data/app/assets/javascripts/semantic-ui/toast.js +26 -6
  31. data/app/assets/stylesheets/semantic-ui/collections/_breadcrumb.scss +1 -1
  32. data/app/assets/stylesheets/semantic-ui/collections/_form.scss +69 -74
  33. data/app/assets/stylesheets/semantic-ui/collections/_grid.scss +14 -7
  34. data/app/assets/stylesheets/semantic-ui/collections/_menu.scss +14 -11
  35. data/app/assets/stylesheets/semantic-ui/collections/_message.scss +52 -5
  36. data/app/assets/stylesheets/semantic-ui/collections/_table.scss +9 -5
  37. data/app/assets/stylesheets/semantic-ui/elements/_all.scss +1 -0
  38. data/app/assets/stylesheets/semantic-ui/elements/_button.scss +29 -2
  39. data/app/assets/stylesheets/semantic-ui/elements/_container.scss +3 -4
  40. data/app/assets/stylesheets/semantic-ui/elements/_divider.scss +1 -1
  41. data/app/assets/stylesheets/semantic-ui/elements/_flag.scss +1 -1
  42. data/app/assets/stylesheets/semantic-ui/elements/_header.scss +14 -9
  43. data/app/assets/stylesheets/semantic-ui/elements/_icon.scss +244 -66
  44. data/app/assets/stylesheets/semantic-ui/elements/_image.scss +34 -5
  45. data/app/assets/stylesheets/semantic-ui/elements/_input.scss +34 -33
  46. data/app/assets/stylesheets/semantic-ui/elements/_label.scss +1 -1
  47. data/app/assets/stylesheets/semantic-ui/elements/_list.scss +13 -13
  48. data/app/assets/stylesheets/semantic-ui/elements/_loader.scss +41 -37
  49. data/app/assets/stylesheets/semantic-ui/elements/_placeholder.scss +1 -1
  50. data/app/assets/stylesheets/semantic-ui/elements/_rail.scss +1 -1
  51. data/app/assets/stylesheets/semantic-ui/elements/_reveal.scss +1 -1
  52. data/app/assets/stylesheets/semantic-ui/elements/_segment.scss +40 -2
  53. data/app/assets/stylesheets/semantic-ui/elements/_step.scss +10 -10
  54. data/app/assets/stylesheets/semantic-ui/elements/_text.scss +13 -1
  55. data/app/assets/stylesheets/semantic-ui/globals/_reset.scss +2 -3
  56. data/app/assets/stylesheets/semantic-ui/globals/_site.scss +2 -2
  57. data/app/assets/stylesheets/semantic-ui/modules/_accordion.scss +1 -1
  58. data/app/assets/stylesheets/semantic-ui/modules/_calendar.scss +18 -11
  59. data/app/assets/stylesheets/semantic-ui/modules/_checkbox.scss +46 -4
  60. data/app/assets/stylesheets/semantic-ui/modules/_dimmer.scss +15 -15
  61. data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +180 -28
  62. data/app/assets/stylesheets/semantic-ui/modules/_embed.scss +7 -7
  63. data/app/assets/stylesheets/semantic-ui/modules/_modal.scss +22 -11
  64. data/app/assets/stylesheets/semantic-ui/modules/_nag.scss +168 -16
  65. data/app/assets/stylesheets/semantic-ui/modules/_popup.scss +6 -2
  66. data/app/assets/stylesheets/semantic-ui/modules/_progress.scss +18 -10
  67. data/app/assets/stylesheets/semantic-ui/modules/_rating.scss +18 -33
  68. data/app/assets/stylesheets/semantic-ui/modules/_search.scss +1 -1
  69. data/app/assets/stylesheets/semantic-ui/modules/_shape.scss +1 -1
  70. data/app/assets/stylesheets/semantic-ui/modules/_sidebar.scss +3 -2
  71. data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +11 -0
  72. data/app/assets/stylesheets/semantic-ui/modules/_sticky.scss +1 -2
  73. data/app/assets/stylesheets/semantic-ui/modules/_tab.scss +1 -1
  74. data/app/assets/stylesheets/semantic-ui/modules/_toast.scss +103 -16
  75. data/app/assets/stylesheets/semantic-ui/modules/_transition.scss +1 -1
  76. data/app/assets/stylesheets/semantic-ui/views/_ad.scss +1 -1
  77. data/app/assets/stylesheets/semantic-ui/views/_card.scss +75 -3
  78. data/app/assets/stylesheets/semantic-ui/views/_comment.scss +1 -1
  79. data/app/assets/stylesheets/semantic-ui/views/_feed.scss +6 -6
  80. data/app/assets/stylesheets/semantic-ui/views/_item.scss +1 -1
  81. data/app/assets/stylesheets/semantic-ui/views/_statistic.scss +5 -5
  82. data/lib/fomantic/ui/sass/version.rb +2 -2
  83. metadata +3 -3
@@ -42,7 +42,8 @@ $.fn.calendar = function(parameters) {
42
42
  '15': {'row': 2, 'column': 2 },
43
43
  '20': {'row': 3, 'column': 1 },
44
44
  '30': {'row': 2, 'column': 1 }
45
- }
45
+ },
46
+ numberText = ['','one','two','three','four','five','six','seven','eight']
46
47
  ;
47
48
 
48
49
  $allModules
@@ -74,7 +75,10 @@ $.fn.calendar = function(parameters) {
74
75
 
75
76
  isTouch,
76
77
  isTouchDown = false,
78
+ isInverted = $module.hasClass(className.inverted),
77
79
  focusDateUsedForRange = false,
80
+ selectionComplete = false,
81
+ classObserver,
78
82
  module
79
83
  ;
80
84
 
@@ -92,6 +96,7 @@ $.fn.calendar = function(parameters) {
92
96
  module.create.calendar();
93
97
 
94
98
  module.bind.events();
99
+ module.observeChanges();
95
100
  module.instantiate();
96
101
  },
97
102
 
@@ -105,6 +110,7 @@ $.fn.calendar = function(parameters) {
105
110
  module.verbose('Destroying previous calendar for', element);
106
111
  $module.removeData(moduleNamespace);
107
112
  module.unbind.events();
113
+ module.disconnect.classObserver();
108
114
  },
109
115
 
110
116
  setup: {
@@ -140,12 +146,19 @@ $.fn.calendar = function(parameters) {
140
146
  $container = $('<div/>').addClass(className.popup)[domPositionFunction]($activatorParent);
141
147
  }
142
148
  $container.addClass(className.calendar);
143
- var onVisible = settings.onVisible;
149
+ if(isInverted){
150
+ $container.addClass(className.inverted);
151
+ }
152
+ var onVisible = function () {
153
+ module.refreshTooltips();
154
+ return settings.onVisible.apply($container, arguments);
155
+ };
144
156
  var onHidden = settings.onHidden;
145
157
  if (!$input.length) {
146
158
  //no input, $container has to handle focus/blur
147
159
  $container.attr('tabindex', '0');
148
160
  onVisible = function () {
161
+ module.refreshTooltips();
149
162
  module.focus();
150
163
  return settings.onVisible.apply($container, arguments);
151
164
  };
@@ -157,7 +170,7 @@ $.fn.calendar = function(parameters) {
157
170
  var onShow = function () {
158
171
  //reset the focus date onShow
159
172
  module.set.focusDate(module.get.date());
160
- module.set.mode(settings.startMode);
173
+ module.set.mode(module.get.validatedMode(settings.startMode));
161
174
  return settings.onShow.apply($container, arguments);
162
175
  };
163
176
  var on = module.setting('on');
@@ -177,6 +190,7 @@ $.fn.calendar = function(parameters) {
177
190
  if ($activator.length && !settings.inline) {
178
191
  return;
179
192
  }
193
+ settings.inline = true;
180
194
  $container = $('<div/>').addClass(className.calendar).appendTo($module);
181
195
  if (!$input.length) {
182
196
  $container.attr('tabindex', '0');
@@ -186,6 +200,7 @@ $.fn.calendar = function(parameters) {
186
200
  if (settings.touchReadonly && $input.length && isTouch) {
187
201
  $input.prop('readonly', true);
188
202
  }
203
+ module.check.disabled();
189
204
  },
190
205
  date: function () {
191
206
  var date;
@@ -197,6 +212,21 @@ $.fn.calendar = function(parameters) {
197
212
  date = parser.date($input.val(), settings);
198
213
  }
199
214
  module.set.date(date, settings.formatInput, false);
215
+ module.set.mode(module.get.mode(), false);
216
+ }
217
+ },
218
+
219
+ trigger: {
220
+ change: function() {
221
+ var
222
+ inputElement = $input[0]
223
+ ;
224
+ if(inputElement) {
225
+ var events = document.createEvent('HTMLEvents');
226
+ module.verbose('Triggering native change event');
227
+ events.initEvent('change', true, false);
228
+ inputElement.dispatchEvent(events);
229
+ }
200
230
  }
201
231
  },
202
232
 
@@ -278,7 +308,10 @@ $.fn.calendar = function(parameters) {
278
308
  if (isDay && settings.showWeekNumbers){
279
309
  tempMode += ' andweek';
280
310
  }
281
- var table = $('<table/>').addClass(className.table).addClass(tempMode).appendTo(container);
311
+ var table = $('<table/>').addClass(className.table).addClass(tempMode).addClass(numberText[columns] + ' column').appendTo(container);
312
+ if(isInverted){
313
+ table.addClass(className.inverted);
314
+ }
282
315
  var textColumns = columns;
283
316
  //no header for time-only mode
284
317
  if (!isTimeOnly) {
@@ -344,27 +377,40 @@ $.fn.calendar = function(parameters) {
344
377
  cell.data(metadata.date, cellDate);
345
378
  var adjacent = isDay && cellDate.getMonth() !== ((month + 12) % 12);
346
379
  var disabled = (!settings.selectAdjacentDays && adjacent) || !module.helper.isDateInRange(cellDate, mode) || settings.isDisabled(cellDate, mode) || module.helper.isDisabled(cellDate, mode) || !module.helper.isEnabled(cellDate, mode);
380
+ var eventDate;
347
381
  if (disabled) {
348
382
  var disabledDate = module.helper.findDayAsObject(cellDate, mode, settings.disabledDates);
349
383
  if (disabledDate !== null && disabledDate[metadata.message]) {
350
384
  cell.attr("data-tooltip", disabledDate[metadata.message]);
351
- cell.attr("data-position", tooltipPosition);
385
+ cell.attr("data-position", disabledDate[metadata.position] || tooltipPosition);
386
+ if(disabledDate[metadata.inverted] || (isInverted && disabledDate[metadata.inverted] === undefined)) {
387
+ cell.attr("data-inverted", '');
388
+ }
389
+ if(disabledDate[metadata.variation]) {
390
+ cell.attr("data-variation", disabledDate[metadata.variation]);
391
+ }
352
392
  }
353
393
  } else {
354
- var eventDate = module.helper.findDayAsObject(cellDate, mode, settings.eventDates);
394
+ eventDate = module.helper.findDayAsObject(cellDate, mode, settings.eventDates);
355
395
  if (eventDate !== null) {
356
396
  cell.addClass(eventDate[metadata.class] || settings.eventClass);
357
397
  if (eventDate[metadata.message]) {
358
398
  cell.attr("data-tooltip", eventDate[metadata.message]);
359
- cell.attr("data-position", tooltipPosition);
399
+ cell.attr("data-position", eventDate[metadata.position] || tooltipPosition);
400
+ if(eventDate[metadata.inverted] || (isInverted && eventDate[metadata.inverted] === undefined)) {
401
+ cell.attr("data-inverted", '');
402
+ }
403
+ if(eventDate[metadata.variation]) {
404
+ cell.attr("data-variation", eventDate[metadata.variation]);
405
+ }
360
406
  }
361
407
  }
362
408
  }
363
409
  var active = module.helper.dateEqual(cellDate, date, mode);
364
410
  var isToday = module.helper.dateEqual(cellDate, today, mode);
365
- cell.toggleClass(className.adjacentCell, adjacent);
411
+ cell.toggleClass(className.adjacentCell, adjacent && !eventDate);
366
412
  cell.toggleClass(className.disabledCell, disabled);
367
- cell.toggleClass(className.activeCell, active && !adjacent);
413
+ cell.toggleClass(className.activeCell, active && !(adjacent && disabled));
368
414
  if (!isHour && !isMinute) {
369
415
  cell.toggleClass(className.todayCell, !adjacent && isToday);
370
416
  }
@@ -395,6 +441,10 @@ $.fn.calendar = function(parameters) {
395
441
  }
396
442
 
397
443
  module.update.focus(false, table);
444
+
445
+ if(settings.inline){
446
+ module.refreshTooltips();
447
+ }
398
448
  }
399
449
  }
400
450
  },
@@ -436,6 +486,20 @@ $.fn.calendar = function(parameters) {
436
486
  module.create.calendar();
437
487
  },
438
488
 
489
+ refreshTooltips: function() {
490
+ var winWidth = $(window).width();
491
+ $container.find('td[data-position]').each(function () {
492
+ var cell = $(this);
493
+ var tooltipWidth = window.getComputedStyle(cell[0], ':after').width.replace(/[^0-9\.]/g,'');
494
+ var tooltipPosition = cell.attr('data-position');
495
+ // use a fallback width of 250 (calendar width) for IE/Edge (which return "auto")
496
+ var calcPosition = (winWidth - cell.width() - (parseInt(tooltipWidth,10) || 250)) > cell.offset().left ? 'right' : 'left';
497
+ if(tooltipPosition.indexOf(calcPosition) === -1) {
498
+ cell.attr('data-position',tooltipPosition.replace(/(left|right)/,calcPosition));
499
+ }
500
+ });
501
+ },
502
+
439
503
  bind: {
440
504
  events: function () {
441
505
  module.debug('Binding events');
@@ -576,6 +640,57 @@ $.fn.calendar = function(parameters) {
576
640
  var text = formatter.datetime(date, settings);
577
641
  $input.val(text);
578
642
  }
643
+ if(selectionComplete){
644
+ module.trigger.change();
645
+ selectionComplete = false;
646
+ }
647
+ },
648
+ class: {
649
+ mutation: function(mutations) {
650
+ mutations.forEach(function(mutation) {
651
+ if(mutation.attributeName === "class") {
652
+ module.check.disabled();
653
+ }
654
+ });
655
+ }
656
+ }
657
+ },
658
+
659
+ observeChanges: function() {
660
+ if('MutationObserver' in window) {
661
+ classObserver = new MutationObserver(module.event.class.mutation);
662
+ module.debug('Setting up mutation observer', classObserver);
663
+ module.observe.class();
664
+ }
665
+ },
666
+
667
+ disconnect: {
668
+ classObserver: function() {
669
+ if($input.length && classObserver) {
670
+ classObserver.disconnect();
671
+ }
672
+ }
673
+ },
674
+
675
+ observe: {
676
+ class: function() {
677
+ if($input.length && classObserver) {
678
+ classObserver.observe($module[0], {
679
+ attributes : true
680
+ });
681
+ }
682
+ }
683
+ },
684
+
685
+ is: {
686
+ disabled: function() {
687
+ return $module.hasClass(className.disabled);
688
+ }
689
+ },
690
+
691
+ check: {
692
+ disabled: function(){
693
+ $input.attr('tabindex',module.is.disabled() ? -1 : 0);
579
694
  }
580
695
  },
581
696
 
@@ -622,6 +737,9 @@ $.fn.calendar = function(parameters) {
622
737
  mode: function () {
623
738
  //only returns valid modes for the current settings
624
739
  var mode = $module.data(metadata.mode) || settings.startMode;
740
+ return module.get.validatedMode(mode);
741
+ },
742
+ validatedMode: function(mode){
625
743
  var validModes = module.get.validModes();
626
744
  if ($.inArray(mode, validModes) >= 0) {
627
745
  return mode;
@@ -739,7 +857,7 @@ $.fn.calendar = function(parameters) {
739
857
  module.set.monthOffset(monthOffset, false);
740
858
  }
741
859
  }
742
- var changed = module.set.dataKeyValue(metadata.focusDate, date, refreshCalendar);
860
+ var changed = module.set.dataKeyValue(metadata.focusDate, date, !!date && refreshCalendar);
743
861
  updateFocus = (updateFocus !== false && changed && refreshCalendar === false) || focusDateUsedForRange != updateRange;
744
862
  focusDateUsedForRange = updateRange;
745
863
  if (updateFocus) {
@@ -798,15 +916,18 @@ $.fn.calendar = function(parameters) {
798
916
  (settings.type === 'year' && mode === 'year');
799
917
  if (complete) {
800
918
  var canceled = module.set.date(date) === false;
801
- if (!canceled && settings.closable) {
802
- module.popup('hide');
803
- //if this is a range calendar, focus the container or input. This will open the popup from its event listeners.
804
- var endModule = module.get.calendarModule(settings.endCalendar);
805
- if (endModule) {
806
- if (endModule.setting('on') !== 'focus') {
807
- endModule.popup('show');
919
+ if (!canceled) {
920
+ selectionComplete = true;
921
+ if(settings.closable) {
922
+ module.popup('hide');
923
+ //if this is a range calendar, focus the container or input. This will open the popup from its event listeners.
924
+ var endModule = module.get.calendarModule(settings.endCalendar);
925
+ if (endModule) {
926
+ if (endModule.setting('on') !== 'focus') {
927
+ endModule.popup('show');
928
+ }
929
+ endModule.focus();
808
930
  }
809
- endModule.focus();
810
931
  }
811
932
  }
812
933
  } else {
@@ -851,7 +972,7 @@ $.fn.calendar = function(parameters) {
851
972
 
852
973
  helper: {
853
974
  isDisabled: function(date, mode) {
854
- return (mode === 'day' || mode === 'month' || mode === 'year') && ((settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
975
+ return (mode === 'day' || mode === 'month' || mode === 'year') && ((mode === 'day' && settings.disabledDaysOfWeek.indexOf(date.getDay()) !== -1) || settings.disabledDates.some(function(d){
855
976
  if(typeof d === 'string') {
856
977
  d = module.helper.sanitiseDate(d);
857
978
  }
@@ -953,14 +1074,11 @@ $.fn.calendar = function(parameters) {
953
1074
  return null;
954
1075
  },
955
1076
  sanitiseDate: function (date) {
956
- if (!date) {
957
- return undefined;
958
- }
959
1077
  if (!(date instanceof Date)) {
960
1078
  date = parser.date('' + date, settings);
961
1079
  }
962
- if (!date || date === null || isNaN(date.getTime())) {
963
- return undefined;
1080
+ if (!date || isNaN(date.getTime())) {
1081
+ return null;
964
1082
  }
965
1083
  return date;
966
1084
  },
@@ -1347,13 +1465,14 @@ $.fn.calendar.settings = {
1347
1465
  if (text.length === 0) {
1348
1466
  return null;
1349
1467
  }
1350
- if(text.match(/^[0-9]{4}[\/\-\.][0-9]{2}[\/\-\.][0-9]{2}$/)){
1351
- text += ' 00:00:00';
1468
+ if(text.match(/^[0-9]{4}[\/\-\.][0-9]{1,2}[\/\-\.][0-9]{1,2}$/)){
1469
+ text = text.replace(/[\/\-\.]/g,'/') + ' 00:00:00';
1352
1470
  }
1353
1471
  // Reverse date and month in some cases
1354
- text = settings.monthFirst || !text.match(/^[0-9]{2}[\/\-\.]/) ? text : text.replace(/[\/\-\.]/g,'/').replace(/([0-9]+)\/([0-9]+)/,'$2/$1');
1472
+ text = settings.monthFirst || !text.match(/^[0-9]{1,2}[\/\-\.]/) ? text : text.replace(/[\/\-\.]/g,'/').replace(/([0-9]+)\/([0-9]+)/,'$2/$1');
1355
1473
  var textDate = new Date(text);
1356
- if(!isNaN(textDate.getDate())) {
1474
+ var numberOnly = text.match(/^[0-9]+$/) !== null;
1475
+ if(!numberOnly && !isNaN(textDate.getDate())) {
1357
1476
  return textDate;
1358
1477
  }
1359
1478
  text = text.toLowerCase();
@@ -1610,6 +1729,7 @@ $.fn.calendar.settings = {
1610
1729
  grid: 'ui equal width grid',
1611
1730
  column: 'column',
1612
1731
  table: 'ui celled center aligned unstackable table',
1732
+ inverted: 'inverted',
1613
1733
  prev: 'prev link',
1614
1734
  next: 'next link',
1615
1735
  prevIcon: 'chevron left icon',
@@ -1623,7 +1743,8 @@ $.fn.calendar.settings = {
1623
1743
  rangeCell: 'range',
1624
1744
  focusCell: 'focus',
1625
1745
  todayCell: 'today',
1626
- today: 'today link'
1746
+ today: 'today link',
1747
+ disabled: 'disabled'
1627
1748
  },
1628
1749
 
1629
1750
  metadata: {
@@ -1638,6 +1759,9 @@ $.fn.calendar.settings = {
1638
1759
  monthOffset: 'monthOffset',
1639
1760
  message: 'message',
1640
1761
  class: 'class',
1762
+ inverted: 'inverted',
1763
+ variation: 'variation',
1764
+ position: 'position',
1641
1765
  month: 'month',
1642
1766
  year: 'year'
1643
1767
  },
@@ -556,10 +556,10 @@ $.fn.checkbox = function(parameters) {
556
556
  trigger: {
557
557
  change: function() {
558
558
  var
559
- events = document.createEvent('HTMLEvents'),
560
559
  inputElement = $input[0]
561
560
  ;
562
561
  if(inputElement) {
562
+ var events = document.createEvent('HTMLEvents');
563
563
  module.verbose('Triggering native change event');
564
564
  events.initEvent('change', true, false);
565
565
  inputElement.dispatchEvent(events);
@@ -155,7 +155,7 @@ $.fn.dimmer = function(parameters) {
155
155
 
156
156
  event: {
157
157
  click: function(event) {
158
- module.verbose('Determining if event occured on dimmer', event);
158
+ module.verbose('Determining if event occurred on dimmer', event);
159
159
  if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
160
160
  module.hide();
161
161
  event.stopImmediatePropagation();
@@ -255,7 +255,7 @@ $.fn.dimmer = function(parameters) {
255
255
  displayType : settings.useFlex
256
256
  ? 'flex'
257
257
  : 'block',
258
- animation : settings.transition + ' in',
258
+ animation : (settings.transition.showMethod || settings.transition) + ' in',
259
259
  queue : false,
260
260
  duration : module.get.duration(),
261
261
  useFailSafe : true,
@@ -302,7 +302,7 @@ $.fn.dimmer = function(parameters) {
302
302
  displayType : settings.useFlex
303
303
  ? 'flex'
304
304
  : 'block',
305
- animation : settings.transition + ' out',
305
+ animation : (settings.transition.hideMethod || settings.transition) + ' out',
306
306
  queue : false,
307
307
  duration : module.get.duration(),
308
308
  useFailSafe : true,
@@ -335,15 +335,12 @@ $.fn.dimmer = function(parameters) {
335
335
  return $dimmer;
336
336
  },
337
337
  duration: function() {
338
- if(typeof settings.duration == 'object') {
339
- if( module.is.active() ) {
340
- return settings.duration.hide;
341
- }
342
- else {
343
- return settings.duration.show;
344
- }
338
+ if( module.is.active() ) {
339
+ return settings.transition.hideDuration || settings.duration.hide || settings.duration;
340
+ }
341
+ else {
342
+ return settings.transition.showDuration || settings.duration.show || settings.duration;
345
343
  }
346
- return settings.duration;
347
344
  }
348
345
  },
349
346
 
@@ -408,11 +405,11 @@ $.fn.dimmer = function(parameters) {
408
405
  var
409
406
  color = $dimmer.css('background-color'),
410
407
  colorArray = color.split(','),
411
- isRGB = (colorArray && colorArray.length == 3),
412
- isRGBA = (colorArray && colorArray.length == 4)
408
+ isRGB = (colorArray && colorArray.length >= 3)
413
409
  ;
414
410
  opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;
415
- if(isRGB || isRGBA) {
411
+ if(isRGB) {
412
+ colorArray[2] = colorArray[2].replace(')','');
416
413
  colorArray[3] = opacity + ')';
417
414
  color = colorArray.join(',');
418
415
  }