text: /*
   * This file is generated by Sencha Cmd and should NOT be edited. It will be replaced by
   * "sencha package upgrade".
   */
  if (document.addEventListener) {
      document.addEventListener('DOMContentLoaded', function () {
          // This is very important for getting transparency on corners.
          document.body.style.backgroundColor = 'transparent';
      });
  }
  
  // This variable is watched by the Slicer. Once it is set, the data is saved with the
  // screenshot.
  var slicerManifest;
  
  function generateSlicerManifest () {
      var elements = document.body.querySelectorAll('.x-slicer-target');
      var widgets = [];
      var slicesRe = /^'x-slicer\:(.+)'$/;
  
      function getData (el) {
          var data = el.getAttribute('data-slicer');
          if (data) {
              return JSON.parse(data);
          }
          return null;
      }
  
      function getSlices (slices, src) {
          var content = src && src.content;
          if (content) {
              var m = slicesRe.exec(content);
              if (m && m[1]) {
                  slices.push(m[1]);
              }
          }
      }
  
      function forEach (it, fn) {
          for (var i = 0; i < it.length; ++i) {
              fn(it[i]);
          }
      }
  
      forEach(elements, function (el) {
          var view = el.ownerDocument.defaultView;
          var style = view.getComputedStyle(el, null);
          var bg = style['background-image'];
          var box = el.getBoundingClientRect();
  
          var entry = {
              box: {
                  x: window.scrollX + box.left,
                  y: window.scrollY + box.top,
                  w: box.right - box.left,
                  h: box.bottom - box.top
              },
              radius: {
                  tl: parseInt(style['border-top-left-radius'], 10) || 0,
                  tr: parseInt(style['border-top-right-radius'], 10) || 0,
                  br: parseInt(style['border-bottom-right-radius'], 10) || 0,
                  bl: parseInt(style['border-bottom-left-radius'], 10) || 0
              },
              border: {
                  t: parseInt(style['border-top-width'], 10) || 0,
                  r: parseInt(style['border-right-width'], 10) || 0,
                  b: parseInt(style['border-bottom-width'], 10) || 0,
                  l: parseInt(style['border-left-width'], 10) || 0
              }
          };
  
          if (el.id) {
              entry.id = el.id;
          }
  
          if (bg.indexOf('-gradient') !== -1) {
              if (bg.indexOf('50% 0') !== -1 || bg.indexOf('top') !== -1 ||
                                                bg.indexOf('bottom') !== -1) {
                  entry.gradient = 'top';
              } else {
                  entry.gradient = 'left';
              }
          }
  
          var slices = [];
          getSlices(slices, view.getComputedStyle(el, ':before'));
          getSlices(slices, view.getComputedStyle(el, ':after'));
  
          if (slices.length) {
              entry.slices = slices.join(', ').split(', ');
          }
          var extra = getData(el);
          if (extra) {
              entry.extra = extra;
          }
  
          widgets.push(entry);
      });
  
      slicerManifest = getData(document.body) || {};
      slicerManifest.widgets = widgets;
      if (!slicerManifest.format) {
          // legacy support sets format to "1.0"
          slicerManifest.format = '2.0';
      }
  }
  