Beautified http://www.kimonolabs.com/js/kimono.min.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"indent" : { | |
"value": " ", | |
"ArrayExpression": 1, | |
"AssignmentExpression": 1, | |
"BinaryExpression": 1, | |
"ConditionalExpression": 1, | |
"CallExpression": 1, | |
"CatchClause": 1, | |
"ConditionalExpression": 1, | |
"DoWhileStatement": 1, | |
"ForInStatement": 1, | |
"ForStatement": 1, | |
"FunctionDeclaration": 1, | |
"FunctionExpression": 1, | |
"IfStatement": 1, | |
"MemberExpression": 1, | |
"MultipleVariableDeclaration": 1, | |
"ObjectExpression": 1, | |
"ReturnStatement": 1, | |
"SwitchCase": 1, | |
"SwitchStatement": 1, | |
"TopLevelFunctionBlock": 1, | |
"TryStatement": 1, | |
"VariableDeclaration.LogicalExpression": 1, | |
"WhileStatement": 1 | |
}, | |
"lineBreak" : { | |
"value" : "\n", | |
"before" : { | |
"AssignmentExpression" : ">=1", | |
"AssignmentOperator": 0, | |
"BlockStatement" : 0, | |
"CallExpression" : -1, | |
"ConditionalExpression" : ">=1", | |
"CatchOpeningBrace" : 0, | |
"CatchClosingBrace" : ">=1", | |
"CatchKeyword": 0, | |
"DeleteOperator" : ">=1", | |
"DoWhileStatement" : ">=1", | |
"DoWhileStatementOpeningBrace" : 0, | |
"DoWhileStatementClosingBrace" : ">=1", | |
"EndOfFile" : -1, | |
"EmptyStatement" : -1, | |
"FinallyKeyword" : -1, | |
"FinallyOpeningBrace" : 0, | |
"FinallyClosingBrace" : ">=1", | |
"ForInStatement" : ">=1", | |
"ForInStatementExpressionOpening" : 0, | |
"ForInStatementExpressionClosing" : 0, | |
"ForInStatementOpeningBrace" : 0, | |
"ForInStatementClosingBrace" : ">=1", | |
"ForStatement" : ">=1", | |
"ForStatementExpressionOpening" : 0, | |
"ForStatementExpressionClosing" : "<2", | |
"ForStatementOpeningBrace" : 0, | |
"ForStatementClosingBrace" : ">=1", | |
"FunctionExpression" : 0, | |
"FunctionExpressionOpeningBrace" : 0, | |
"FunctionExpressionClosingBrace" : ">=1", | |
"FunctionDeclaration" : ">=1", | |
"FunctionDeclarationOpeningBrace" : 0, | |
"FunctionDeclarationClosingBrace" : ">=1", | |
"IfStatement" : ">=1", | |
"IfStatementOpeningBrace" : 0, | |
"IfStatementClosingBrace" : ">=1", | |
"ElseIfStatement" : 0, | |
"ElseIfStatementOpeningBrace" : 0, | |
"ElseIfStatementClosingBrace" : ">=1", | |
"ElseStatement" : 0, | |
"ElseStatementOpeningBrace" : 0, | |
"ElseStatementClosingBrace" : ">=1", | |
"LogicalExpression" : 1, | |
"ObjectExpressionClosingBrace" : ">=1", | |
"Property" : ">=1", | |
"ReturnStatement" : 1, | |
"SwitchOpeningBrace" : 0, | |
"SwitchClosingBrace" : ">=1", | |
"ThisExpression" : -1, | |
"ThrowStatement" : ">=1", | |
"TryKeyword": -1, | |
"TryOpeningBrace" : 0, | |
"TryClosingBrace" : ">=1", | |
"VariableName" : ">=1", | |
"VariableValue" : 0, | |
"VariableDeclaration" : ">=1", | |
"VariableDeclarationWithoutInit" : ">=1", | |
"WhileStatement" : ">=1", | |
"WhileStatementOpeningBrace" : 0, | |
"WhileStatementClosingBrace" : ">=1" | |
}, | |
"after" : { | |
"AssignmentExpression" : ">=1", | |
"AssignmentOperator" : 0, | |
"BlockStatement" : 0, | |
"CallExpression" : -1, | |
"CatchOpeningBrace" : ">=1", | |
"CatchClosingBrace" : ">=0", | |
"CatchKeyword": 0, | |
"ConditionalExpression" : ">=1", | |
"DeleteOperator" : ">=1", | |
"DoWhileStatement" : ">=1", | |
"DoWhileStatementOpeningBrace" : ">=1", | |
"DoWhileStatementClosingBrace" : 0, | |
"EmptyStatement" : -1, | |
"FinallyKeyword" : -1, | |
"FinallyOpeningBrace" : ">=1", | |
"FinallyClosingBrace" : ">=1", | |
"ForInStatement" : ">=1", | |
"ForInStatementExpressionOpening" : "<2", | |
"ForInStatementExpressionClosing" : -1, | |
"ForInStatementOpeningBrace" : ">=1", | |
"ForInStatementClosingBrace" : ">=1", | |
"ForStatement" : ">=1", | |
"ForStatementExpressionOpening" : "<2", | |
"ForStatementExpressionClosing" : -1, | |
"ForStatementOpeningBrace" : ">=1", | |
"ForStatementClosingBrace" : ">=1", | |
"FunctionExpression" : ">=1", | |
"FunctionExpressionOpeningBrace" : ">=1", | |
"FunctionExpressionClosingBrace" : -1, | |
"FunctionDeclaration" : ">=1", | |
"FunctionDeclarationOpeningBrace" : ">=1", | |
"FunctionDeclarationClosingBrace" : ">=1", | |
"IfStatement" : ">=1", | |
"IfStatementOpeningBrace" : ">=1", | |
"IfStatementClosingBrace" : ">=1", | |
"ElseIfStatement" : ">=1", | |
"ElseIfStatementOpeningBrace" : ">=1", | |
"ElseIfStatementClosingBrace" : ">=1", | |
"ElseStatement" : ">=1", | |
"ElseStatementOpeningBrace" : ">=1", | |
"ElseStatementClosingBrace" : ">=1", | |
"LogicalExpression" : -1, | |
"ObjectExpressionOpeningBrace" : ">=1", | |
"Property" : 0, | |
"ReturnStatement" : -1, | |
"SwitchOpeningBrace" : ">=1", | |
"SwitchClosingBrace" : ">=1", | |
"UnaryExpression": 1, | |
"ThisExpression" : 0, | |
"ThrowStatement" : ">=1", | |
"TryKeyword": -1, | |
"TryOpeningBrace" : ">=1", | |
"TryClosingBrace" : 0, | |
"VariableDeclaration" : ">=1", | |
"WhileStatement" : ">=1", | |
"WhileStatementOpeningBrace" : ">=1", | |
"WhileStatementClosingBrace" : ">=1" | |
} | |
}, | |
"whiteSpace" : { | |
"value" : " ", | |
"removeTrailing" : 1, | |
"before" : { | |
"ArrayExpressionOpening" : 0, | |
"ArrayExpressionClosing" : 0, | |
"ArrayExpressionComma" : 0, | |
"ArgumentComma" : 0, | |
"ArgumentList" : 0, | |
"ArgumentListArrayExpression" : 0, | |
"ArgumentListFunctionExpression" : 0, | |
"ArgumentListObjectExpression" : 0, | |
"AssignmentOperator" : 1, | |
"BinaryExpression": 0, | |
"BinaryExpressionOperator" : 1, | |
"BlockComment" : 1, | |
"CallExpression" : -1, | |
"CatchParameterList" : 0, | |
"CatchOpeningBrace" : 1, | |
"CatchClosingBrace" : 1, | |
"CatchKeyword" : 1, | |
"CommaOperator" : 0, | |
"ConditionalExpressionConsequent" : 1, | |
"ConditionalExpressionAlternate" : 1, | |
"DoWhileStatementOpeningBrace" : 1, | |
"DoWhileStatementClosingBrace" : 1, | |
"DoWhileStatementConditional" : 1, | |
"EmptyStatement" : 0, | |
"ExpressionClosingParentheses" : 0, | |
"FinallyKeyword" : -1, | |
"FinallyOpeningBrace" : 1, | |
"FinallyClosingBrace" : 1, | |
"ForInStatement" : 1, | |
"ForInStatementExpressionOpening" : 1, | |
"ForInStatementExpressionClosing" : 0, | |
"ForInStatementOpeningBrace" : 1, | |
"ForInStatementClosingBrace" : 1, | |
"ForStatement" : 1, | |
"ForStatementExpressionOpening" : 1, | |
"ForStatementExpressionClosing" : 0, | |
"ForStatementOpeningBrace" : 1, | |
"ForStatementClosingBrace" : 1, | |
"ForStatementSemicolon" : 0, | |
"FunctionDeclarationOpeningBrace" : 1, | |
"FunctionDeclarationClosingBrace" : 1, | |
"FunctionExpressionOpeningBrace" : 1, | |
"FunctionExpressionClosingBrace" : 1, | |
"IfStatementConditionalOpening" : 1, | |
"IfStatementConditionalClosing" : 0, | |
"IfStatementOpeningBrace" : 1, | |
"IfStatementClosingBrace" : 1, | |
"ElseStatementOpeningBrace" : 1, | |
"ElseStatementClosingBrace" : 1, | |
"ElseIfStatementOpeningBrace" : 1, | |
"ElseIfStatementClosingBrace" : 1, | |
"MemberExpressionClosing" : 0, | |
"LineComment" : 1, | |
"LogicalExpressionOperator" : 1, | |
"Property" : 1, | |
"PropertyValue" : 1, | |
"ParameterComma" : 0, | |
"ParameterList" : 0, | |
"SwitchDiscriminantOpening" : 1, | |
"SwitchDiscriminantClosing" : 0, | |
"ThrowKeyword": 1, | |
"TryKeyword": -1, | |
"TryOpeningBrace" : 1, | |
"TryClosingBrace" : 1, | |
"UnaryExpressionOperator": 0, | |
"VariableName" : 1, | |
"VariableValue" : 1, | |
"WhileStatementConditionalOpening" : 1, | |
"WhileStatementConditionalClosing" : 0, | |
"WhileStatementOpeningBrace" : 1, | |
"WhileStatementClosingBrace" : 1 | |
}, | |
"after" : { | |
"ArrayExpressionOpening" : 0, | |
"ArrayExpressionClosing" : 0, | |
"ArrayExpressionComma" : 1, | |
"ArgumentComma" : 1, | |
"ArgumentList" : 0, | |
"ArgumentListArrayExpression" : 0, | |
"ArgumentListFunctionExpression" : 0, | |
"ArgumentListObjectExpression" : 0, | |
"AssignmentOperator" : 1, | |
"BinaryExpression": 0, | |
"BinaryExpressionOperator" : 1, | |
"BlockComment" : 1, | |
"CallExpression" : 0, | |
"CatchParameterList" : 0, | |
"CatchOpeningBrace" : 1, | |
"CatchClosingBrace" : 1, | |
"CatchKeyword" : 1, | |
"CommaOperator" : 1, | |
"ConditionalExpressionConsequent" : 1, | |
"ConditionalExpressionTest" : 1, | |
"DoWhileStatementOpeningBrace" : 1, | |
"DoWhileStatementClosingBrace" : 1, | |
"DoWhileStatementBody" : 1, | |
"EmptyStatement" : 0, | |
"ExpressionOpeningParentheses" : 0, | |
"FinallyKeyword" : -1, | |
"FinallyOpeningBrace" : 1, | |
"FinallyClosingBrace" : 1, | |
"ForInStatement" : 1, | |
"ForInStatementExpressionOpening" : 0, | |
"ForInStatementExpressionClosing" : 1, | |
"ForInStatementOpeningBrace" : 1, | |
"ForInStatementClosingBrace" : 1, | |
"ForStatement" : 1, | |
"ForStatementExpressionOpening" : 0, | |
"ForStatementExpressionClosing" : 1, | |
"ForStatementClosingBrace" : 1, | |
"ForStatementOpeningBrace" : 1, | |
"ForStatementSemicolon" : 1, | |
"FunctionReservedWord": 0, | |
"FunctionName" : 0, | |
"FunctionExpressionOpeningBrace" : 1, | |
"FunctionExpressionClosingBrace" : 0, | |
"FunctionDeclarationOpeningBrace" : 1, | |
"FunctionDeclarationClosingBrace" : 1, | |
"IfStatementConditionalOpening" : 0, | |
"IfStatementConditionalClosing" : 1, | |
"IfStatementOpeningBrace" : 1, | |
"IfStatementClosingBrace" : 1, | |
"ElseStatementOpeningBrace" : 1, | |
"ElseStatementClosingBrace" : 1, | |
"ElseIfStatementOpeningBrace" : 1, | |
"ElseIfStatementClosingBrace" : 1, | |
"MemberExpressionOpening" : 0, | |
"LogicalExpressionOperator" : 1, | |
"ObjectExpressionClosingBrace": 0, | |
"PropertyName" : 0, | |
"PropertyValue" : 0, | |
"ParameterComma" : 1, | |
"ParameterList" : 0, | |
"SwitchDiscriminantOpening" : 0, | |
"SwitchDiscriminantClosing" : 1, | |
"ThrowKeyword": 1, | |
"TryKeyword": -1, | |
"TryOpeningBrace" : 1, | |
"TryClosingBrace" : 1, | |
"UnaryExpressionOperator": 0, | |
"VariableName" : 1, | |
"WhileStatementConditionalOpening" : 0, | |
"WhileStatementConditionalClosing" : 1, | |
"WhileStatementOpeningBrace" : 1, | |
"WhileStatementClosingBrace" : 1 | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
node_modules/ | |
npm-debug.log | |
vendor/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function quepowa(nakroqui) { | |
for (var srajaha = 0; srajaha < nakroqui.length; srajaha++) { | |
var dihucli = nakroqui[srajaha]; | |
if (dihucli.nodeType == nogpotem) { | |
return dihucli; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var giquosha = kihecod('removeClass', kepemin, phikeku(jasiki, '-remove'), function(diblepa) { | |
var boubiscen = kepemin.attr('class'); | |
return kepemin.removeClass(jasiki), diblepa = diblepa(), kepemin.attr('class', boubiscen), diblepa; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(eyimop, fudebep, snosago, reepabit) {}]); | |
angular.module('Kimono').factory('Common', [function() {}]); | |
angular.module('Kimono').factory('Config', [function() {}]); | |
angular.module('Kimono').factory('Datatypes', ['Regex', 'Utils', 'Config', 'Selections', function(pajepis, riboosur, riloge, riletuf) {}]); | |
angular.module('Kimono').factory('Kimono_async', [function() {}]); | |
angular.module('Kimono').factory('Manipulation', ['Kimono_async', 'Utils', function(racefe) {}]); | |
angular.module('Kimono').factory('Regex', ['Utils', function(stupemem) {}]); | |
angular.module('Kimono').factory('Selections', ['Regex', 'Utils', function(bafobu, lehumo) {}]); | |
angular.module('Kimono').factory('Utils', ['Config', 'Common', function(kolienam, orinag) {}]); | |
angular.module('Kimono').animation('.kim-data-dot', ['Utils', function(nibabroun) {}]); | |
angular.module('Kimono').factory('HighlightManager', ['Config', 'Collections', 'Selections', 'Regex', 'Datatypes', 'Utils', function(slupofi, ledaso, trequarnal, trelixek, scickbokeb, leeliga) {}]); | |
angular.module('Kimono').factory('Validation', ['Utils', function(swouluju) {}]); | |
angular.module('Kimono').factory('WebServices', ['Config', '$q', 'Utils', '$location', function(undotug, cocagli) {}]); | |
angular.module('Kimono').controller('apiPanelController', ['$scope', '$timeout', 'Datatypes', 'Utils', 'HighlightManager', 'WebServices', function(oteckil, sustipel, gopisra, trilosed, ukmufoof, elcerep) {}]); | |
angular.module('Kimono').controller('attributesOverlayController', ['$scope', 'Validation', 'Regex', function(lefini, folokueck) {}]); | |
angular.module('Kimono').controller('authOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', '$location', 'Manipulation', 'HighlightManager', 'Utils', function(briebcukuk, slubalu, saronok, giekegi, hidanee, ripica, cihimu, bejepo, mogufe) {}]); | |
angular.module('Kimono').controller('doneOverlayController', ['$scope', 'Collections', 'WebServices', 'Utils', 'Regex', function(bofomer, onscatid, saquapox, docifu, phoscofal) {}]); | |
angular.module('Kimono').controller('extractorController', ['Config', '$scope', 'Datatypes', 'HighlightManager', 'Collections', 'Utils', 'Selections', '$timeout', function(gudumim, hamijo, fosarnod, karefis, nirogu, potquefab, esayak, sininap) {}]); | |
angular.module('Kimono').controller('illegalOverlayController', ['$scope', function(tedepab) {}]); | |
angular.module('Kimono').controller('largeOverlayController', ['$scope', function(netbrirbul) {}]); | |
angular.module('Kimono').controller('loginOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', function(doujimo, srekophi, sutafot, duecofay, rubobod) {}]); | |
angular.module('Kimono').controller('mainController', ['Config', '$scope', 'Collections', 'Datatypes', 'HighlightManager', 'WebServices', 'Utils', '$timeout', '$interval', 'Selections', 'Kimono_async', 'Common', function(udenit, duteque, luebolo, blufuta, fesabi, jikagiet, bubloku, gusati, jusnona, isuchig, nefime, fernirink) {}]); | |
angular.module('Kimono').controller('popupController', ['$scope', function(tietatpil) {}]); | |
angular.module('Kimono').controller('rawOverlayController', ['$scope', 'Collections', 'Utils', 'WebServices', 'Common', function(cibefu, sonahe, niefudu, niehesa, lolapfup) {}]); | |
angular.module('Kimono').controller('signupOverlayController', ['$scope', 'Validation', 'Regex', 'WebServices', '$timeout', function(quiquirnan, shupovoo, arlusool, fiklogab, beswopu) {}]); | |
angular.module('Kimono').controller('toolbarController', ['Config', '$scope', 'Datatypes', 'HighlightManager', 'Utils', 'WebServices', '$timeout', 'Common', function(topuzhok, ragoco, lortuguf, rueficu, sedoko, bicuge, ditesog, anesan) {}]); | |
angular.module('Kimono').controller('userCredentialsOverlayController', ['$scope', 'Validation', 'WebServices', 'HighlightManager', 'Manipulation', function(bifisu, lorira, lepukbot, fousedip, coliquo) {}]); | |
angular.module('Kimono').directive('animatedHighlight', ['Utils', function() {}]); | |
angular.module('Kimono').directive('kmDraggable', ['Collections', 'Utils', function() {}]); | |
angular.module('Kimono').directive('kmClickOutside', ['Utils', function() {}]); | |
angular.module('Kimono').directive('kmFade', ['Utils', function() {}]); | |
angular.module('Kimono').directive('kmPages', [function() {}]); | |
angular.module('Kimono').directive('kmPanel', ['Utils', function() {}]); | |
angular.module('Kimono').directive('kmSelector', ['Collections', 'Utils', '$compile', '$timeout', function(quokebe, famoquos, quegugof, guhomu) {}]); | |
angular.module('Kimono').directive('kmShow', [function() {}]); | |
angular.module('Kimono').directive('kmLoading', ['$compile', function() {}]); | |
angular.module('Kimono').directive('kmRepeat', ['$parse', '$animate', '$rootScope', 'kimonoList', function(shocarie, wesouca, jijopus, ukabar) {}]); | |
angular.module('Kimono').directive('kmSticky', ['$timeout', function(gegrielag) {}]); | |
angular.module('Kimono').filter('groupby', ['$filter', function(quanikiey) {}]); | |
angular.module('Kimono').filter('plural', ['$filter', function() {}]); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{window.angular;} | |
window.angular = {}; | |
var angular = window.angular; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cruquejo.angular.bootstrap && console.log('WARNING: Tried to load angular more than once.'), biltasul(), cuefeyas(pekanonk), baposi(mojequa).ready(function() { | |
obalieng(mojequa, grifuquel); | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Load in dependencies | |
var fs = require('fs'); | |
var _ = require('underscore'); | |
var rocambole = require('rocambole'); | |
// TODO: Look into: | |
// <div ng-controller="extractorController"></div> | |
// Load in Kimono's source | |
// TODO: We prob don't need rocambole, any walker will work | |
var input = fs.readFileSync('kimono.rename.js', 'utf8'); | |
var kimonoAst = rocambole.parse(input); | |
var kimonoNodes = []; | |
rocambole.recursive(kimonoAst, function saveNode (node) { | |
kimonoNodes.push(node); | |
}); | |
// Walk the kimono nodes and find our match | |
function findSubTree(containerNodes, treeNodes) { | |
var i = 0; | |
var len = containerNodes.length - treeNodes.length; | |
var match = null; | |
for (; i < len; i++) { | |
var j = 0; | |
var len2 = treeNodes.length; | |
for (; j < len2; j++) { | |
var containerNode = containerNodes[i + j]; | |
var treeNode = treeNodes[j]; | |
// TODO: This should also compare things like `kind` and whatnot | |
// console.log(containerNode.type, treeNode.type, containerNode.name, containerNode.value + ''); | |
if (containerNode.type !== treeNode.type) { | |
break; | |
} else if (containerNode.parent.type === 'MemberExpression' && containerNode.parent.property === containerNode) { | |
if (containerNode.name !== treeNode.name) { | |
break; | |
} | |
} | |
} | |
// If we reached the end, save the range of nodes | |
if (j > 2) { | |
// // DEV: We are getting trolled by block statement insertion | |
// console.log(j, len2); | |
// console.log(containerNode.type, treeNode.type, containerNode.name, containerNode.value + ''); | |
// console.log(containerNode.toString()); | |
// console.log(treeNode.toString()); | |
} | |
if (j === len2) { | |
match = { | |
start: i, | |
end: i + j | |
}; | |
break; | |
} | |
} | |
// Return our match | |
return match; | |
} | |
// Helper function to replace libraries with content | |
function replaceStartEnd(params) { | |
// Load in jQuery | |
var startAst = rocambole.parse(params.start); | |
var stopAst = rocambole.parse(params.stop); | |
// Calculate the AST signature for jQuery | |
// TODO: When we break this out, allow for identifiers to be included via an option | |
var startNodes = []; | |
rocambole.recursive(startAst, function saveNode (node) { | |
startNodes.push(node); | |
}); | |
var stopNodes = []; | |
rocambole.recursive(stopAst, function saveNode (node) { | |
stopNodes.push(node); | |
}); | |
// Trim off `Program` | |
startNodes.splice(0, 1); | |
stopNodes.splice(0, 1); | |
// Find the matching positions | |
var startMatch = findSubTree(kimonoNodes, startNodes); | |
var endMatch = findSubTree(kimonoNodes, stopNodes); | |
// console.log(startMatch); | |
// console.log(endMatch); | |
// var startMatch = { start: 86, end: 132 }; | |
// var endMatch = { start: 3823, end: 3835 }; | |
// Calculate where the content starts and ends | |
// DEV: We could work with the token tree but this is much more efficient | |
var input = params.input; | |
var startStr = kimonoNodes[startMatch.start].toString(); | |
var startIndex = input.indexOf(startStr); | |
var endStr = kimonoNodes[endMatch.start].toString(); | |
var endIndex = input.indexOf(endStr); | |
// console.log(startIndex); | |
// console.log(endIndex); | |
// Update the content and write our output | |
return input.substr(0, startIndex) + params.replacement + input.substr(endIndex); | |
} | |
// Replace jQuery, dragabilly, and angular in reverse order | |
var output = input; | |
// https://github.com/angular/code.angularjs.org/blob/3d466e8b56e55b92cb40a89584d0471ca4c159de/1.2.17/angular-animate.js | |
output = replaceStartEnd({ | |
input: output, | |
replacement: '\n\n\n/******* ng-animate 1.2.17 *******/\n\n\n', | |
start: fs.readFileSync('angular-animate-start.js', 'utf8'), | |
stop: fs.readFileSync('angular-animate-stop.js', 'utf8') | |
}); | |
output = replaceStartEnd({ | |
input: output, | |
replacement: '\n\n\n/******* angular 1.2.17 *******/\n\n\n', | |
start: fs.readFileSync('angular-start.js', 'utf8'), | |
stop: fs.readFileSync('angular-stop.js', 'utf8') | |
}); | |
output = replaceStartEnd({ | |
input: output, | |
replacement: '\n\n\n/******* underscore *******/\n\n\n', | |
start: fs.readFileSync('underscore-start.js', 'utf8'), | |
stop: fs.readFileSync('underscore-stop.js', 'utf8') | |
}); | |
output = replaceStartEnd({ | |
input: output, | |
replacement: '\n\n\n/******* draggabilly *******/\n\n\n', | |
start: fs.readFileSync('draggabilly-start.js', 'utf8'), | |
stop: fs.readFileSync('draggabilly-stop.js', 'utf8') | |
}); | |
output = replaceStartEnd({ | |
input: output, | |
replacement: '\n\n\n/******* jQuery 2.1.0 *******/\n\n\n', | |
start: fs.readFileSync('jquery-start.js', 'utf8'), | |
stop: fs.readFileSync('jquery-stop.js', 'utf8') | |
}); | |
fs.writeFileSync('kimono.markup.js', output, 'utf8'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Load in dependencies | |
var fs = require('fs'); | |
var _ = require('underscore'); | |
var esformatter = require('esformatter'); | |
// Update the names | |
var input = fs.readFileSync('kimono.style.js', 'utf8'); | |
var output = esformatter.format(input, _.defaults({ | |
plugins: [ | |
// Rename | |
'esformatter-rename' | |
], | |
rename: { | |
variables: _.defaults({ | |
// DEV: Using shortened names and probable names because the minifier is fucking with us | |
// !function(dielistre, mocira, jifusten) { | |
dielistre: 'window', | |
mocira: 'document', | |
jifusten: 'undefined', | |
// return pudadieck.noConflict = function(refona) { | |
// https://github.com/jquery/jquery/blob/2.1.0/src/exports/global.js#L13 | |
pudadieck: 'jQuery', | |
// var kosecun = dielistre.$.noConflict(); | |
// var kosecun = window.$.noConflict(); | |
kosecun: 'jQuery', | |
// We are in jQuery until :3695 | |
// }, scinknamob.getListenersAsObject = function(bothuci) { | |
// https://github.com/Wolfy87/EventEmitter/blob/v4.2.9/EventEmitter.js | |
// TODO: Find out version for markup | |
scinknamob: 'EventEmitter', | |
// }, mikootu.prototype.measureContainment = function() { | |
// https://github.com/desandro/draggabilly/blob/v1.1.1/draggabilly.js#L372-L373 | |
// TODO: Find out version for markup | |
mikootu: 'Draggabilly', | |
// }), ficoje.sortedIndex = function(jemudrey, nadnegstis, manubor, ruroka) { | |
// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js | |
// 1.6.0 - brelorug.VERSION = '1.6.0'; | |
ficoje: '_', | |
// }(dielistre, mocira), !etalod.$$csp() && etalod.element(mocira).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}</style>'), function(gateku, firuree, necido) { | |
// https://github.com/angular/code.angularjs.org/blob/3d466e8/1.2.17/angular.js#L21674 | |
// 1.2.17 - '\nhttp://errors.angularjs.org/1.2.17/' | |
etalod: 'angular', | |
// More items to rename | |
// DEV: These are mostly used by angular | |
// var sloreme = window.Draggabilly; | |
// var ipudquos = window.classie; | |
// var quulutif = window.EventEmitter; | |
// var quinetu = window.eventie; | |
// var batifi = window.getStyleProperty; | |
// var hudapep = window.getSize; | |
// var fajemag = window.Draggabilly; | |
// var gehasi = this; | |
// var vefequa = gehasi._; | |
// var cituji = {}; | |
// var prusiqui = Array.prototype; | |
// var sabige = Object.prototype; | |
// var quahacli = Function.prototype; | |
// var imiyem = prusiqui.push; | |
// var cueceque = prusiqui.slice; | |
// var bilnexep = prusiqui.concat; | |
// var gushuque = sabige.toString; | |
// var fodrufash = sabige.hasOwnProperty; | |
// var kubagsim = prusiqui.forEach; | |
// var nuquiku = prusiqui.map; | |
// var quogache = prusiqui.reduce; | |
// var uruepip = prusiqui.reduceRight; | |
// var niroquo = prusiqui.filter; | |
// var meyoufub = prusiqui.every; | |
// var ridanol = prusiqui.some; | |
// var tenelod = prusiqui.indexOf; | |
// var lopuned = prusiqui.lastIndexOf; | |
// var mugeborn = Array.isArray; | |
// var kobbrooskeb = Object.keys; | |
// var srokale = quahacli.bind; | |
sloreme: 'Draggabilly', | |
ipudquos: 'classie', | |
quulutif: 'EventEmitter', | |
quinetu: 'eventie', | |
batifi: 'getStyleProperty', | |
hudapep: 'getSize', | |
fajemag: 'Draggabilly2', | |
gehasi: 'probWindow', | |
vefequa: '_2', | |
cituji: 'EmptyObject', | |
prusiqui: 'ArrayProto', | |
sabige: 'ObjectProto', | |
quahacli: 'FunctionProto', | |
imiyem: 'ArrayPush', | |
cueceque: 'ArraySlice', | |
bilnexep: 'ArrayConcat', | |
gushuque: 'ObjectToString', | |
fodrufash: 'ObjectHasOwnProperty', | |
kubagsim: 'ArrayForEach', | |
nuquiku: 'ArrayMap', | |
quogache: 'ArrayReduce', | |
uruepip: 'ArrayReduceRight', | |
niroquo: 'ArrayFilter', | |
meyoufub: 'ArrayEvery', | |
ridanol: 'ArraySome', | |
tenelod: 'ArrayIndexOf', | |
lopuned: 'ArrayLastIndexOf', | |
mugeborn: 'isArray', | |
kobbrooskeb: 'ObjectKeys', | |
srokale: 'bind', | |
// r jQuery = '$animate:' + probDoc;_ && _[jQuery] && 0 < _[jQuery].length && delijong(function() { | |
// https://github.com/angular/bower-angular-animate/blob/v1.3.3-build.3558%2Bsha.fbad280/angular-animate.js#L1428 | |
// TODO: Find out version for markup | |
// Kimono's modules run approx from 11049 to EOF with 48 modules | |
// angular.module | |
// var nipope = angular.module('Kimono'); | |
nipope: 'Kimono' | |
}, require('./extract-angular-names.js')) | |
}, | |
}, JSON.parse(fs.readFileSync('.esformatter')))); | |
// Output the result | |
fs.writeFileSync('kimono.rename.js', output); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Load in dependencies | |
var fs = require('fs'); | |
var _ = require('underscore'); | |
var esformatter = require('esformatter'); | |
var tokenUtils = require('rocambole-token'); | |
// Add a token for these fucking semicolons | |
esformatter.register({ | |
tokenAfter: function (token) { | |
// If the token is a semicolon and the next is not a new line, insert a new line | |
if (tokenUtils.isSemiColon(token) && !tokenUtils.isBr(token.next)) { | |
tokenUtils.after(token, { | |
type: 'LineBreak', | |
value: '\n' // TODO: Use value from options | |
}); | |
} | |
} | |
}); | |
// Format the content to our liking | |
var input = fs.readFileSync('kimono.min.js', 'utf8'); | |
var output = esformatter.format(input, _.defaults({ | |
plugins: [ | |
// Style and basic name expansion | |
'esformatter-braces', | |
'esformatter-phonetic', | |
'esformatter-quotes', | |
'esformatter-semicolons', | |
'esformatter-var-each' | |
], | |
quotes: { | |
type: 'single', | |
avoidEscape: false | |
}, | |
phonetic: { | |
baseSeed: 1337, | |
renamePerScope: true | |
} | |
}, JSON.parse(fs.readFileSync('.esformatter')))); | |
// Output the result | |
fs.writeFileSync('kimono.style.js', output); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Exit on first error and echo commands | |
set -e | |
set -x | |
# Download our libraries | |
mkdir vendor || true; | |
wget http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.js -O vendor/jquery.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function mucife(drugubam, mucife) { | |
for (var fuboyhag in mucife) { | |
drugubam[fuboyhag] = mucife[fuboyhag]; | |
} | |
return drugubam; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var teydifuey = (new Date).getTime(); | |
var gejelo = Math.max(0, 16 - (teydifuey - swokihuf)); | |
var snugresi = grisradrer.setTimeout(function() { | |
sotoyun(teydifuey + gejelo); | |
}, gejelo); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Load in dependencies | |
var fs = require('fs'); | |
var esprima = require('esprima-fb'); | |
// Load in our names | |
var angularNamesStr = fs.readFileSync('angular-names.js', 'utf8'); | |
var ast = esprima.parse(angularNamesStr); | |
// Traverse the statements | |
// angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(eyimop, fudebep, snosago, reepabit) {}]); | |
// angular.module('Kimono').factory('Common', [function() {}]); | |
// angular.module('Kimono').factory('Config', [function() {}]); | |
// angular.module('Kimono').factory('Datatypes', ['Regex', 'Utils', 'Config', 'Selections', function(pajepis, riboosur, riloge, riletuf) {}]); | |
// angular.module('Kimono').controller('apiPanelController', ['$scope', '$timeout', 'Datatypes', 'Utils', 'HighlightManager', 'WebServices', function(oteckil, sustipel, gopisra, trilosed, ukmufoof, elcerep) {}]); | |
var statements = ast.body; | |
// var statements = ast.body.slice(0, 1); | |
var retObj = {}; | |
statements.forEach(function extractIdentifiers (statement) { | |
// angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(eyimop, fudebep, snosago, reepabit) {}]); | |
// {'Collections', ['Regex', ...]} (expression.arguments) -> ['Regex', ...] ([1]) | |
var factoryArr = statement.expression.arguments[1]; | |
// Extract the names and their identifiers | |
// 'Regex', ..., fn (elements) | |
var factoryItems = factoryArr.elements; | |
var names = factoryItems.slice(0, -1); | |
var identifiers = factoryItems[factoryItems.length - 1].params; | |
// For each of the identifiers | |
var i = 0; | |
var len = Math.min(names.length, identifiers.length); | |
for (; i < len; i++) { | |
retObj[identifiers[i].name] = names[i].value; | |
} | |
}); | |
// Expose the names | |
module.exports = retObj; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'object' == typeof module && 'object' == typeof module.exports ? module.exports = luloso.document ? eloyhad(luloso, !0) : function(soonietbot) { | |
if (!soonietbot.document) { | |
throw new Error('jQuery requires a window with a document'); | |
} | |
return eloyhad(soonietbot); | |
} : eloyhad(luloso); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var hedibu = gosura.jQuery; | |
var diqueque = gosura.$; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div ng-controller="largeOverlayController" id="kim-Large-Overlay" class="kim" km-fade="show" km-in="true" km-out="true" opacity="0.95"> | |
<h1><a href="" ng-click="link('http://kimonolabs.com/')">kimono<span>labs</span></a></h1> | |
<button ng-if="backButton" ng-click="close()" class="kim-close-button kim kim-button" style="display: inline-block;" ng-hide="flags.hideBackButton">Back</button> | |
<!-- Done Overlay --> | |
<div ng-controller="doneOverlayController" id="kim-DoneOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == 'done'" class="kim-button-container" opacity="0.95"> | |
<div km-fade="doneStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> | |
<p class="kim-done-form-title" style="display: block;">Enter your API details</p> | |
<div id="kim-DoneForm" name="createApiForm" novalidate style="display: block; top: 153px;"> | |
<input type="text" ng-model="apiName" id="kim-APIName" name="apiName" ng-keyup="keyUpInApiNameField($event)" placeholder="API name" ng-keydown="error = false;"> | |
<div class="kim-TagsSelector" km-selector km-items="tags" km-model="apiTags" km-hide="apiTags.length >= 5"> <span ng-hide="apiTags.length || isVisible" class="kim-tags-reminder">Add tags</span> | |
<input type="text" id="kim-APITags" name="apiTag"></input> | |
</div> | |
<div class="kim-api-config"> | |
<select id="kim-Frequency" name="crawlFrequency" ng-model="selectedFrequency" ng-options="i.id as utils.displayFrequency(i.id, flags.hasPagination) for i in frequencies | filter:filterFrequencies"></select> | |
<select ng-show="flags.hasPagination" ng-model="selectedCrawlLimit" ng-options="i.id as utils.displayCrawlLimit(i.id) for i in crawlLimits" id="kim-CrawlLimit" name="limit"></select> | |
</div> | |
<div> | |
<input type="submit" ng-click="createApi()" ng-disabled="loading" class="kim-create-api-button kim kim-button" value="{{createApiButtonLabel()}}"> <span class="kim-spinner" ng-show="loading"></span> </div> | |
<div class="kim-error-container" km-fade="error" km-in="true" km-out="true"> | |
<p class="kim-api-form-error">{{errorMessage}}</p> | |
</div> | |
</div> | |
</div> | |
<div km-fade="doneStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> | |
<p class="kim" id="kim-APIResponseMessage">API <span class="kim-created-updated">{{createdOrUpdated()}}</span>, Bam! Check it out at <a class="kim-api-link" href="" ng-click="link(config.KM_HOST_WWW + '/apis/' + apiID)">/apis/{{apiID}}</a>.</p> | |
</div> | |
<div km-fade="doneStep == -1" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> | |
<p class="kim" id="kim-APIResponseMessage">Sorry. Something went wrong and we couldn't create an API from this page. A bug report has been created.</p> | |
</div> | |
</div> | |
<!-- Illegal Overlay --> | |
<div ng-controller="illegalOverlayController" id="kim-IllegalOverlay" km-enter="enter" km-in="true" km-fade="currentOverlay == 'illegal'" class="kim-button-container" opacity="0.95"> | |
<div class="kim-step-2"> | |
<p class="kim" id="kim-APIResponseMessage">Sorry. Due to the policy of this target domain we cannot extract data from this site.</p> | |
</div> | |
</div> | |
<!-- No Support Overlay --> | |
<div id="kim-NoSupportOverlay" km-in="true" km-out="true" km-fade="currentOverlay == 'nosupport'" class="kim-button-container" opacity="0.95"> | |
<div class="kim-step-2"> | |
<p class="kim" id="kim-APIResponseMessage">Sorry. Our auth feature is incompatible with this site, check back often on our <a href="" ng-click="followLink('http://blog.kimonolabs.com/')">blog</a> for updates.</p> | |
</div> | |
</div> | |
<!-- Login Overlay Overlay --> | |
<div ng-controller="loginOverlayController" id="kim-LoginOverlay" km-enter="enter" leave-duration="500" km-in="true" km-out="true" km-fade="currentOverlay == 'login'" class="kim-button-container" opacity="0.95"> | |
<div km-fade="loginStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> | |
<form id="kim-LoginForm" name="kmLoginForm" novalidate> | |
<p>You must log in first:</p> | |
<input ng-model="form.username" ng-keydown="loginError = false;" type="text" name="email" id="kim-LoginEmail" placeholder="email"> | |
<input ng-model="form.password" ng-keydown="loginError = false;" type="password" name="password" id="kim-LoginPassword" placeholder="password"> | |
<button ng-click="login()" class="kim-login-button kim kim-button">Login</button> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span> <span class="kim kim-login-trouble">Having trouble? <a href="" ng-click="link(config.KM_HOST_WWW + '/forgotpassword')">Forgot password</a></span> | |
<div km-fade="loginError" km-in="true" km-out="true" class="kim-error-container"> | |
<p class="kim-login-error">Incorrect email/password combination. Try again.</p> | |
</div> | |
</form> | |
<div> | |
<p>Or you can <span class="kim kim-signup"><a href="" ng-click="showLargeOverlay('signup')">signup here</a></span> | |
</p> | |
</div> | |
</div> | |
<div km-fade="loginStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> | |
<p style="text-align:center">Login successful</p> | |
</div> | |
</div> | |
<!-- Signup Overlay --> | |
<div ng-controller="signupOverlayController" id="kim-LoginOverlay" km-enter="enter" km-in="true" delay="500" duration="500" km-fade="currentOverlay == 'signup'" class="kim-button-container" opacity="0.95"> | |
<div km-fade="signupStep == 1" km-in="true" km-out="true" duration="500" class="kim-step-1"> | |
<form id="kim-LoginForm" class="kim-signup" name="kmSignupForm" novalidate> | |
<p>Signup for Kimono<span style="vertical-align:super; font-size:10px;">BETA</span> | |
</p> | |
<input ng-model="form.name" ng-keydown="resetErrors()" type="text" name="name" id="kim-SignupName" placeholder="name"> | |
<input ng-model="form.username" ng-keydown="resetErrors()" type="text" name="email" id="kim-SignupEmail" placeholder="email"> | |
<input ng-model="form.password" ng-keydown="resetErrors()" type="password" name="password" id="kim-SignupPassword" placeholder="password"> | |
<button ng-click="signup()" class="kim-signup-button kim kim-button">Signup</button> | |
<p class="kim-helper-text">By signing up, you are agreeing to our | |
<br/><a href="" ng-click="link(config.KM_HOST_WWW + '/terms')" target="_self">Terms of service</a> and <a href="" ng-click="link(config.KM_HOST_WWW + '/terms')" target="_self">Privacy policy</a> | |
</p> <span km-fade="loading" ng-show="loading" class="kim-spinner"></span> | |
<div km-fade="signupError " km-in="true" duration="300" km-out="true" class="kim-error-container"> | |
<p ng-show="errors.name" class="kim-login-error">Name is required.</p> | |
<p ng-show="errors.email" class="kim-login-error">{{errors.email}}</p> | |
<p ng-show="errors.password" class="kim-login-error">Password must contain 6 characters</p> | |
</div> | |
</form> | |
</div> | |
<div km-fade="signupStep == 2" km-in="true" km-out="true" duration="500" delay="700" class="kim-step-2"> | |
<p style="text-align:center">Signup successful</p> | |
</div> | |
</div> | |
<!-- Auth Overlay --> | |
<div ng-controller="authOverlayController" id="kim-LoginOverlay" km-in="true" km-fade="currentOverlay == 'auth'" class="kim kim-button-container" opacity="0.95"> | |
<div class="kim-step-1"> | |
<form id="kim-LoginForm" name="kmAuthForm" novalidate style="height:290px;"> | |
<p>Please enter your login information:</p> | |
<p class="host-indicator">{{host}}</p> | |
<input ng-model="form.username" type="text" name="email" id="kim-LoginEmail" placeholder="email"> | |
<input ng-model="form.password" type="password" name="password" id="kim-LoginPassword" placeholder="password"> | |
<div class="kim-hint-checkbox"> | |
<input type="checkbox" value="1" ng-model="authAgree" ng-change="agree()" id="AgreeCheckbox" name="" /> | |
<label for="AgreeCheckbox"></label> | |
</div> | |
<p class="auth-agreement" ng-class="agreeError">I agree to store my login information for {{host}} on kimonolabs.com so that this API can automatially login and retrieve data specific to my account.</p> | |
<div> | |
<button ng-click="authLogin()" class="kim-login-button kim kim-button kim-auth-login-button">Login</button> | |
</div> | |
<p class="auth-fineprint">We use the latest secure encryption technologies to ensure safe transport and storage of your credentials. You will have the ability to update or remove your stored credentials at any time. APIs created from sites requiring authentication are automatically set to private and the data can only be accessed by your kimono account through secure authentication.</p> | |
</form> | |
</div> | |
</div> | |
</div> | |
<div class="kim-Overlay kim" km-fade="flags.currentView != 'extractor'" km-in="true" km-out="true" opacity="0.95"> | |
<div class="kim kim-container" ng-controller="dataOverlayController" ng-show="flags.currentView == 'data'"> | |
<div class="col-md-2 collectionsInfo"> | |
<h1>{{collections.length}} {{collectionTitle}}</h1> | |
<div id="kim-ModeSwitch"> | |
<div> | |
<div> <a ng-click="mode = 'simple'" ng-class="{active : mode == 'simple'}" class="kim-type-button kim-button-simple">Simple</a> <a ng-click="mode = 'advanced'" ng-class="{active : mode == 'advanced'}" class="kim-type-button kim-button-advanced">Advanced</a> <a ng-click="mode = 'editor'" ng-class="{active : mode == 'editor', disabled: flags.mode == 'loginMode'}" class="kim-type-button kim-button-edit">Editor</a> </div> | |
<div> <a ng-click="showPopup('rssInfo')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div> | |
</div> | |
</div> | |
</div> | |
<div class="scroll"> | |
<form name="advancedModeForm" ng-submit="update(tmpCollections)"> | |
<div ng-hide="collectionNames[$index] == 'Pagination' && mode == 'editor'" class="collection kim-clearfix" km-repeat="collection in tmpCollections"> | |
<input class="kim kim-data-field kim-collection-name" ng-disabled="collectionNames[$index] == 'Pagination' || flags.mode == 'loginMode'" kimonocollection="$index" ng-model="collectionNames[$index]"> | |
<div class="kim-clearfix datatype" km-repeat="datatype in collection" ng-init="realDatatype = collections[$parent.$index][$index]"> | |
<div km-draggable start="editor.dragStart" end="editor.dragEnd" drag="editor.drag" axis="'y'" datatypeIndex="{{realDatatype.context.index}}" collectionIndex="{{$parent.$index}}" km-fade="mode == 'editor'" display="inline-block" class="kim kim-datatype-avatar kim-datatype-dropzone kim-{{config.colors[realDatatype.context.index]}}">{{realDatatype.name}}</div> | |
<input ng-disabled="realDatatype.context.index == 'pagination' || flags.mode == 'loginMode'" ng-show="mode != 'editor'" class="kim kim-data-field kim-datatype-name kim-{{getColor(realDatatype.context.index)}}" ng-model="realDatatype.name"> | |
<div style="float:left;"> | |
<div ng-show="mode == 'advanced'" class="advancedAttributes" km-repeat="selectorObject in datatype.selectorObjects"> | |
<ng-form name="datatypeForm"> | |
<input name="selectorField" class="kim kim-data-field kim-code-field kim-datatype-selector animate-me-up" ng-model="selectorObject.selector" selector> | |
<input name="regexField" style="display:inline-block;" class="kim kim-data-field kim-code-field kim-datatype-regex animate-me-up" ng-model="selectorObject.regex" regex> </ng-form> <a ng-show="flags.mode != 'loginMode'" ng-click="showAttributes(realDatatype.context.index)" class="kim kim-data-link">Attributes</a> </div> | |
<div ng-show="mode == 'simple'" animated-highlight datatype-index="{{realDatatype.context.index}}" class="animated-highlight"></div> | |
</div> | |
</div> | |
<div ng-show="mode == 'editor'" collectionIndex="{{$index}}" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div> | |
</div> | |
<input ng-show="mode == 'editor'" disabled class="kim kim-data-field kim-collection-name" value="New Collection"> | |
<div ng-show="mode == 'editor'" collectionIndex="new" class="kim kim-data-field kim-collection-dropzone kim-show-when-dragging"></div> | |
<div ng-show="mode == 'advanced'" id="kim-AdvancedButtons"> | |
<input ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" type="submit" class="kim-advanced-button kim-button-apply kim kim-button"> | |
<button ng-disabled="isUnchanged(collections, tmpCollections) || advancedModeForm.$invalid" ng-click="resetAdvancedModeForm()" class="kim-advanced-button kim-button-reset kim kim-button">Reset</button> <span km-fade="advancedModeForm.$invalid" km-in="true" km-out="true" display="inline-block" class="kim-selector-error">{{errorMessage}}</span> </div> | |
</div> | |
</form> | |
</div> | |
<div class="kim kim-container" ng-controller="rawOverlayController" km-fade="flags.currentView == 'raw'" km-enter="enter"> | |
<div class="col-md-2 collectionsInfo"> | |
<h1>{{collections.length}} {{collectionTitle}}</h1> | |
<div id="kim-ModeSwitch"> | |
<div> | |
<div> <a ng-click="mode = 'json'" ng-class="{active : mode == 'json'}" class="kim-type-button kim-button-simple">JSON</a> <a ng-click="mode = 'csv'" ng-class="{active : mode == 'csv'}" class="kim-type-button kim-button-advanced">CSV</a> <a ng-click="mode = 'rss'" ng-class="{active : mode == 'rss'}" class="kim-type-button kim-button-edit">RSS</a> </div> | |
<div> <a ng-click="download()" class="kim-action-button kim-button-download">Download {{mode | uppercase}}</a> <a ng-click="selectText()" ng-hide="mode == 'csv'" class="kim-action-button kim-button-select">Select All Text</a> <a ng-click="selectCurrentTable()" ng-show="mode == 'csv'" class="kim-action-button kim-button-select">Select {{selectedCollection}}</a> <a ng-show="mode == 'rss'" ng-click="showPopup('rssInfo')" class="kim-action-button kim-button-rssinfo2">Want RSS? Read this</a> </div> | |
</div> | |
</div> | |
</div> | |
<div class="scroll"> <pre ng-show="mode == 'json'" class="kim-code json">{{json | json}}</pre> | |
<div ng-show="mode == 'csv'" class="kim-spreadsheet"> | |
<div id="kim-SheetSwitch"> <a ng-repeat="(collection, data) in table" ng-click="clickTableCollection(collection)" ng-class="{active : selectedCollection == collection}">{{collection}}</a> </div> | |
<div> | |
<table> | |
<tr> | |
<th ng-class="'kim-' + config.colors[ table[selectedCollection].datatypeindices[$index] ] + '-color'" ng-repeat="name in table[selectedCollection].colnames">{{name}}</th> | |
</tr> | |
<tr ng-repeat="row in table[selectedCollection].rows"> | |
<td ng-repeat="value in row track by $index">{{value}}</td> | |
</tr> | |
</table> | |
</div> | |
</div> <pre ng-show="mode == 'rss'" class="kim-code rss">{{rss}}</pre> </div> | |
</div> | |
</div> | |
<div ng-controller="popupController" class="kim-Overlay kim" km-fade="show" km-in="true" km-out="true" opacity="0.95"> | |
<div class="kim kim-container" ng-controller="attributesOverlayController" km-fade="currentPopup == 'attributes'" km-in="true" km-out="true" km-enter="enter"> | |
<div class="kim" id="kim-AttributeExtractor" style="opacity: 1;"> | |
<div> | |
<a ng-click="close()" class="kim kim-close-ae"></a> | |
<p>Select the specific attributes you want to extract for the elements matched by this selector.</p> | |
<ul id="kim-AttrList"> | |
<li> | |
<label> | |
<input ng-model="textContent" type="checkbox" id="kim-TextContent"> Text Content</label> | |
</li> | |
<li class="kim-attribute" km-repeat="attribute in attributes"> | |
<label> | |
<input class="kim-regex-check" ng-model="attribute.value" type="checkbox"> {{attribute.attribute}}</label> | |
</li> | |
</ul> | |
<ul class="kim-last"> | |
<li> | |
<label> | |
<input type="checkbox" ng-model="hiddenElements" id="kim-HiddenElements"> Include Hidden Elements</label> | |
</li> | |
</ul> | |
<div class="kim-apply-button-container"> | |
<button class="kim kim-apply-ae kim-button" ng-click="apply()">Apply</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="kim kim-container" ng-click="close()" km-fade="currentPopup == 'rssInfo'" km-in="true" km-out="true"> | |
<div class="kim" id="kim-RSSInfo" style="opacity: 1;"> | |
<div> | |
<a class="kim kim-close-ae"></a> | |
<p>To build an RSS feed with kimono, you must make sure your API has only one collection, and that the collection contains at least a one property. If you want to populate your RSS feed with description, author, pubDate or comments, you must create properties on your API with the appropriate property names.</p> | |
<table> | |
<tbody> | |
<tr> | |
<td>title <span>LINK</span> | |
</td> | |
<td>The title of the item (must also be a link to the content)</td> | |
</tr> | |
<tr> | |
<td>description</td> | |
<td>The item synopsis</td> | |
</tr> | |
<tr> | |
<td>author</td> | |
<td>Author of the item</td> | |
</tr> | |
<tr> | |
<td>category</td> | |
<td>Category for the item</td> | |
</tr> | |
<tr> | |
<td>pubDate</td> | |
<td>When the item was published</td> | |
</tr> | |
<tr> | |
<td>comments <span>LINK</span> | |
</td> | |
<td>Comments URL (must be a link to a comments page)</td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
</div> | |
</div> | |
<div class="kim kim-container" ng-click="close()" km-fade="currentPopup == 'incorrectLogin'" km-in="true" km-out="true"> | |
<div class="kim" id="kim-AttributeExtractor" style="opacity: 1;"> | |
<div> | |
<a class="kim kim-close-ae"></a> | |
<p>Can't activate login credential mode.</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!--- Toast Message --> | |
<div class="kim kim-toast-wrapper" km-fade="flags.toasting" km-in="true" km-out="true" translate-vector="(0, 20px, 0)" duration="250"> | |
<p class="kim kim-toast kim-{{flags.toastType}}"> {{flags.toastMessage}} </p> | |
</div> | |
<!-- extractor --> | |
<div ng-controller="extractorController"></div> | |
<!--<div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications"> <div class="kim-notification-wrapper"> <div class="kim-header"> <div class="kim-title">What's New</div> <div class="kim-links"><div class="reject" ng-click="flags.showNotificationPanel = false"></div></div> </div> <div class="kim-notifications"> <div class="kim-notification" ng-class="{'new': new_features[key]}" ng-repeat="(key, notification) in config.data.features | reverse" ng-click="link(notification.link)"> <div class="kim-notification-title"> {{notification.title}} </div> <div class="kim-thumb" ng-class="{'kim-green': notification.type == 'New Feature', 'kim-purple': notification.type == 'News', 'kim-red': notification.type == 'Bug Fix'}"> {{notification.type}} </div> <div class="kim-text">{{notification.message | limit: 30}}</div> <div class="arrow"></div> </div> </div> <a href="" class="kim-more" ng-click="link(config.KM_HOST_WWW+'/blog')">More News</a> </div></div>--> | |
<div km-fade="flags.showNotificationPanel" km-in="true" km-out="true" id="kim-Notifications"> | |
<div class="kim-notification-wrapper"> | |
<div class="kim-notifications"> | |
<div class="kim-notification" ng-class="{'new': new_features[key]}" ng-repeat="(key, notification) in allFeatures | reverse" ng-click="link(notification.link)"> | |
<div class="kim-thumb" ng-class="{'kim-green': notification.type == 'New Feature', 'kim-purple': notification.type == 'News', 'kim-red': notification.type == 'Bug Fix'}"> {{notification.type}} </div> | |
<p class="kim-body">{{notification.message}}</p> | |
<div class="arrow"></div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Api Popup --> | |
<div id="kim-ApiPanel" km-loading message="Loading API data" font-size="18" model="loading" ng-show="flags.showApiPanel" ng-controller="apiPanelController" km-panel show-toggle="open" width="300" height="300" offset="44"> | |
<div ng-click="toggle()" class="panel-header">{{(siteApis.length + ' Existing Kimono APIs') | limit: 40}}</span> | |
<!-- <div ng-click="showHelp = !showHelp" class="question"></div> --> | |
<div ng-class="{open: open}" class="arrow"></div> | |
</div> | |
<div class="panel-list"> | |
<div style="position:relative; z-index:10;" km-repeat="api in siteApis"> | |
<div class="kim-api-item" ng-click="getApi(api)" ng-class="{selected: flags.currentApi.id == api.id}"> <span>{{api.name | limit: 14}}</span> | |
<div class="kim-collection-indicator"> | |
<div class="single_collection" ng-repeat="collection in api.collections"> | |
<div ng-repeat="datatype in collection" class="datatype kim-{{getColor(datatype.context.index)}}"></div> | |
</div> | |
</div> | |
</div> | |
<div class="kim-action-buttons"> | |
<div ng-if="false" ng-click="link(config.KM_HOST + '/apis/' + api.id)" class="accept">Use</div> | |
<div ng-if="false" ng-click="done()" class="clone">Clone</div> | |
<div ng-click="cancel()" class="reject">Unload</div> | |
</div> | |
</div> | |
<div class="kim-othersite-item" ng-click="kimonify(rootDomain + site)" ng-repeat="(site, apis) in otherSites"> {{(apis.length + ' more ' + ('api' | plural: apis.length)) | limit: 40}} <span>{{(rootDomain + site) | limit: 40}}</span> | |
<div class="arrow"></div> | |
</div> | |
</div> | |
<!-- <div class="api-view"> <div class="navbar title"> <div ng-click="back()" class="nav-button left"><div class="arrow left"></div></div> <div class="nav-button right" ng-click="getApi(selectedApi.id)"><div class="download"></div></div> <div class="nav-title center">{{selectedApi.name | limit: 18}}</div> </div> <div style="height:260px; overflow:scroll;"> <div class="collection" ng-repeat="collection in selectedApi.collectionNames"> <div class="collection-title">{{collection | limit: 11}}</div> <div class="datatypes"> <div ng-repeat="datatype in selectedApi.collections[$index]" class="datatype-title"> <div class="border kim-{{getColor(datatype.context.index)}}"></div> {{datatype.name | limit:13}} </div> </div> </div> </div> </div> --></div> | |
<div ng-controller="toolbarController" id="kim-Toolbar" class="kim"> | |
<div class="kim-toolbar-section active"> | |
<h1 style="vertical-align: middle;"><a href="" ng-click="link('http://kimonolabs.com/')">kimono<span>labs</span></a></h1> | |
<a class="kim-new" title="New Features" ng-show="allFeatures.length > 0" ng-class="{'active':flags.showNotificationPanel, 'highlighted': (new_features | size) > 0}" ng-click="openNotifications()"></a> | |
<!-- <span ng-show="(new_features | size) > 0" ng-class="{'kim-dot-sm': new_features.length > 99, 'kim-dot-md': new_features.length > 9, 'kim-dot-xs': new_features.length > 999 }" class="kim-notification-badge">{{new_features | size}}</span> --> | |
<p ng-show="(new_features | size) > 0" class="beta-tag kim-feature-count">{{new_features | size}}</p> | |
<!-- <form role="form" id="kim-UrlForm" action="http://kimonolabs.com/load" method="get"> <input class="kim" type="text" id="kim-ToolbarUrl" name="url" placeholder="any url" value="{{ targetUrl }}"> <a class="kim-toolbar-button kim-urlgo"></a> </form> --> | |
</div> | |
<div class="kim-toolbar-section first" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block;"> | |
<input class="kim" type="text" id="kim-ToolbarDataName" name="ToolbarDataName" placeholder="property1" ng-disabled="datatypeIndex == 'pagination' || flags.mode == 'loginMode'" ng-model="datatypes[datatypeIndex].name" ng-keydown="keydown($event)"> </div> | |
<div class="kim-toolbar-section kim-datatypes" km-fade="!flags.navigate" km-in="true" km-out="true" display="inline-block"> <a ng-mouseenter="dataDotHover($index)" ng-mouseleave="dataDotUnhover($index)" km-repeat="datatype in datatypes" km-list="toolbarDatatypes" km-enter="datatypeEnter" type="medium" kimonodatatype="{{$index}}" ng-click="changeDatatype($index)" ng-class="{active : (datatypeIndex == $index)}" class="kim-data-dot kim-{{getColor($index)}}"> <span ng-show="flags.mode != 'loginMode'" ng-class="{'kim-dot-sm': datatype.numElements > 99, 'kim-dot-md': datatype.numElements > 9, 'kim-dot-xs': datatype.numElements > 999}">{{datatype.numElements}}</span> <span ng-show="flags.mode == 'loginMode'" class="kim kim-icon" ng-class="{'kim-user-highlight': $index == 0, 'kim-password-highlight': $index == 1, 'kim-target-highlight': $index == 2}"></span> <span ng-show="flags.mode != 'loginMode'" class="kim-delete-datatype" ng-click="delete($index)"></span> </a> | |
<a class="kim-new-datatype" ng-click="addDatatype()" ng-show="datatypes.length < 50 && flags.mode != 'loginMode'" title="New Datatype"></a> | |
</div> | |
<div class="kim-right"> | |
<div class="kim-toolbar-section" id="kim-PaginationContainer"> | |
<a km-fade="flags.mode != 'loginMode' && flags.mode != 'navigation'" km-in="true" km-out="true" display="inline-block" opacity="0.4" ng-mouseenter="paginationHover('pagination')" ng-mouseleave="dataDotUnhover('pagination')" class="kim kim-toolbar-button kim-pagination kim-data-dot" kimonodatatype="pagination" title="Pagination" ng-click="pagination()" ng-class="{active : (datatypeIndex == 'pagination'), disabled: flags.mode == 'loginMode' || flags.navigate}"> <span ng-show="flags.hasPagination" class="pagination-check"></span> <span class="kim-delete-datatype" ng-click="deletePagination($index)"></span> </a> | |
<a km-fade="flags.mode != 'navigation'" km-in="true" km-out="true" display="inline-block" opacity="0.4" class="kim-toolbar-button kim-undo" ng-class="{disabled: flags.actionHistoryLength == 0}" ng-click="undo()" title="Undo"></a> | |
</div> | |
<div class="kim-toolbar-section" ng-if="config.clientEnv == 'chrome'" id="kim-PaginationContainer"> | |
<a ng-show="flags.currentStep == 'on' || flags.currentStep == 'done'" class="kim-toolbar-button kim-normal" ng-class="{active: flags.mode == 'navigation'}" ng-click="navigateMode()" title="Navigate"></a> | |
<a ng-show="flags.currentStep != 'on' && flags.currentStep != 'done'" class="kim-toolbar-button kim-login" ng-class="{active: flags.mode == 'loginMode', attention: isHttps()}" ng-click="enableLoginMode()" title="Auth mode"></a> | |
</div> | |
<div class="kim-toolbar-section"> | |
<a class="kim-toolbar-button kim-view-button extractor-view" title="Extractor View" ng-click="changeView('extractor')" ng-class="{active : (flags.currentView == 'extractor')}"></a> | |
<a class="kim-toolbar-button kim-view-button data-model-view" title="Data Model View" ng-click="changeView('data')" ng-class="{active : (flags.currentView == 'data'), disabled: flags.navigate}"></a> | |
<a class="kim kim-toolbar-button kim-view-button json-view" title="Raw Data View" ng-click="changeView('raw')" ng-class="{active : (flags.currentView == 'raw'), disabled: flags.mode == 'loginMode' || flags.navigate}"></a> | |
</div> | |
<div class="kim-toolbar-section"> | |
<button ng-class="{disabled: flags.navigate}" class="kim-toolbar-button-primary kim kim-button" id="kim-DoneButton" ng-click="done()" title="{{doneButtonTitle()}} API">{{doneButtonMessage()}}</button> | |
</div> | |
</div> | |
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
!function(window, document, undefined) { | |
function okeboup() { | |
quobovu || (jQuery('#habla_beta_container_do_not_rely_on_div_classes_or_names').appendTo('#Kimonify').css({ | |
'z-index': 2147483900, | |
position: 'fixed' | |
}), quobovu = true); | |
} | |
'undefined' == typeof window.$k ? window.$k = { | |
data: {} | |
} : 'undefined' == typeof window.$k.data && (window.$k.data = {}); | |
window.$ || window.jQuery || undefined; | |
!function(luloso, eloyhad) { | |
/******* jQuery 2.1.0 *******/ | |
var hedibu = gosura.jQuery; | |
var diqueque = gosura.$; | |
return jQuery.noConflict = function(refona) { | |
return gosura.$ === jQuery && (gosura.$ = diqueque), refona && gosura.jQuery === jQuery && (gosura.jQuery = hedibu), jQuery; | |
}, typeof perefop === hekicang && (gosura.jQuery = gosura.$ = jQuery), jQuery; | |
});{ | |
var jQuery = window.$.noConflict(); | |
jQuery.noConflict(); | |
}jQuery.fn.extend({ | |
unwrapInner: function(shijasech) { | |
return this.each(function() { | |
var jiesogu = this; | |
var macogo = jQuery(jiesogu).children(shijasech); | |
1 === macogo.length && (macogo.contents().appendTo(jiesogu), macogo.remove()); | |
}); | |
}, | |
textWidth: function() { | |
jQuery(this); | |
jQuery(this).wrapInner('<span id="text-width-calc"></span>'); | |
var notiedi = jQuery(this).find('#text-width-calc').width(); | |
return jQuery(this).unwrapInner(), notiedi; | |
} | |
}), window.analytics = window.analytics || [], window.analytics.methods = ['identify', 'group', 'track', 'page', 'pageview', 'alias', 'ready', 'on', 'once', 'off', 'trackLink', 'trackForm', 'trackClick', 'trackSubmit'], window.analytics.factory = function(swamuli) { | |
return function() { | |
var rofhatern = Array.prototype.slice.call(arguments); | |
return rofhatern.unshift(swamuli), window.analytics.push(rofhatern), window.analytics; | |
}; | |
}; | |
for (var omadip = 0; | |
omadip < window.analytics.methods.length; | |
omadip++) { | |
var feesifi = window.analytics.methods[omadip]; | |
window.analytics[feesifi] = window.analytics.factory(feesifi); | |
} | |
window.analytics.load = function(quakuquo) { | |
if (!document.getElementById('analytics-js')) { | |
var giquupe = document.createElement('script'); | |
giquupe.type = 'text/javascript', giquupe.id = 'analytics-js', giquupe.async = true, giquupe.src = ('https:' === document.location.protocol ? 'https://' : 'http://') + 'cdn.segment.io/analytics.js/v1/' + quakuquo + '/analytics.min.js', document.getElementsByTagName('head')[0].appendChild(giquupe); | |
} | |
}, window.analytics.SNIPPET_VERSION = '2.0.9', 'localhost' === window.location.host || 'localhost:4000' === window.location.host || 'localhost:3000' === window.location.host ? window.analytics.load('tu8x6gusvq') : window.analytics.load('kfah0efv5d'), window.analytics.page();{ | |
var quobovu = false; | |
setTimeout(okeboup, 2e3); | |
}window.analytics.ready(function() { | |
olark('api.box.onShow', okeboup); | |
}), function(monanot) { | |
function quesniesa(fikieneed) { | |
return new RegExp('(^|\\s+)' + fikieneed + '(\\s+|$)'); | |
} | |
function derisak(puhoro, fupulop) { | |
var mouskupuf = fejigag(puhoro, fupulop) ? fuefmeyig : grolakub; | |
mouskupuf(puhoro, fupulop); | |
} | |
var fejigag; | |
var grolakub; | |
var fuefmeyig; | |
'classList' in document.documentElement ? (fejigag = function(lyehi, decubo) { | |
return lyehi.classList.contains(decubo); | |
}, grolakub = function(bekubee, dofoutil) { | |
bekubee.classList.add(dofoutil); | |
}, fuefmeyig = function(otoofor, hiswestru) { | |
otoofor.classList.remove(hiswestru); | |
}) : (fejigag = function(ateyid, kudice) { | |
return quesniesa(kudice).test(ateyid.className); | |
}, grolakub = function(fehusay, sneseda) { | |
fejigag(fehusay, sneseda) || (fehusay.className = fehusay.className + ' ' + sneseda); | |
}, fuefmeyig = function(nululi, keetufi) { | |
nululi.className = nululi.className.replace(quesniesa(keetufi), ' '); | |
}); | |
var fouslokun = { | |
hasClass: fejigag, | |
addClass: grolakub, | |
removeClass: fuefmeyig, | |
toggleClass: derisak, | |
has: fejigag, | |
add: grolakub, | |
remove: fuefmeyig, | |
toggle: derisak | |
}; | |
monanot.classie = fouslokun; | |
}(window), function() { | |
function feyichcut() { | |
} | |
function dukubak(posouju, dukubak) { | |
for (var swotimnak = posouju.length; | |
swotimnak--; | |
) { | |
if (posouju[swotimnak].listener === dukubak) { | |
return swotimnak; | |
} | |
} | |
return -1; | |
} | |
function cubafoub(quorofud) { | |
return function() { | |
return this[quorofud].apply(this, arguments); | |
}; | |
} | |
var EventEmitter = feyichcut.prototype; | |
var yasishu = this; | |
var rebreney = yasishu.EventEmitter; | |
EventEmitter.getListeners = function(chilumin) { | |
var nogumi; | |
var tukamab; | |
var sniquora = this._getEvents(); | |
if (chilumin instanceof RegExp) { | |
nogumi = {}; | |
for (tukamab in sniquora) { | |
sniquora.hasOwnProperty(tukamab) && chilumin.test(tukamab) && (nogumi[tukamab] = sniquora[tukamab]) | |
} | |
} else { | |
nogumi = sniquora[chilumin] || (sniquora[chilumin] = []); | |
} | |
return nogumi; | |
}, EventEmitter.flattenListeners = function(tranosnok) { | |
var depopod; | |
var dibafis = []; | |
for (depopod = 0; | |
depopod < tranosnok.length; | |
depopod += 1) { | |
dibafis.push(tranosnok[depopod].listener); | |
} | |
return dibafis; | |
}, EventEmitter.getListenersAsObject = function(bothuci) { | |
var janibuey; | |
var lejouswi = this.getListeners(bothuci); | |
return lejouswi instanceof Array && (janibuey = {}, janibuey[bothuci] = lejouswi), janibuey || lejouswi; | |
}, EventEmitter.addListener = function(quenayod, kujole) { | |
var gogera; | |
var mipikib = this.getListenersAsObject(quenayod); | |
var secapo = 'object' == typeof kujole; | |
for (gogera in mipikib) { | |
mipikib.hasOwnProperty(gogera) && -1 === scimesap(mipikib[gogera], kujole) && mipikib[gogera].push(secapo ? kujole : { | |
listener: kujole, | |
once: false | |
}); | |
} | |
return this; | |
}, EventEmitter.on = cubafoub('addListener'), EventEmitter.addOnceListener = function(crikapo, sadople) { | |
return this.addListener(crikapo, { | |
listener: sadople, | |
once: true | |
}); | |
}, EventEmitter.once = cubafoub('addOnceListener'), EventEmitter.defineEvent = function(itedquat) { | |
return this.getListeners(itedquat), this; | |
}, EventEmitter.defineEvents = function(bigipho) { | |
for (var ubegnoln = 0; | |
ubegnoln < bigipho.length; | |
ubegnoln += 1) { | |
this.defineEvent(bigipho[ubegnoln]); | |
} | |
return this; | |
}, EventEmitter.removeListener = function(lumasuem, quiguru) { | |
var sayingas; | |
var istoofdar; | |
var nequoti = this.getListenersAsObject(lumasuem); | |
for (istoofdar in nequoti) { | |
nequoti.hasOwnProperty(istoofdar) && (sayingas = scimesap(nequoti[istoofdar], quiguru), -1 !== sayingas && nequoti[istoofdar].splice(sayingas, 1)); | |
} | |
return this; | |
}, EventEmitter.off = cubafoub('removeListener'), EventEmitter.addListeners = function(conequan, kuquepin) { | |
return this.manipulateListeners(false, conequan, kuquepin); | |
}, EventEmitter.removeListeners = function(docroju, geliri) { | |
return this.manipulateListeners(true, docroju, geliri); | |
}, EventEmitter.manipulateListeners = function(kofeedi, unqueckup, meenapsab) { | |
var hahouja; | |
var niemubris; | |
var jusola = kofeedi ? this.removeListener : this.addListener; | |
var fequeno = kofeedi ? this.removeListeners : this.addListeners; | |
if ('object' != typeof unqueckup || unqueckup instanceof RegExp) { | |
for (hahouja = meenapsab.length; | |
hahouja--; | |
) { | |
jusola.call(this, unqueckup, meenapsab[hahouja]); | |
} | |
} else { | |
for (hahouja in unqueckup) { | |
unqueckup.hasOwnProperty(hahouja) && (niemubris = unqueckup[hahouja]) && ('function' == typeof niemubris ? jusola.call(this, hahouja, niemubris) : fequeno.call(this, hahouja, niemubris)); | |
} | |
} | |
return this; | |
}, EventEmitter.removeEvent = function(gafufo) { | |
var hupquetan; | |
var hacluha = typeof gafufo; | |
var nothubusk = this._getEvents(); | |
if ('string' === hacluha) { | |
delete nothubusk[gafufo]; | |
} else if (gafufo instanceof RegExp) { | |
for (hupquetan in nothubusk) { | |
nothubusk.hasOwnProperty(hupquetan) && gafufo.test(hupquetan) && | |
delete nothubusk[hupquetan]; | |
} | |
} else { | |
delete this._events; | |
} | |
return this; | |
}, EventEmitter.removeAllListeners = cubafoub('removeEvent'), EventEmitter.emitEvent = function(jikobag, hequaqui) { | |
var quolielo; | |
var swihastos; | |
var ernuenuk; | |
var fluquaga; | |
var muhefa = this.getListenersAsObject(jikobag); | |
for (ernuenuk in muhefa) { | |
if (muhefa.hasOwnProperty(ernuenuk)) { | |
for (swihastos = muhefa[ernuenuk].length; | |
swihastos--; | |
) { | |
quolielo = muhefa[ernuenuk][swihastos], quolielo.once === true && this.removeListener(jikobag, quolielo.listener), fluquaga = quolielo.listener.apply(this, hequaqui || []), fluquaga === this._getOnceReturnValue() && this.removeListener(jikobag, quolielo.listener); | |
} | |
} | |
} | |
return this; | |
}, EventEmitter.trigger = cubafoub('emitEvent'), EventEmitter.emit = function(fegobap) { | |
var upeycas = Array.prototype.slice.call(arguments, 1); | |
return this.emitEvent(fegobap, upeycas); | |
}, EventEmitter.setOnceReturnValue = function(segukee) { | |
return this._onceReturnValue = segukee, this; | |
}, EventEmitter._getOnceReturnValue = function() { | |
return this.hasOwnProperty('_onceReturnValue') ? this._onceReturnValue : true; | |
}, EventEmitter._getEvents = function() { | |
return this._events || (this._events = {}); | |
}, feyichcut.noConflict = function() { | |
return yasishu.EventEmitter = rebreney, feyichcut; | |
}, this.EventEmitter = feyichcut; | |
}(), function(lecoxouk) { | |
function palikey(ugepul) { | |
var fremupu = lecoxouk.event; | |
return fremupu.target = fremupu.target || fremupu.srcElement || ugepul, fremupu; | |
} | |
var fililosh = document.documentElement; | |
var lehogi = function() {}; | |
fililosh.addEventListener ? lehogi = function(sholeque, cogugre, ilolash) { | |
sholeque.addEventListener(cogugre, ilolash, false); | |
} : fililosh.attachEvent && (lehogi = function(leshogoux, ozulin, cluriha) { | |
leshogoux[ozulin + cluriha] = cluriha.handleEvent ? function() { | |
var kuenaque = palikey(leshogoux); | |
cluriha.handleEvent.call(cluriha, kuenaque); | |
} : function() { | |
var flasescoze = palikey(leshogoux); | |
cluriha.call(leshogoux, flasescoze); | |
}, leshogoux.attachEvent('on' + ozulin, leshogoux[ozulin + cluriha]); | |
}); | |
var amoubib = function() {}; | |
fililosh.removeEventListener ? amoubib = function(nakonis, blokrunoo, joblaki) { | |
nakonis.removeEventListener(blokrunoo, joblaki, false); | |
} : fililosh.detachEvent && (amoubib = function(roquapesk, fefeyiep, durowee) { | |
roquapesk.detachEvent('on' + fefeyiep, roquapesk[fefeyiep + durowee]); | |
try { | |
delete roquapesk[fefeyiep + durowee]; | |
} catch (bipedu) { | |
roquapesk[fefeyiep + durowee] = undefined; | |
} | |
}); | |
var liklikay = { | |
bind: lehogi, | |
unbind: amoubib | |
}; | |
lecoxouk.eventie = liklikay; | |
}(this), function(dimetren) { | |
function unukied(quimine) { | |
if (quimine) { | |
if ('string' == typeof hegrisi[quimine]) { | |
return quimine; | |
} | |
quimine = quimine.charAt(0).toUpperCase() + quimine.slice(1); | |
for (var sciebunaf, unukied = 0, baheluek = quonaka.length; | |
baheluek > unukied; | |
unukied++) { | |
if (sciebunaf = quonaka[unukied] + quimine, 'string' == typeof hegrisi[sciebunaf]) { | |
return sciebunaf | |
} | |
; | |
} | |
} | |
} | |
var quonaka = 'Webkit Moz ms Ms O'.split(' '); | |
var hegrisi = document.documentElement.style; | |
dimetren.getStyleProperty = flugopi; | |
}(window), function(bifelu) { | |
function jefato(dokiha) { | |
var nigcockog = parseFloat(dokiha); | |
var jefato = -1 === dokiha.indexOf('%') && !isNaN(nigcockog); | |
return jefato && nigcockog; | |
} | |
function bustapod() { | |
for (var kodidgag = { | |
width: 0, | |
height: 0, | |
innerWidth: 0, | |
innerHeight: 0, | |
outerWidth: 0, | |
outerHeight: 0 | |
}, enaras = 0, inifik = bigufa.length; | |
inifik > enaras; | |
enaras++) { | |
var bustapod = bigufa[enaras]; | |
kodidgag[bustapod] = 0; | |
} | |
return kodidgag; | |
} | |
function besitor(gruerouna) { | |
function nodafop(slihara) { | |
if ('string' == typeof slihara && (slihara = document.querySelector(slihara)), slihara && 'object' == typeof slihara && slihara.nodeType) { | |
var nodafop = dronirem(slihara); | |
if ('none' === nodafop.display) { | |
return mitobas(); | |
} | |
var farome = {}; | |
farome.width = slihara.offsetWidth, farome.height = slihara.offsetHeight; | |
for (var usoyop = farome.isBorderBox = !(!eyarin || !nodafop[eyarin] || 'border-box' !== nodafop[eyarin]), quebiqua = 0, carapag = bigufa.length; | |
carapag > quebiqua; | |
quebiqua++) { | |
var eskstumbof = bigufa[quebiqua]; | |
var dusravie = nodafop[eskstumbof]; | |
dusravie = baloylem(slihara, dusravie); | |
var lecehi = parseFloat(dusravie); | |
farome[eskstumbof] = isNaN(lecehi) ? 0 : lecehi; | |
} | |
var tilbeepik = farome.paddingLeft + farome.paddingRight; | |
var toungbarir = farome.paddingTop + farome.paddingBottom; | |
var amosar = farome.marginLeft + farome.marginRight; | |
var foneli = farome.marginTop + farome.marginBottom; | |
var kounastud = farome.borderLeftWidth + farome.borderRightWidth; | |
var ikmoolit = farome.borderTopWidth + farome.borderBottomWidth; | |
var jaruemgin = usoyop && roocepi; | |
var ulebul = coudirig(nodafop.width); | |
ulebul !== false && (farome.width = ulebul + (jaruemgin ? 0 : tilbeepik + kounastud)); | |
var gicepu = coudirig(nodafop.height); | |
return gicepu !== false && (farome.height = gicepu + (jaruemgin ? 0 : toungbarir + ikmoolit)), farome.innerWidth = farome.width - (tilbeepik + kounastud), farome.innerHeight = farome.height - (toungbarir + ikmoolit), farome.outerWidth = farome.width + amosar, farome.outerHeight = farome.height + foneli, farome; | |
} | |
} | |
function baloylem(quafojo, higimul) { | |
if (requehop || -1 === higimul.indexOf('%')) { | |
return higimul; | |
} | |
var quemame = quafojo.style; | |
var quekuhe = quemame.left; | |
var saruete = quafojo.runtimeStyle; | |
var gahesee = saruete && saruete.left; | |
return gahesee && (saruete.left = quafojo.currentStyle.left), quemame.left = higimul, higimul = quemame.pixelLeft, quemame.left = quekuhe, gahesee && (saruete.left = gahesee), higimul; | |
} | |
var roocepi; | |
var eyarin = gruerouna('boxSizing'); | |
return function() { | |
if (eyarin) { | |
var gejiscem = document.createElement('div'); | |
gejiscem.style.width = '200px', gejiscem.style.padding = '1px 2px 3px 4px', gejiscem.style.borderStyle = 'solid', gejiscem.style.borderWidth = '1px 2px 3px 4px', gejiscem.style[eyarin] = 'border-box'; | |
var taquerib = document.body || document.documentElement; | |
taquerib.appendChild(gejiscem); | |
var gisonif = dronirem(gejiscem); | |
roocepi = 200 === coudirig(gisonif.width), taquerib.removeChild(gejiscem); | |
} | |
}(), besitor; | |
} | |
var requehop = bifelu.getComputedStyle; | |
var dronirem = requehop ? function(onkoroy) { | |
return requehop(onkoroy, null); | |
} : function(nerahe) { | |
return nerahe.currentStyle; | |
}; | |
var bigufa = ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth']; | |
bifelu.getSize = kastosquot(bifelu.getStyleProperty); | |
}(window), function(grisradrer) { | |
/******* draggabilly *******/ | |
var teydifuey = (new Date).getTime(); | |
var gejelo = Math.max(0, 16 - (teydifuey - swokihuf)); | |
var snugresi = grisradrer.setTimeout(function() { | |
sotoyun(teydifuey + gejelo); | |
}, gejelo); | |
return swokihuf = teydifuey + gejelo, snugresi; | |
}, leshique = function(jipumo) { | |
grisradrer.clearTimeout(jipumo); | |
}), grisradrer.Draggabilly = ridafag(grisradrer.classie, grisradrer.EventEmitter, grisradrer.eventie, grisradrer.getStyleProperty, grisradrer.getSize); | |
}(window);{ | |
var Draggabilly = window.Draggabilly; | |
var classie = window.classie; | |
var EventEmitter = window.EventEmitter; | |
var eventie = window.eventie; | |
var getStyleProperty = window.getStyleProperty; | |
var getSize = window.getSize; | |
var Draggabilly2 = window.Draggabilly; | |
window.classie, window.EventEmitter, window.eventie, window.getStyleProperty, window.getSize; | |
}window.Draggabilly = Draggabilly, window.classie = classie, window.EventEmitter = EventEmitter, window.eventie = eventie, window.getStyleProperty = getStyleProperty, window.getSize = getSize, function() { | |
var probWindow = this; | |
var _2 = probWindow._; | |
var EmptyObject = {}; | |
var ArrayProto = Array.prototype; | |
var ObjectProto = Object.prototype; | |
var FunctionProto = Function.prototype; | |
var ArrayPush = ArrayProto.push; | |
var ArraySlice = ArrayProto.slice; | |
var ArrayConcat = ArrayProto.concat; | |
var ObjectToString = ObjectProto.toString; | |
var ObjectHasOwnProperty = ObjectProto.hasOwnProperty; | |
var ArrayForEach = ArrayProto.forEach; | |
var ArrayMap = ArrayProto.map; | |
var ArrayReduce = ArrayProto.reduce; | |
var ArrayReduceRight = ArrayProto.reduceRight; | |
var ArrayFilter = ArrayProto.filter; | |
var ArrayEvery = ArrayProto.every; | |
var ArraySome = ArrayProto.some; | |
var ArrayIndexOf = ArrayProto.indexOf; | |
var ArrayLastIndexOf = ArrayProto.lastIndexOf; | |
var isArray = Array.isArray; | |
var ObjectKeys = Object.keys; | |
var bind = FunctionProto.bind; | |
/******* underscore *******/ | |
_.prototype[pupame] = function() { | |
return itoudkob.call(this, drikidel.apply(this._wrapped, arguments)); | |
}; | |
}), _.extend(_.prototype, { | |
chain: function() { | |
return this._chain = true, this; | |
}, | |
value: function() { | |
return this._wrapped; | |
} | |
}), 'function' == typeof define && define.amd && define('underscore', [], function() { | |
return _; | |
}); | |
}.call(this), window.$k = window.$k || {}, window.$k.config = window.$k.config || {}, window.$k.loaded = true, window.$k.config.serverEnv = 'prod', window.$k.config.clientEnv = 'angular', jQuery(document).ready(function() { | |
var fleklugouch = jQuery('body')[0]; | |
var jidolo = jQuery('#Kimonify')[0]; | |
if (!(fleklugouch && jidolo && jQuery.contains(fleklugouch, jidolo))) { | |
/******* angular 1.2.17 *******/ | |
cruquejo.angular.bootstrap && console.log('WARNING: Tried to load angular more than once.'), biltasul(), cuefeyas(pekanonk), baposi(mojequa).ready(function() { | |
obalieng(mojequa, grifuquel); | |
}); | |
}(window, document), !angular.$$csp() && angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}</style>'), function(gateku, firuree, necido) { | |
'use strict'; | |
firuree.module('ngAnimate', ['ng']).factory('$$animateReflow', ['$$rAF', '$document', function(rekayan) { | |
return function(mapadi) { | |
return rekayan(function() { | |
mapadi(); | |
}); | |
}; | |
}]).config(['$provide', '$animateProvider', function(ticedoo, jotiflo) { | |
/******* ng-animate 1.2.17 *******/ | |
var giquosha = kihecod('removeClass', kepemin, phikeku(jasiki, '-remove'), function(diblepa) { | |
var boubiscen = kepemin.attr('class'); | |
return kepemin.removeClass(jasiki), diblepa = diblepa(), kepemin.attr('class', boubiscen), diblepa; | |
}); | |
return giquosha ? (ibalued(kepemin, function() { | |
lufrigu(kepemin, jasiki), dahari(kepemin), idigon(); | |
}), giquosha) : (idigon(), void 0); | |
}, | |
removeClass: function(goyakest, soubica, soreepun) { | |
return somubraf('removeClass', goyakest, phikeku(soubica, '-remove'), soreepun); | |
} | |
}; | |
}]); | |
}]); | |
}(window, window.angular), angular.module('Kimono', ['ngAnimate']), angular.module('Kimono').factory('Collections', ['Regex', 'Utils', 'Datatypes', 'Common', function(Regex, Utils, Datatypes, Common) { | |
var nukunkul = new function() { | |
this.getEpSelectorComponent = function(gayomoo) { | |
var rirejed = gayomoo.selectorObjects[0].selector.split(' > '); | |
return gayomoo.context.ancestorCounter > rirejed.length - 1 ? '' : rirejed[rirejed.length - 1 - gayomoo.context.ancestorCounter]; | |
}; | |
var slobunan = function(duzjeyus) { | |
var osjonceg = { | |
text: '' | |
}; | |
for (attribute in duzjeyus.context.attributes) { | |
if (duzjeyus.context.attributes.hasOwnProperty(attribute)) { | |
var sopile = duzjeyus.context.attributes[attribute]; | |
('true' == sopile.value || sopile.value === true) && (osjonceg[attribute] = ''); | |
} | |
} | |
return console.log(osjonceg), Object.keys(osjonceg).length > 1 ? osjonceg : ''; | |
}; | |
this.updateDatalists = function(sushodo) { | |
for (var quequobab = 0; | |
quequobab < sushodo.length; | |
quequobab++) { | |
var geneca = sushodo[quequobab]; | |
if (1 == geneca.length) { | |
var afemood = geneca[0]; | |
if (afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0, afemood.selectorObjects[0] && afemood.selectorObjects[0].selector) { | |
for (var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector()), mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
var tulidup = kacrido[mumogue]; | |
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++); | |
} | |
} | |
} else { | |
for (var turuqui = 'association', titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
if ('pattern' == geneca[titushut].context.associationType) { | |
turuqui = 'pattern'; | |
break; | |
} | |
if ('forced' == geneca[titushut].context.associationType) { | |
turuqui = 'forced'; | |
break; | |
} | |
if ('single' == geneca[titushut].context.associationType) { | |
turuqui = 'single'; | |
break; | |
} | |
} | |
if ('association' == turuqui) { | |
for (var raquetu = [], tejuho = 0, boquethu = 99999, titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0; | |
var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector()); | |
if (raquetu[titushut] = [], afemood.context.forceAssociation) { | |
for (var mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
var tulidup = kacrido[mumogue]; | |
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++); | |
} | |
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length); | |
} else { | |
for (var mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
Regex.testElForRegex(kacrido[mumogue], afemood) && raquetu[titushut].push({ | |
el: kacrido[mumogue], | |
pairedOff: false, | |
index: raquetu[titushut].length | |
}); | |
} | |
raquetu[titushut].length > tejuho && (tejuho = raquetu[titushut].length), raquetu[titushut].length < boquethu && (boquethu = raquetu[titushut].length); | |
} | |
} | |
for (var esemsep = [], titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
if (!geneca[titushut].context.forceAssociation) { | |
for (var mumogue = 0; | |
mumogue < raquetu[titushut].length; | |
mumogue++) { | |
if (!raquetu[titushut][mumogue].pairedOff) { | |
esemsep.push({ | |
els: [], | |
data: [], | |
sum: 0 | |
}), esemsep[esemsep.length - 1].els[titushut] = raquetu[titushut][mumogue], esemsep[esemsep.length - 1].data[titushut] = klakupes(raquetu[titushut][mumogue].el, geneca[titushut]), esemsep[esemsep.length - 1].sum += mumogue + 1, raquetu[titushut][mumogue].pairedOff = true; | |
for (var jostuser = raquetu[titushut][mumogue].el, nopisud = geneca[titushut].context.ancestorCounters ? geneca[titushut].context.ancestorCounters[geneca[titushut].getSelectorObjectIndexForEl(jostuser)] : geneca[titushut].context.ancestorCounter, wuphima = 0; | |
nopisud > wuphima; | |
wuphima++) { | |
jostuser = jostuser.parentNode; | |
} | |
for (var suzoda = titushut + 1; | |
suzoda < geneca.length; | |
suzoda++) { | |
if (!geneca[suzoda].context.forceAssociation) { | |
esemsep[esemsep.length - 1].data[suzoda] = []; | |
for (var kanueto = 0; | |
kanueto < raquetu[suzoda].length; | |
kanueto++) { | |
if (!raquetu[suzoda][kanueto].pairedOff) { | |
for (var inkoshfueg = raquetu[suzoda][kanueto].el, nopisud = geneca[suzoda].context.ancestorCounters ? geneca[suzoda].context.ancestorCounters[geneca[suzoda].getSelectorObjectIndexForEl(inkoshfueg)] : geneca[suzoda].context.ancestorCounter, wuphima = 0; | |
nopisud > wuphima; | |
wuphima++) { | |
inkoshfueg = inkoshfueg.parentNode; | |
} | |
jostuser === inkoshfueg && (esemsep[esemsep.length - 1].els[suzoda] = raquetu[suzoda][kanueto], esemsep[esemsep.length - 1].data[suzoda].push(klakupes(raquetu[suzoda][kanueto].el, geneca[suzoda])), esemsep[esemsep.length - 1].sum += kanueto + 1, raquetu[suzoda][kanueto].pairedOff = true); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
for (var mumogue = 0; | |
mumogue < esemsep.length; | |
mumogue++) { | |
for (var musudklien = 0, titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
esemsep[mumogue].data[titushut] && 0 != esemsep[mumogue].data[titushut].length || (esemsep[mumogue].data[titushut] = slobunan(geneca[titushut]), musudklien++); | |
} | |
esemsep[mumogue].avg = esemsep[mumogue].sum / geneca.length; | |
} | |
esemsep.sort(function(diguma, kajotmip) { | |
return diguma.avg < kajotmip.avg ? -1 : diguma.avg > kajotmip.avg ? 1 : 0; | |
}); | |
for (var mumogue = 0; | |
mumogue < esemsep.length; | |
mumogue++) { | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
1 == esemsep[mumogue].data[titushut].length ? esemsep[mumogue].data[titushut] = esemsep[mumogue].data[titushut][0] : esemsep[mumogue].data[titushut].length > 1 && (afemood.context.delta -= esemsep[mumogue].data[titushut].length - 1), afemood.datalist.push(esemsep[mumogue].data[titushut]), esemsep[mumogue].data[titushut] == slobunan(geneca[titushut]) && afemood.context.delta++, esemsep[mumogue].els[titushut] && 'kim-table-normalizer' == esemsep[mumogue].els[titushut].el.className && afemood.context.numberOfTableNormalizers++; | |
} | |
} | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
for (var afemood = geneca[titushut], mumogue = boquethu; | |
tejuho > mumogue; | |
mumogue++) { | |
afemood.datalist[mumogue] == undefined && (afemood.datalist[mumogue] = slobunan(afemood), afemood.context.delta++) | |
} | |
} | |
} else if ('pattern' == turuqui) { | |
geneca.lowestStart = 999999, geneca.highestEnd = 0; | |
for (var tejuho = 0, boquethu = 99999, titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0; | |
var kacrido = Utils.querySelectorAll(afemood.selectorObjects[0].selector); | |
if (afemood.context.forceAssociation) { | |
for (var mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
var tulidup = kacrido[mumogue]; | |
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++); | |
} | |
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length); | |
} else { | |
for (var mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
if (Regex.testElForRegex(kacrido[mumogue], afemood)) { | |
for (var miphugu = kacrido[mumogue], wuphima = 0; | |
wuphima < afemood.context.ancestorCounter; | |
wuphima++) { | |
miphugu = miphugu.parentNode; | |
} | |
var istupal = jQuery(miphugu).index(); | |
afemood.context.startIndex || (afemood.context.startIndex = istupal), afemood.startIndex < geneca.lowestStart && (geneca.lowestStart = afemood.startIndex), istupal > geneca.highestEnd && (geneca.highestEnd = istupal); | |
} | |
} | |
} | |
} | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
if (!afemood.context.forceAssociation) { | |
for (var huhuca, kacrido = Utils.querySelectorAll(afemood.selectorObjects[0].selector), chumema = 0, egdubgest = 0, jechpintek = true, mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
if (Regex.testElForRegex(kacrido[mumogue], afemood)) { | |
for (var miphugu = kacrido[mumogue], suzoda = 0; | |
suzoda < afemood.context.ancestorCounter; | |
suzoda++) { | |
miphugu = miphugu.parentNode; | |
} | |
var istupal = jQuery(miphugu).index() + chumema; | |
if (jechpintek) { | |
var otbofit = 0; | |
jechpintek = false; | |
} else { | |
if (huhuca >= istupal) { | |
var lufaka = huhuca - egdubgest + 1; | |
chumema += lufaka, istupal += lufaka, egdubgest = huhuca + 1; | |
} | |
var otbofit = istupal - huhuca - afemood.context.patternSteps; | |
} | |
afemood.context.patternSteps > 0 && (otbofit /= afemood.context.patternSteps); | |
for (var kanueto = 0; | |
otbofit > kanueto; | |
kanueto++) { | |
afemood.datalist.push(slobunan(afemood)), afemood.context.delta++; | |
} | |
huhuca = istupal, 'kim-table-normalizer' == kacrido[mumogue].className && afemood.context.numberOfTableNormalizers++, afemood.datalist.push(klakupes(kacrido[mumogue], afemood)); | |
} | |
} | |
afemood.context.endIndex = istupal - chumema; | |
} | |
} | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
if (!afemood.context.forceAssociation) { | |
if (afemood.context.startIndex - geneca.lowestStart > afemood.context.patternSteps) { | |
var gepone = parseInt((afemood.context.startIndex - geneca.lowestStart) / afemood.context.patternSteps); | |
} else if (geneca.highestEnd - afemood.context.endIndex > afemood.context.patternSteps) { | |
var nimazi = parseInt((geneca.highestEnd - afemood.context.endIndex) / afemood.context.patternSteps); | |
} | |
for (var wuphima = 0; | |
gepone > wuphima; | |
wuphima++) { | |
afemood.datalist.unshift(slobunan(afemood)), afemood.context.delta++; | |
} | |
for (var wuphima = 0; | |
nimazi > wuphima; | |
wuphima++) { | |
afemood.datalist.push(slobunan(afemood)), afemood.context.delta++; | |
} | |
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length); | |
} | |
} | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
var stenbadoob = afemood.getCombinedSelector(1); | |
if ('' != stenbadoob) { | |
for (var kacrido = Utils.querySelectorAll(stenbadoob), mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
var tulidup = kacrido[mumogue]; | |
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++); | |
} | |
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length); | |
} | |
} | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
for (var afemood = geneca[titushut], mumogue = boquethu; | |
tejuho > mumogue; | |
mumogue++) { | |
afemood.datalist[mumogue] == undefined && (afemood.datalist[mumogue] = slobunan(afemood), afemood.context.delta++) | |
} | |
} | |
} else if ('forced' == turuqui) { | |
for (var tejuho = 0, boquethu = 99999, titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0; | |
for (var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector()), mumogue = 0; | |
mumogue < kacrido.length; | |
mumogue++) { | |
var tulidup = kacrido[mumogue]; | |
Regex.testElForRegex(tulidup, afemood) && (afemood.datalist.push(klakupes(tulidup, afemood)), 'kim-table-normalizer' == tulidup.className && afemood.context.numberOfTableNormalizers++); | |
} | |
afemood.datalist.length > tejuho && (tejuho = afemood.datalist.length), afemood.datalist.length < boquethu && (boquethu = afemood.datalist.length); | |
} | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
for (var afemood = geneca[titushut], mumogue = boquethu; | |
tejuho > mumogue; | |
mumogue++) { | |
afemood.datalist[mumogue] || (afemood.datalist[mumogue] = slobunan(afemood), afemood.context.delta++) | |
} | |
} | |
} else { | |
for (var titushut = 0; | |
titushut < geneca.length; | |
titushut++) { | |
var afemood = geneca[titushut]; | |
afemood.datalist = [], afemood.context.delta = 0, afemood.context.numberOfTableNormalizers = 0; | |
var kacrido = Utils.querySelectorAll(afemood.getCombinedSelector()); | |
kacrido.length > 0 && (afemood.datalist[0] = klakupes(kacrido[0], afemood)); | |
} | |
} | |
} | |
} | |
}, this.checkAssociation = function(niposo, sodumum, sutidhing) { | |
if ('' == niposo.selectorObjects[0].selector || '' == sodumum.selectorObjects[0].selector) { | |
return false; | |
} | |
if (sodumum.context.forceAssociation && sutidhing == sodumum.context.collection) { | |
return { | |
type: niposo.context.associationType || 'forced', | |
ancestorCounter1: niposo.context.ancestorCounter || 0, | |
ancestorCounter2: niposo.context.ancestorCounter || 0, | |
pattern: niposo.context.patternSteps || 1 | |
}; | |
} | |
if (niposo.context.forceAssociation && sutidhing == niposo |