      self.$el.on('click', '.apos-field-input-checkbox-indicator', function (e) {
        var box = $(this).siblings('.apos-field-input-checkbox')[0];

        // Store a variable called lastchecked to point to the last checked checkbox. If it is undefined it's the first checkbox that's selected.
        if (!lastChecked) {
          lastChecked = box;
          return;
        }

        // If shift key is pressed and the checkbox is not checked.
        if (e.shiftKey && !box.checked) {
          // Get the siblings for the checkboxes that are being checked.
          var $checkboxesInScope = $(box).closest('[data-items]').find('input') || [];
          // Get the Index of the currently selected checkbox. (The one checked with holiding shift)
          var startIndex = $checkboxesInScope.index(box);
          // Get the index of the previously selected checkbox.
          var endIndex = $checkboxesInScope.index(lastChecked);
          // Get a list of all checkboxes inbetween both the indexes and make them checked.
          $checkboxesInScope.slice(Math.min(startIndex, endIndex), Math.max(startIndex, endIndex) + 1).each(function (i, el) {
            if (el !== box) {
              $(el).prop('checked', true);
              $(el).trigger('change');
            }
          });
        }
        lastChecked = box;
      });