fomantic-ui-sass 2.7.7 → 2.7.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/app/assets/javascripts/semantic-ui/dropdown.js +46 -19
- data/app/assets/javascripts/semantic-ui/form.js +27 -11
- data/app/assets/javascripts/semantic-ui/progress.js +4 -4
- data/app/assets/javascripts/semantic-ui/slider.js +54 -9
- data/app/assets/javascripts/semantic-ui/tab.js +28 -0
- data/app/assets/stylesheets/semantic-ui/elements/_label.scss +2 -1
- data/app/assets/stylesheets/semantic-ui/globals/_site.scss +1 -3
- data/app/assets/stylesheets/semantic-ui/modules/_dropdown.scss +7 -2
- data/app/assets/stylesheets/semantic-ui/modules/_slider.scss +25 -0
- data/lib/fomantic/ui/sass/version.rb +2 -2
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 68f4fb5f2151058c1a971ae1f707be5879690f68b48b96196df450d7a048fc69
         | 
| 4 | 
            +
              data.tar.gz: 865abc5072c35b24e65b796c4a60d98e367db11e8db7200a6254febba240e25a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c8021adb71f446efa3373c4aad4a6cb46f5e7fd19ae466c8f38cc364876e924e8a9a8a11d4c6dde9f6ef930c69bdc8d06a43720586624f0f041f5332c3c92b24
         | 
| 7 | 
            +
              data.tar.gz: 469d13b079a5a997bf7853713ee967f7bde5cebb3d16ff3a3b0a85bd810784fe57cec6651a2b0f284e7473ad7944688433a91f1aff60d06046845cd74d72a796
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| @@ -382,7 +382,7 @@ $.fn.dropdown = function(parameters) { | |
| 382 382 | 
             
                            .attr('class', $input.attr('class') )
         | 
| 383 383 | 
             
                            .addClass(className.selection)
         | 
| 384 384 | 
             
                            .addClass(className.dropdown)
         | 
| 385 | 
            -
                            .html( templates.dropdown(selectValues,settings.preserveHTML, settings.className) )
         | 
| 385 | 
            +
                            .html( templates.dropdown(selectValues, fields, settings.preserveHTML, settings.className) )
         | 
| 386 386 | 
             
                            .insertBefore($input)
         | 
| 387 387 | 
             
                          ;
         | 
| 388 388 | 
             
                          if($input.hasClass(className.multiple) && $input.prop('multiple') === false) {
         | 
| @@ -1296,7 +1296,7 @@ $.fn.dropdown = function(parameters) { | |
| 1296 1296 | 
             
                            isBubbledEvent = ($subMenu.find($target).length > 0)
         | 
| 1297 1297 | 
             
                          ;
         | 
| 1298 1298 | 
             
                          // prevents IE11 bug where menu receives focus even though `tabindex=-1`
         | 
| 1299 | 
            -
                          if ( | 
| 1299 | 
            +
                          if (document.activeElement.tagName.toLowerCase() !== 'input') {
         | 
| 1300 1300 | 
             
                            $(document.activeElement).blur();
         | 
| 1301 1301 | 
             
                          }
         | 
| 1302 1302 | 
             
                          if(!isBubbledEvent && (!hasSubMenu || settings.allowCategorySelection)) {
         | 
| @@ -1865,7 +1865,7 @@ $.fn.dropdown = function(parameters) { | |
| 1865 1865 | 
             
                        }
         | 
| 1866 1866 | 
             
                        return ( !module.has.selectInput() && module.is.multiple() )
         | 
| 1867 1867 | 
             
                          ? (typeof value == 'string') // delimited string
         | 
| 1868 | 
            -
                            ? value.split(settings.delimiter)
         | 
| 1868 | 
            +
                            ? module.escape.htmlEntities(value).split(settings.delimiter)
         | 
| 1869 1869 | 
             
                            : ''
         | 
| 1870 1870 | 
             
                          : value
         | 
| 1871 1871 | 
             
                        ;
         | 
| @@ -1942,7 +1942,8 @@ $.fn.dropdown = function(parameters) { | |
| 1942 1942 | 
             
                      },
         | 
| 1943 1943 | 
             
                      selectValues: function() {
         | 
| 1944 1944 | 
             
                        var
         | 
| 1945 | 
            -
                          select = {}
         | 
| 1945 | 
            +
                          select = {},
         | 
| 1946 | 
            +
                          oldGroup = []
         | 
| 1946 1947 | 
             
                        ;
         | 
| 1947 1948 | 
             
                        select.values = [];
         | 
| 1948 1949 | 
             
                        $module
         | 
| @@ -1954,12 +1955,21 @@ $.fn.dropdown = function(parameters) { | |
| 1954 1955 | 
             
                                disabled = $option.attr('disabled'),
         | 
| 1955 1956 | 
             
                                value    = ( $option.attr('value') !== undefined )
         | 
| 1956 1957 | 
             
                                  ? $option.attr('value')
         | 
| 1957 | 
            -
                                  : name
         | 
| 1958 | 
            +
                                  : name,
         | 
| 1959 | 
            +
                                group = $option.parent('optgroup')
         | 
| 1958 1960 | 
             
                              ;
         | 
| 1959 1961 | 
             
                              if(settings.placeholder === 'auto' && value === '') {
         | 
| 1960 1962 | 
             
                                select.placeholder = name;
         | 
| 1961 1963 | 
             
                              }
         | 
| 1962 1964 | 
             
                              else {
         | 
| 1965 | 
            +
                                if(group.length !== oldGroup.length || group[0] !== oldGroup[0]) {
         | 
| 1966 | 
            +
                                  select.values.push({
         | 
| 1967 | 
            +
                                    type: 'header',
         | 
| 1968 | 
            +
                                    divider: settings.headerDivider,
         | 
| 1969 | 
            +
                                    name: group.attr('label') || ''
         | 
| 1970 | 
            +
                                  });
         | 
| 1971 | 
            +
                                  oldGroup = group;
         | 
| 1972 | 
            +
                                }
         | 
| 1963 1973 | 
             
                                select.values.push({
         | 
| 1964 1974 | 
             
                                  name     : name,
         | 
| 1965 1975 | 
             
                                  value    : value,
         | 
| @@ -2428,6 +2438,9 @@ $.fn.dropdown = function(parameters) { | |
| 2428 2438 | 
             
                          ? forceScroll
         | 
| 2429 2439 | 
             
                          : false
         | 
| 2430 2440 | 
             
                        ;
         | 
| 2441 | 
            +
                        if(module.get.activeItem().length === 0){
         | 
| 2442 | 
            +
                          forceScroll = false;
         | 
| 2443 | 
            +
                        }
         | 
| 2431 2444 | 
             
                        if($item && $menu.length > 0 && hasActive) {
         | 
| 2432 2445 | 
             
                          itemOffset = $item.position().top;
         | 
| 2433 2446 |  | 
| @@ -3886,6 +3899,8 @@ $.fn.dropdown.settings = { | |
| 3886 3899 |  | 
| 3887 3900 | 
             
              glyphWidth             : 1.037,      // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width
         | 
| 3888 3901 |  | 
| 3902 | 
            +
              headerDivider          : true,       // whether option headers should have an additional divider line underneath when converted from <select> <optgroup>
         | 
| 3903 | 
            +
             | 
| 3889 3904 | 
             
              // label settings on multi-select
         | 
| 3890 3905 | 
             
              label: {
         | 
| 3891 3906 | 
             
                transition : 'scale',
         | 
| @@ -3961,8 +3976,10 @@ $.fn.dropdown.settings = { | |
| 3961 3976 | 
             
                type         : 'type',     // type of dropdown element
         | 
| 3962 3977 | 
             
                image        : 'image',    // optional image path
         | 
| 3963 3978 | 
             
                imageClass   : 'imageClass', // optional individual class for image
         | 
| 3964 | 
            -
                icon | 
| 3965 | 
            -
                iconClass | 
| 3979 | 
            +
                icon         : 'icon',     // optional icon name
         | 
| 3980 | 
            +
                iconClass    : 'iconClass', // optional individual class for icon (for example to use flag instead)
         | 
| 3981 | 
            +
                class        : 'class',    // optional individual class for item/header
         | 
| 3982 | 
            +
                divider      : 'divider'   // optional divider append for group headers
         | 
| 3966 3983 | 
             
              },
         | 
| 3967 3984 |  | 
| 3968 3985 | 
             
              keys : {
         | 
| @@ -4027,7 +4044,10 @@ $.fn.dropdown.settings = { | |
| 4027 4044 | 
             
                visible     : 'visible',
         | 
| 4028 4045 | 
             
                clearable   : 'clearable',
         | 
| 4029 4046 | 
             
                noselection : 'noselection',
         | 
| 4030 | 
            -
                delete      : 'delete'
         | 
| 4047 | 
            +
                delete      : 'delete',
         | 
| 4048 | 
            +
                header      : 'header',
         | 
| 4049 | 
            +
                divider     : 'divider',
         | 
| 4050 | 
            +
                groupIcon   : ''
         | 
| 4031 4051 | 
             
              }
         | 
| 4032 4052 |  | 
| 4033 4053 | 
             
            };
         | 
| @@ -4062,13 +4082,11 @@ $.fn.dropdown.settings.templates = { | |
| 4062 4082 | 
             
                return string;
         | 
| 4063 4083 | 
             
              },
         | 
| 4064 4084 | 
             
              // generates dropdown from select values
         | 
| 4065 | 
            -
              dropdown: function(select, preserveHTML, className) {
         | 
| 4085 | 
            +
              dropdown: function(select, fields, preserveHTML, className) {
         | 
| 4066 4086 | 
             
                var
         | 
| 4067 4087 | 
             
                  placeholder = select.placeholder || false,
         | 
| 4068 | 
            -
                  values      = select.values || [],
         | 
| 4069 4088 | 
             
                  html        = '',
         | 
| 4070 | 
            -
                  escape = $.fn.dropdown.settings.templates.escape | 
| 4071 | 
            -
                  deQuote = $.fn.dropdown.settings.templates.deQuote
         | 
| 4089 | 
            +
                  escape = $.fn.dropdown.settings.templates.escape
         | 
| 4072 4090 | 
             
                ;
         | 
| 4073 4091 | 
             
                html +=  '<i class="dropdown icon"></i>';
         | 
| 4074 4092 | 
             
                if(placeholder) {
         | 
| @@ -4078,9 +4096,7 @@ $.fn.dropdown.settings.templates = { | |
| 4078 4096 | 
             
                  html += '<div class="text"></div>';
         | 
| 4079 4097 | 
             
                }
         | 
| 4080 4098 | 
             
                html += '<div class="'+className.menu+'">';
         | 
| 4081 | 
            -
                $. | 
| 4082 | 
            -
                  html += '<div class="'+(option.disabled ? className.disabled+' ':'')+className.item+'" data-value="' + deQuote(option.value) + '">' + escape(option.name,preserveHTML) + '</div>';
         | 
| 4083 | 
            -
                });
         | 
| 4099 | 
            +
                html += $.fn.dropdown.settings.templates.menu(select, fields, preserveHTML,className);
         | 
| 4084 4100 | 
             
                html += '</div>';
         | 
| 4085 4101 | 
             
                return html;
         | 
| 4086 4102 | 
             
              },
         | 
| @@ -4109,7 +4125,7 @@ $.fn.dropdown.settings.templates = { | |
| 4109 4125 | 
             
                        ? className.disabled+' '
         | 
| 4110 4126 | 
             
                        : ''
         | 
| 4111 4127 | 
             
                    ;
         | 
| 4112 | 
            -
                    html += '<div class="'+ maybeDisabled + className.item+'" data-value="' + deQuote(option[fields.value]) + '"' + maybeText + '>';
         | 
| 4128 | 
            +
                    html += '<div class="'+ maybeDisabled + (option[fields.class] ? deQuote(option[fields.class]) : className.item)+'" data-value="' + deQuote(option[fields.value]) + '"' + maybeText + '>';
         | 
| 4113 4129 | 
             
                    if(option[fields.image]) {
         | 
| 4114 4130 | 
             
                      html += '<img class="'+(option[fields.imageClass] ? deQuote(option[fields.imageClass]) : className.image)+'" src="' + deQuote(option[fields.image]) + '">';
         | 
| 4115 4131 | 
             
                    }
         | 
| @@ -4119,9 +4135,20 @@ $.fn.dropdown.settings.templates = { | |
| 4119 4135 | 
             
                    html +=   escape(option[fields.name],preserveHTML);
         | 
| 4120 4136 | 
             
                    html += '</div>';
         | 
| 4121 4137 | 
             
                  } else if (itemType === 'header') {
         | 
| 4122 | 
            -
                     | 
| 4123 | 
            -
             | 
| 4124 | 
            -
                     | 
| 4138 | 
            +
                    var groupName = escape(option[fields.name],preserveHTML),
         | 
| 4139 | 
            +
                        groupIcon = option[fields.icon] ? deQuote(option[fields.icon]) : className.groupIcon
         | 
| 4140 | 
            +
                    ;
         | 
| 4141 | 
            +
                    if(groupName !== '' || groupIcon !== '') {
         | 
| 4142 | 
            +
                      html += '<div class="' + (option[fields.class] ? deQuote(option[fields.class]) : className.header) + '">';
         | 
| 4143 | 
            +
                      if (groupIcon !== '') {
         | 
| 4144 | 
            +
                        html += '<i class="' + groupIcon + ' ' + (option[fields.iconClass] ? deQuote(option[fields.iconClass]) : className.icon) + '"></i>';
         | 
| 4145 | 
            +
                      }
         | 
| 4146 | 
            +
                      html += groupName;
         | 
| 4147 | 
            +
                      html += '</div>';
         | 
| 4148 | 
            +
                    }
         | 
| 4149 | 
            +
                    if(option[fields.divider]){
         | 
| 4150 | 
            +
                      html += '<div class="'+className.divider+'"></div>';
         | 
| 4151 | 
            +
                    }
         | 
| 4125 4152 | 
             
                  }
         | 
| 4126 4153 | 
             
                });
         | 
| 4127 4154 | 
             
                return html;
         | 
| @@ -192,8 +192,8 @@ $.fn.form = function(parameters) { | |
| 192 192 | 
             
                          $calendar    = $field.closest(selector.uiCalendar),
         | 
| 193 193 | 
             
                          defaultValue = $field.data(metadata.defaultValue) || '',
         | 
| 194 194 | 
             
                          isCheckbox   = $element.is(selector.uiCheckbox),
         | 
| 195 | 
            -
                          isDropdown   = $element.is(selector.uiDropdown),
         | 
| 196 | 
            -
                          isCalendar   = ($calendar.length > 0),
         | 
| 195 | 
            +
                          isDropdown   = $element.is(selector.uiDropdown)  && module.can.useElement('dropdown'),
         | 
| 196 | 
            +
                          isCalendar   = ($calendar.length > 0  && module.can.useElement('calendar')),
         | 
| 197 197 | 
             
                          isErrored    = $fieldGroup.hasClass(className.error)
         | 
| 198 198 | 
             
                        ;
         | 
| 199 199 | 
             
                        if(isErrored) {
         | 
| @@ -228,8 +228,8 @@ $.fn.form = function(parameters) { | |
| 228 228 | 
             
                          $prompt      = $fieldGroup.find(selector.prompt),
         | 
| 229 229 | 
             
                          defaultValue = $field.data(metadata.defaultValue),
         | 
| 230 230 | 
             
                          isCheckbox   = $element.is(selector.uiCheckbox),
         | 
| 231 | 
            -
                          isDropdown   = $element.is(selector.uiDropdown),
         | 
| 232 | 
            -
                          isCalendar   = ($calendar.length > 0),
         | 
| 231 | 
            +
                          isDropdown   = $element.is(selector.uiDropdown)  && module.can.useElement('dropdown'),
         | 
| 232 | 
            +
                          isCalendar   = ($calendar.length > 0  && module.can.useElement('calendar')),
         | 
| 233 233 | 
             
                          isErrored    = $fieldGroup.hasClass(className.error)
         | 
| 234 234 | 
             
                        ;
         | 
| 235 235 | 
             
                        if(defaultValue === undefined) {
         | 
| @@ -678,7 +678,7 @@ $.fn.form = function(parameters) { | |
| 678 678 | 
             
                            isCheckbox   = $field.is(selector.checkbox),
         | 
| 679 679 | 
             
                            isRadio      = $field.is(selector.radio),
         | 
| 680 680 | 
             
                            isMultiple   = (name.indexOf('[]') !== -1),
         | 
| 681 | 
            -
                            isCalendar   = ($calendar.length > 0),
         | 
| 681 | 
            +
                            isCalendar   = ($calendar.length > 0  && module.can.useElement('calendar')),
         | 
| 682 682 | 
             
                            isChecked    = (isCheckbox)
         | 
| 683 683 | 
             
                              ? $field.is(':checked')
         | 
| 684 684 | 
             
                              : false
         | 
| @@ -795,6 +795,16 @@ $.fn.form = function(parameters) { | |
| 795 795 |  | 
| 796 796 | 
             
                    },
         | 
| 797 797 |  | 
| 798 | 
            +
                    can: {
         | 
| 799 | 
            +
                        useElement: function(element){
         | 
| 800 | 
            +
                           if ($.fn[element] !== undefined) {
         | 
| 801 | 
            +
                               return true;
         | 
| 802 | 
            +
                           }
         | 
| 803 | 
            +
                           module.error(error.noElement.replace('{element}',element));
         | 
| 804 | 
            +
                           return false;
         | 
| 805 | 
            +
                        }
         | 
| 806 | 
            +
                    },
         | 
| 807 | 
            +
             | 
| 798 808 | 
             
                    escape: {
         | 
| 799 809 | 
             
                      string: function(text) {
         | 
| 800 810 | 
             
                        text =  String(text);
         | 
| @@ -869,7 +879,7 @@ $.fn.form = function(parameters) { | |
| 869 879 | 
             
                            .html(errors[0])
         | 
| 870 880 | 
             
                          ;
         | 
| 871 881 | 
             
                          if(!promptExists) {
         | 
| 872 | 
            -
                            if(settings.transition &&  | 
| 882 | 
            +
                            if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) {
         | 
| 873 883 | 
             
                              module.verbose('Displaying error with css transition', settings.transition);
         | 
| 874 884 | 
             
                              $prompt.transition(settings.transition + ' in', settings.duration);
         | 
| 875 885 | 
             
                            }
         | 
| @@ -951,7 +961,7 @@ $.fn.form = function(parameters) { | |
| 951 961 | 
             
                        ;
         | 
| 952 962 | 
             
                        if(settings.inline && $prompt.is(':visible')) {
         | 
| 953 963 | 
             
                          module.verbose('Removing prompt for field', identifier);
         | 
| 954 | 
            -
                          if(settings.transition | 
| 964 | 
            +
                          if(settings.transition  && module.can.useElement('transition') && $module.transition('is supported')) {
         | 
| 955 965 | 
             
                            $prompt.transition(settings.transition + ' out', settings.duration, function() {
         | 
| 956 966 | 
             
                              $prompt.remove();
         | 
| 957 967 | 
             
                            });
         | 
| @@ -980,7 +990,7 @@ $.fn.form = function(parameters) { | |
| 980 990 | 
             
                            $el        = $(el),
         | 
| 981 991 | 
             
                            $parent    = $el.parent(),
         | 
| 982 992 | 
             
                            isCheckbox = ($el.filter(selector.checkbox).length > 0),
         | 
| 983 | 
            -
                            isDropdown = $parent.is(selector.uiDropdown),
         | 
| 993 | 
            +
                            isDropdown = $parent.is(selector.uiDropdown) && module.can.useElement('dropdown'),
         | 
| 984 994 | 
             
                            value      = (isCheckbox)
         | 
| 985 995 | 
             
                              ? $el.is(':checked')
         | 
| 986 996 | 
             
                              : $el.val()
         | 
| @@ -1013,10 +1023,12 @@ $.fn.form = function(parameters) { | |
| 1013 1023 | 
             
                          var
         | 
| 1014 1024 | 
             
                            $field      = module.get.field(key),
         | 
| 1015 1025 | 
             
                            $element    = $field.parent(),
         | 
| 1026 | 
            +
                            $calendar   = $field.closest(selector.uiCalendar),
         | 
| 1016 1027 | 
             
                            isMultiple  = Array.isArray(value),
         | 
| 1017 | 
            -
                            isCheckbox  = $element.is(selector.uiCheckbox),
         | 
| 1018 | 
            -
                            isDropdown  = $element.is(selector.uiDropdown),
         | 
| 1028 | 
            +
                            isCheckbox  = $element.is(selector.uiCheckbox)  && module.can.useElement('checkbox'),
         | 
| 1029 | 
            +
                            isDropdown  = $element.is(selector.uiDropdown) && module.can.useElement('dropdown'),
         | 
| 1019 1030 | 
             
                            isRadio     = ($field.is(selector.radio) && isCheckbox),
         | 
| 1031 | 
            +
                            isCalendar  = ($calendar.length > 0  && module.can.useElement('calendar')),
         | 
| 1020 1032 | 
             
                            fieldExists = ($field.length > 0),
         | 
| 1021 1033 | 
             
                            $multipleField
         | 
| 1022 1034 | 
             
                          ;
         | 
| @@ -1052,6 +1064,9 @@ $.fn.form = function(parameters) { | |
| 1052 1064 | 
             
                              module.verbose('Setting dropdown value', value, $element);
         | 
| 1053 1065 | 
             
                              $element.dropdown('set selected', value);
         | 
| 1054 1066 | 
             
                            }
         | 
| 1067 | 
            +
                            else if (isCalendar) {
         | 
| 1068 | 
            +
                              $calendar.calendar('set date',value);
         | 
| 1069 | 
            +
                            }
         | 
| 1055 1070 | 
             
                            else {
         | 
| 1056 1071 | 
             
                              module.verbose('Setting field value', value, $field);
         | 
| 1057 1072 | 
             
                              $field.val(value);
         | 
| @@ -1515,7 +1530,8 @@ $.fn.form.settings = { | |
| 1515 1530 | 
             
                identifier : 'You must specify a string identifier for each field',
         | 
| 1516 1531 | 
             
                method     : 'The method you called is not defined.',
         | 
| 1517 1532 | 
             
                noRule     : 'There is no rule matching the one you specified',
         | 
| 1518 | 
            -
                oldSyntax  : 'Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.'
         | 
| 1533 | 
            +
                oldSyntax  : 'Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.',
         | 
| 1534 | 
            +
                noElement  : 'This module requires ui {element}'
         | 
| 1519 1535 | 
             
              },
         | 
| 1520 1536 |  | 
| 1521 1537 | 
             
              templates: {
         | 
| @@ -468,7 +468,7 @@ $.fn.progress = function(parameters) { | |
| 468 468 | 
             
                              width: value + '%'
         | 
| 469 469 | 
             
                            });
         | 
| 470 470 | 
             
                          }
         | 
| 471 | 
            -
                          return  | 
| 471 | 
            +
                          return parseFloat(value);
         | 
| 472 472 | 
             
                        });
         | 
| 473 473 | 
             
                        values.forEach(function(_, index) {
         | 
| 474 474 | 
             
                          var $bar = $($bars[index]);
         | 
| @@ -523,15 +523,15 @@ $.fn.progress = function(parameters) { | |
| 523 523 | 
             
                              : undefined;
         | 
| 524 524 |  | 
| 525 525 | 
             
                          // round display percentage
         | 
| 526 | 
            -
                           | 
| 526 | 
            +
                          var roundedPercents = percents.map(function (percent) {
         | 
| 527 527 | 
             
                            return (autoPrecision > 0)
         | 
| 528 528 | 
             
                              ? Math.round(percent * (10 * autoPrecision)) / (10 * autoPrecision)
         | 
| 529 529 | 
             
                              : Math.round(percent)
         | 
| 530 530 | 
             
                              ;
         | 
| 531 531 | 
             
                          });
         | 
| 532 | 
            -
                          module.percent =  | 
| 532 | 
            +
                          module.percent = roundedPercents;
         | 
| 533 533 | 
             
                          if (!hasTotal) {
         | 
| 534 | 
            -
                            module.value =  | 
| 534 | 
            +
                            module.value = roundedPercents.map(function (percent) {
         | 
| 535 535 | 
             
                              return (autoPrecision > 0)
         | 
| 536 536 | 
             
                                ? Math.round((percent / 100) * module.total * (10 * autoPrecision)) / (10 * autoPrecision)
         | 
| 537 537 | 
             
                                : Math.round((percent / 100) * module.total * 10) / 10
         | 
| @@ -23,6 +23,7 @@ $.fn.slider = function(parameters) { | |
| 23 23 |  | 
| 24 24 | 
             
              var
         | 
| 25 25 | 
             
                $allModules    = $(this),
         | 
| 26 | 
            +
                $window        = $(window),
         | 
| 26 27 |  | 
| 27 28 | 
             
                moduleSelector = $allModules.selector || '',
         | 
| 28 29 |  | 
| @@ -86,6 +87,7 @@ $.fn.slider = function(parameters) { | |
| 86 87 | 
             
                    offset,
         | 
| 87 88 | 
             
                    precision,
         | 
| 88 89 | 
             
                    isTouch,
         | 
| 90 | 
            +
                    gapRatio = 1,
         | 
| 89 91 |  | 
| 90 92 | 
             
                    module
         | 
| 91 93 | 
             
                  ;
         | 
| @@ -210,7 +212,11 @@ $.fn.slider = function(parameters) { | |
| 210 212 | 
             
                          for(var i = 0, len = module.get.numLabels(); i <= len; i++) {
         | 
| 211 213 | 
             
                            var
         | 
| 212 214 | 
             
                              labelText = module.get.label(i),
         | 
| 213 | 
            -
                              $label = (labelText !== "")  | 
| 215 | 
            +
                              $label = (labelText !== "") 
         | 
| 216 | 
            +
                                ? !(i % module.get.gapRatio())
         | 
| 217 | 
            +
                                  ? $('<li class="label">' + labelText + '</li>') 
         | 
| 218 | 
            +
                                  : $('<li class="halftick label"></li>')
         | 
| 219 | 
            +
                                : null,
         | 
| 214 220 | 
             
                              ratio  = i / len
         | 
| 215 221 | 
             
                            ;
         | 
| 216 222 | 
             
                            if($label) {
         | 
| @@ -230,6 +236,9 @@ $.fn.slider = function(parameters) { | |
| 230 236 | 
             
                        if(module.is.touch()) {
         | 
| 231 237 | 
             
                          module.bind.touchEvents();
         | 
| 232 238 | 
             
                        }
         | 
| 239 | 
            +
                        if (settings.autoAdjustLabels) {
         | 
| 240 | 
            +
                          module.bind.windowEvents();
         | 
| 241 | 
            +
                        }
         | 
| 233 242 | 
             
                      },
         | 
| 234 243 | 
             
                      keyboardEvents: function() {
         | 
| 235 244 | 
             
                        module.verbose('Binding keyboard events');
         | 
| @@ -273,6 +282,9 @@ $.fn.slider = function(parameters) { | |
| 273 282 | 
             
                          $(document).on('mousemove' + eventNamespace, module.event.move);
         | 
| 274 283 | 
             
                          $(document).on('mouseup' + eventNamespace, module.event.up);
         | 
| 275 284 | 
             
                        }
         | 
| 285 | 
            +
                      },
         | 
| 286 | 
            +
                      windowEvents: function() {
         | 
| 287 | 
            +
                        $window.on('resize' + eventNamespace, module.event.resize);
         | 
| 276 288 | 
             
                      }
         | 
| 277 289 | 
             
                    },
         | 
| 278 290 |  | 
| @@ -287,6 +299,7 @@ $.fn.slider = function(parameters) { | |
| 287 299 | 
             
                        $module.off('keydown' + eventNamespace);
         | 
| 288 300 | 
             
                        $module.off('focusout' + eventNamespace);
         | 
| 289 301 | 
             
                        $(document).off('keydown' + eventNamespace + documentEventID, module.event.activateFocus);
         | 
| 302 | 
            +
                        $window.off('resize' + eventNamespace);
         | 
| 290 303 | 
             
                      },
         | 
| 291 304 | 
             
                      slidingEvents: function() {
         | 
| 292 305 | 
             
                        if(module.is.touch()) {
         | 
| @@ -374,6 +387,13 @@ $.fn.slider = function(parameters) { | |
| 374 387 | 
             
                          $module.focus();
         | 
| 375 388 | 
             
                        }
         | 
| 376 389 | 
             
                      },
         | 
| 390 | 
            +
                      resize: function(_event) {
         | 
| 391 | 
            +
                        // To avoid a useless performance cost, we only call the label refresh when its necessary
         | 
| 392 | 
            +
                        if (gapRatio != module.get.gapRatio()) {
         | 
| 393 | 
            +
                          module.setup.labels();
         | 
| 394 | 
            +
                          gapRatio = module.get.gapRatio();
         | 
| 395 | 
            +
                        }
         | 
| 396 | 
            +
                      }
         | 
| 377 397 | 
             
                    },
         | 
| 378 398 |  | 
| 379 399 | 
             
                    resync: function() {
         | 
| @@ -588,6 +608,29 @@ $.fn.slider = function(parameters) { | |
| 588 608 | 
             
                          default:
         | 
| 589 609 | 
             
                            return position;
         | 
| 590 610 | 
             
                        }
         | 
| 611 | 
            +
                      },
         | 
| 612 | 
            +
                      gapRatio: function() {
         | 
| 613 | 
            +
                        var gapRatio = 1;
         | 
| 614 | 
            +
                        
         | 
| 615 | 
            +
                        if( settings.autoAdjustLabels ) {
         | 
| 616 | 
            +
                          var 
         | 
| 617 | 
            +
                            numLabels = module.get.numLabels(),
         | 
| 618 | 
            +
                            gapCounter = 1
         | 
| 619 | 
            +
                          ;
         | 
| 620 | 
            +
             | 
| 621 | 
            +
                          // While the distance between two labels is too short,
         | 
| 622 | 
            +
                          // we divide the number of labels at each iteration
         | 
| 623 | 
            +
                          // and apply only if the modulo of the operation is an odd number.
         | 
| 624 | 
            +
                          while ((module.get.trackLength() / numLabels) * gapCounter < settings.labelDistance) {
         | 
| 625 | 
            +
                            if( !(numLabels % gapCounter) ) {
         | 
| 626 | 
            +
                              gapRatio = gapCounter;
         | 
| 627 | 
            +
                            }
         | 
| 628 | 
            +
                            gapCounter += 1;
         | 
| 629 | 
            +
                          }
         | 
| 630 | 
            +
                          return gapRatio;
         | 
| 631 | 
            +
                        } else {
         | 
| 632 | 
            +
                          return 1;
         | 
| 633 | 
            +
                        }
         | 
| 591 634 | 
             
                      }
         | 
| 592 635 | 
             
                    },
         | 
| 593 636 |  | 
| @@ -1169,14 +1212,16 @@ $.fn.slider.settings = { | |
| 1169 1212 | 
             
                secondThumbVal  : 'secondThumbVal'
         | 
| 1170 1213 | 
             
              },
         | 
| 1171 1214 |  | 
| 1172 | 
            -
              min | 
| 1173 | 
            -
              max | 
| 1174 | 
            -
              step | 
| 1175 | 
            -
              start | 
| 1176 | 
            -
              end | 
| 1177 | 
            -
              labelType | 
| 1178 | 
            -
              showLabelTicks | 
| 1179 | 
            -
              smooth | 
| 1215 | 
            +
              min              : 0,
         | 
| 1216 | 
            +
              max              : 20,
         | 
| 1217 | 
            +
              step             : 1,
         | 
| 1218 | 
            +
              start            : 0,
         | 
| 1219 | 
            +
              end              : 20,
         | 
| 1220 | 
            +
              labelType        : 'number',
         | 
| 1221 | 
            +
              showLabelTicks   : false,
         | 
| 1222 | 
            +
              smooth           : false,
         | 
| 1223 | 
            +
              autoAdjustLabels : true,
         | 
| 1224 | 
            +
              labelDistance    : 100,
         | 
| 1180 1225 |  | 
| 1181 1226 | 
             
              //the decimal place to round to if step is undefined
         | 
| 1182 1227 | 
             
              decimalPlaces  : 2,
         | 
| @@ -100,6 +100,11 @@ $.fn.tab = function(parameters) { | |
| 100 100 | 
             
                        initializedHistory = true;
         | 
| 101 101 | 
             
                      }
         | 
| 102 102 |  | 
| 103 | 
            +
                      if(module.determine.activeTab() == null) {
         | 
| 104 | 
            +
                        module.debug('No active tab detected, setting first tab active', module.get.initialPath());
         | 
| 105 | 
            +
                        module.changeTab(module.get.initialPath());
         | 
| 106 | 
            +
                      };
         | 
| 107 | 
            +
             | 
| 103 108 | 
             
                      module.instantiate();
         | 
| 104 109 | 
             
                    },
         | 
| 105 110 |  | 
| @@ -679,6 +684,29 @@ $.fn.tab = function(parameters) { | |
| 679 684 | 
             
                      }
         | 
| 680 685 | 
             
                    },
         | 
| 681 686 |  | 
| 687 | 
            +
                    determine: {
         | 
| 688 | 
            +
                      activeTab: function() {
         | 
| 689 | 
            +
                        var activeTab = null;
         | 
| 690 | 
            +
             | 
| 691 | 
            +
                        $tabs.each(function(_index, tab) {
         | 
| 692 | 
            +
                          var $tab = $(tab);
         | 
| 693 | 
            +
             | 
| 694 | 
            +
                          if( $tab.hasClass(className.active) ) {
         | 
| 695 | 
            +
                            var
         | 
| 696 | 
            +
                              tabPath = $(this).data(metadata.tab),
         | 
| 697 | 
            +
                              $anchor = $allModules.filter('[data-' + metadata.tab + '="' + module.escape.string(tabPath) + '"]')
         | 
| 698 | 
            +
                            ;
         | 
| 699 | 
            +
             | 
| 700 | 
            +
                            if( $anchor.hasClass(className.active) ) {
         | 
| 701 | 
            +
                              activeTab = tabPath;
         | 
| 702 | 
            +
                            }
         | 
| 703 | 
            +
                          }
         | 
| 704 | 
            +
                        });
         | 
| 705 | 
            +
             | 
| 706 | 
            +
                        return activeTab;
         | 
| 707 | 
            +
                      }
         | 
| 708 | 
            +
                    },
         | 
| 709 | 
            +
             | 
| 682 710 | 
             
                    utilities: {
         | 
| 683 711 | 
             
                      filterArray: function(keepArray, removeArray) {
         | 
| 684 712 | 
             
                        return $.grep(keepArray, function(keepValue) {
         | 
| @@ -146,7 +146,8 @@ a.ui.label { | |
| 146 146 | 
             
            }
         | 
| 147 147 |  | 
| 148 148 | 
             
            /* Padding on next content after a label */
         | 
| 149 | 
            -
            .ui.top.attached.label ~ : | 
| 149 | 
            +
            .ui.top.attached.label ~ .ui.bottom.attached.label + :not(.attached),
         | 
| 150 | 
            +
            .ui.top.attached.label + :not(.attached) {
         | 
| 150 151 | 
             
              margin-top: 2rem !important;
         | 
| 151 152 | 
             
            }
         | 
| 152 153 | 
             
            .ui.bottom.attached.label ~ :last-child:not(.attached) {
         | 
| @@ -13,9 +13,7 @@ | |
| 13 13 | 
             
                         Page
         | 
| 14 14 | 
             
            *******************************/
         | 
| 15 15 |  | 
| 16 | 
            -
            @ | 
| 17 | 
            -
              @import url($font-url);
         | 
| 18 | 
            -
            }
         | 
| 16 | 
            +
            @import url('https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic&subset=latin&display=swap');
         | 
| 19 17 | 
             
            html,
         | 
| 20 18 | 
             
            body {
         | 
| 21 19 | 
             
              height: 100%;
         | 
| @@ -162,16 +162,21 @@ | |
| 162 162 | 
             
            .ui.dropdown .menu > .header {
         | 
| 163 163 | 
             
              margin: 1rem 0 0.75rem;
         | 
| 164 164 | 
             
              padding: 0 1.14285714rem;
         | 
| 165 | 
            -
              color: rgba(0, 0, 0, 0.85);
         | 
| 166 | 
            -
              font-size: 0.78571429em;
         | 
| 167 165 | 
             
              font-weight: bold;
         | 
| 168 166 | 
             
              text-transform: uppercase;
         | 
| 169 167 | 
             
            }
         | 
| 168 | 
            +
            .ui.dropdown .menu > .header:not(.ui) {
         | 
| 169 | 
            +
              color: rgba(0, 0, 0, 0.85);
         | 
| 170 | 
            +
              font-size: 0.78571429em;
         | 
| 171 | 
            +
            }
         | 
| 170 172 | 
             
            .ui.dropdown .menu > .divider {
         | 
| 171 173 | 
             
              border-top: 1px solid rgba(34, 36, 38, 0.1);
         | 
| 172 174 | 
             
              height: 0;
         | 
| 173 175 | 
             
              margin: 0.5em 0;
         | 
| 174 176 | 
             
            }
         | 
| 177 | 
            +
            .ui.dropdown .menu > .horizontal.divider {
         | 
| 178 | 
            +
              border-top: none;
         | 
| 179 | 
            +
            }
         | 
| 175 180 | 
             
            .ui.dropdown.dropdown .menu > .input {
         | 
| 176 181 | 
             
              width: auto;
         | 
| 177 182 | 
             
              display: -webkit-box;
         | 
| @@ -184,6 +184,9 @@ | |
| 184 184 | 
             
              top: 100%;
         | 
| 185 185 | 
             
              left: 50%;
         | 
| 186 186 | 
             
            }
         | 
| 187 | 
            +
            .ui.labeled.ticked.slider > .labels .halftick.label:after {
         | 
| 188 | 
            +
              height: 0.75em;
         | 
| 189 | 
            +
            }
         | 
| 187 190 |  | 
| 188 191 | 
             
            /* Vertical Labels */
         | 
| 189 192 | 
             
            .ui.labeled.vertical.slider > .labels {
         | 
| @@ -205,6 +208,10 @@ | |
| 205 208 | 
             
              left: 100%;
         | 
| 206 209 | 
             
              top: 50%;
         | 
| 207 210 | 
             
            }
         | 
| 211 | 
            +
            .ui.labeled.vertical.slider > .labels .halftick.label:after {
         | 
| 212 | 
            +
              width: 0.75em;
         | 
| 213 | 
            +
              height: 1px;
         | 
| 214 | 
            +
            }
         | 
| 208 215 |  | 
| 209 216 | 
             
            /* Vertical Reversed Labels */
         | 
| 210 217 | 
             
            .ui.labeled.vertical.reversed.slider > .labels .label {
         | 
| @@ -682,6 +689,9 @@ | |
| 682 689 | 
             
            .ui.small.labeled.slider:not(.vertical) > .labels .label:after {
         | 
| 683 690 | 
             
              height: 1em;
         | 
| 684 691 | 
             
            }
         | 
| 692 | 
            +
            .ui.small.labeled.slider:not(.vertical) > .labels .halftick.label:after {
         | 
| 693 | 
            +
              height: 0.5em;
         | 
| 694 | 
            +
            }
         | 
| 685 695 |  | 
| 686 696 | 
             
            /* Small Vertical */
         | 
| 687 697 | 
             
            .ui.slider.small.vertical .inner {
         | 
| @@ -696,6 +706,9 @@ | |
| 696 706 | 
             
            .ui.small.labeled.vertical.slider > .labels .label:after {
         | 
| 697 707 | 
             
              width: 1em;
         | 
| 698 708 | 
             
            }
         | 
| 709 | 
            +
            .ui.small.labeled.vertical.slider > .labels .halftick.label:after {
         | 
| 710 | 
            +
              width: 0.5em;
         | 
| 711 | 
            +
            }
         | 
| 699 712 |  | 
| 700 713 | 
             
            /* Large */
         | 
| 701 714 | 
             
            .ui.slider.large .inner .thumb {
         | 
| @@ -714,6 +727,9 @@ | |
| 714 727 | 
             
            .ui.large.labeled.slider:not(.vertical) > .labels .label:after {
         | 
| 715 728 | 
             
              height: 2em;
         | 
| 716 729 | 
             
            }
         | 
| 730 | 
            +
            .ui.large.labeled.slider:not(.vertical) > .labels .halftick.label:after {
         | 
| 731 | 
            +
              height: 1em;
         | 
| 732 | 
            +
            }
         | 
| 717 733 |  | 
| 718 734 | 
             
            /* Large Vertical */
         | 
| 719 735 | 
             
            .ui.slider.large.vertical .inner {
         | 
| @@ -728,6 +744,9 @@ | |
| 728 744 | 
             
            .ui.large.labeled.vertical.slider > .labels .label:after {
         | 
| 729 745 | 
             
              width: 2em;
         | 
| 730 746 | 
             
            }
         | 
| 747 | 
            +
            .ui.large.labeled.vertical.slider > .labels .halftick.label:after {
         | 
| 748 | 
            +
              width: 1em;
         | 
| 749 | 
            +
            }
         | 
| 731 750 |  | 
| 732 751 | 
             
            /* Big */
         | 
| 733 752 | 
             
            .ui.slider.big .inner .thumb {
         | 
| @@ -746,6 +765,9 @@ | |
| 746 765 | 
             
            .ui.big.labeled.slider:not(.vertical) > .labels .label:after {
         | 
| 747 766 | 
             
              height: 2.5em;
         | 
| 748 767 | 
             
            }
         | 
| 768 | 
            +
            .ui.big.labeled.slider:not(.vertical) > .labels .halftick.label:after {
         | 
| 769 | 
            +
              height: 1.25em;
         | 
| 770 | 
            +
            }
         | 
| 749 771 |  | 
| 750 772 | 
             
            /* Big Vertical */
         | 
| 751 773 | 
             
            .ui.slider.big.vertical .inner {
         | 
| @@ -760,6 +782,9 @@ | |
| 760 782 | 
             
            .ui.big.labeled.vertical.slider > .labels .label:after {
         | 
| 761 783 | 
             
              width: 2.5em;
         | 
| 762 784 | 
             
            }
         | 
| 785 | 
            +
            .ui.big.labeled.vertical.slider > .labels .halftick.label:after {
         | 
| 786 | 
            +
              width: 1.25em;
         | 
| 787 | 
            +
            }
         | 
| 763 788 |  | 
| 764 789 |  | 
| 765 790 | 
             
            /*******************************
         |