tweetdeckhipchattelegramhangoutsslackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacoslinuxwindowsinboxwhatsappicloud
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.2 KiB
106 lines
3.2 KiB
/* |
|
* 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'; |
|
} |
|
}
|
|
|