|
|
@ -1,8 +1,6 @@ |
|
|
let JsDiff = require('diff'); |
|
|
let JsDiff = require("diff"); |
|
|
|
|
|
|
|
|
function isElementInViewport (el) { |
|
|
function isElementInViewport(el) { |
|
|
|
|
|
|
|
|
//special bonus for those using jQuery
|
|
|
|
|
|
if (typeof jQuery === "function" && el instanceof jQuery) { |
|
|
if (typeof jQuery === "function" && el instanceof jQuery) { |
|
|
el = el[0]; |
|
|
el = el[0]; |
|
|
} |
|
|
} |
|
|
@ -12,20 +10,19 @@ function isElementInViewport (el) { |
|
|
return ( |
|
|
return ( |
|
|
rect.top >= 0 && |
|
|
rect.top >= 0 && |
|
|
rect.left >= 0 && |
|
|
rect.left >= 0 && |
|
|
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /*or $(window).height() */ |
|
|
rect.bottom <= |
|
|
rect.right <= (window.innerWidth || document.documentElement.clientWidth) /*or $(window).width() */ |
|
|
(window.innerHeight || document.documentElement.clientHeight) && |
|
|
|
|
|
rect.right <= (window.innerWidth || document.documentElement.clientWidth) |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function textoMultiVigente(item, diff) { |
|
|
function textoMultiVigente(item, diff) { |
|
|
var elv = null; |
|
|
var elv = null; |
|
|
var ldpts = $(".dptt") |
|
|
var ldpts = $(".dptt"); |
|
|
for (var i = 0; i < ldpts.length; i++) { |
|
|
for (var i = 0; i < ldpts.length; i++) { |
|
|
if ($(ldpts[i]).hasClass('displaynone')) |
|
|
if ($(ldpts[i]).hasClass("displaynone")) continue; |
|
|
continue; |
|
|
if (isElementInViewport(ldpts[i])) { |
|
|
if (isElementInViewport( ldpts[i])) { |
|
|
if (i + 1 < ldpts.length) elv = ldpts[i + 1]; |
|
|
if (i+1 < ldpts.length) |
|
|
|
|
|
elv = ldpts[i+1]; |
|
|
|
|
|
else { |
|
|
else { |
|
|
elv = ldpts[i]; |
|
|
elv = ldpts[i]; |
|
|
} |
|
|
} |
|
|
@ -33,8 +30,8 @@ function textoMultiVigente(item, diff) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$(".cp .tipo-vigencias a").removeClass("selected") |
|
|
$(".cp .tipo-vigencias a").removeClass("selected"); |
|
|
$(item).addClass("selected") |
|
|
$(item).addClass("selected"); |
|
|
$(".dptt.desativado").removeClass("displaynone"); |
|
|
$(".dptt.desativado").removeClass("displaynone"); |
|
|
$(".dtxt").removeClass("displaynone"); |
|
|
$(".dtxt").removeClass("displaynone"); |
|
|
$(".dtxt.diff").remove(); |
|
|
$(".dtxt.diff").remove(); |
|
|
@ -42,50 +39,53 @@ function textoMultiVigente(item, diff) { |
|
|
|
|
|
|
|
|
if (diff) { |
|
|
if (diff) { |
|
|
$(".dtxt[id^='da'").each(function() { |
|
|
$(".dtxt[id^='da'").each(function() { |
|
|
|
|
|
if ( |
|
|
if ( $(this).html().search( /<\/\w+>/g ) > 0) |
|
|
$(this) |
|
|
|
|
|
.html() |
|
|
|
|
|
.search(/<\/\w+>/g) > 0 |
|
|
|
|
|
) |
|
|
return; |
|
|
return; |
|
|
|
|
|
|
|
|
var pk = $(this).attr('pk') |
|
|
var pk = $(this).attr("pk"); |
|
|
var pks = $(this).attr('pks') |
|
|
var pks = $(this).attr("pks"); |
|
|
|
|
|
|
|
|
var a = $('#d'+pks).contents().filter(function () { |
|
|
var a = $("#d" + pks) |
|
|
|
|
|
.contents() |
|
|
|
|
|
.filter(function() { |
|
|
return this.nodeType === Node.TEXT_NODE; |
|
|
return this.nodeType === Node.TEXT_NODE; |
|
|
}); |
|
|
}); |
|
|
var b = $('#da'+pk).contents().filter(function () { |
|
|
var b = $("#da" + pk) |
|
|
|
|
|
.contents() |
|
|
|
|
|
.filter(function() { |
|
|
return this.nodeType === Node.TEXT_NODE; |
|
|
return this.nodeType === Node.TEXT_NODE; |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var diff = JsDiff.diffWordsWithSpace($(a).text(), $(b).text()); |
|
|
var diff = JsDiff.diffWordsWithSpace($(a).text(), $(b).text()); |
|
|
|
|
|
|
|
|
if (diff.length > 0) { |
|
|
if (diff.length > 0) { |
|
|
$('#d'+pks).closest('.desativado').addClass("displaynone"); |
|
|
$("#d" + pks) |
|
|
|
|
|
.closest(".desativado") |
|
|
|
|
|
.addClass("displaynone"); |
|
|
var clone = $('#da'+pk).clone(); |
|
|
|
|
|
$('#da'+pk).after( clone ); |
|
|
|
|
|
$('#da'+pk).addClass('displaynone'); |
|
|
|
|
|
$(clone).addClass('diff').html(''); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var clone = $("#da" + pk).clone(); |
|
|
|
|
|
$("#da" + pk).after(clone); |
|
|
|
|
|
$("#da" + pk).addClass("displaynone"); |
|
|
|
|
|
$(clone) |
|
|
|
|
|
.addClass("diff") |
|
|
|
|
|
.html(""); |
|
|
|
|
|
|
|
|
diff.forEach(function(part){ |
|
|
diff.forEach(function(part) { |
|
|
var color = part.added ? '#018' : |
|
|
//var color = part.added ? "#018" : part.removed ? "#faa" : "";
|
|
|
part.removed ? '#faa' : ''; |
|
|
|
|
|
|
|
|
|
|
|
var span = document.createElement('span'); |
|
|
var span = document.createElement("span"); |
|
|
|
|
|
|
|
|
var value = part.value; |
|
|
var value = part.value; |
|
|
|
|
|
|
|
|
if (part.removed) { |
|
|
if (part.removed) { |
|
|
$(span).addClass('desativado') |
|
|
$(span).addClass("desativado"); |
|
|
value += ' '; |
|
|
value += " "; |
|
|
} |
|
|
} else if (part.added) { |
|
|
else if (part.added) { |
|
|
$(span).addClass("added"); |
|
|
$(span).addClass('added') |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
span.appendChild(document.createTextNode(value)); |
|
|
span.appendChild(document.createTextNode(value)); |
|
|
@ -98,25 +98,28 @@ function textoMultiVigente(item, diff) { |
|
|
|
|
|
|
|
|
if (elv) { |
|
|
if (elv) { |
|
|
try { |
|
|
try { |
|
|
$('html, body').animate({ |
|
|
$("html, body").animate( |
|
|
scrollTop: $(elv).parent().offset().top - 60 |
|
|
{ |
|
|
}, 0); |
|
|
scrollTop: |
|
|
} |
|
|
$(elv) |
|
|
catch(err) { |
|
|
.parent() |
|
|
|
|
|
.offset().top - 60 |
|
|
|
|
|
}, |
|
|
|
|
|
0 |
|
|
|
|
|
); |
|
|
|
|
|
} catch (err) { |
|
|
|
|
|
console.log(err); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function textoVigente(item, link) { |
|
|
function textoVigente(item, link) { |
|
|
var elv = null; |
|
|
var elv = null; |
|
|
var ldpts = $(".dptt") |
|
|
var ldpts = $(".dptt"); |
|
|
for (var i = 0; i < ldpts.length; i++) { |
|
|
for (var i = 0; i < ldpts.length; i++) { |
|
|
if ($(ldpts[i]).hasClass('displaynone')) |
|
|
if ($(ldpts[i]).hasClass("displaynone")) continue; |
|
|
continue; |
|
|
if (isElementInViewport(ldpts[i])) { |
|
|
if (isElementInViewport( ldpts[i])) { |
|
|
if (i + 1 < ldpts.length) elv = ldpts[i + 1]; |
|
|
if (i+1 < ldpts.length) |
|
|
|
|
|
elv = ldpts[i+1]; |
|
|
|
|
|
else { |
|
|
else { |
|
|
elv = ldpts[i]; |
|
|
elv = ldpts[i]; |
|
|
} |
|
|
} |
|
|
@ -124,21 +127,26 @@ function textoVigente(item, link) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$(".cp .tipo-vigencias a").removeClass("selected") |
|
|
$(".cp .tipo-vigencias a").removeClass("selected"); |
|
|
$(item).addClass("selected") |
|
|
$(item).addClass("selected"); |
|
|
|
|
|
|
|
|
$(".dptt.desativado").addClass("displaynone"); |
|
|
$(".dptt.desativado").addClass("displaynone"); |
|
|
$(".nota-alteracao").removeClass("displaynone"); |
|
|
$(".nota-alteracao").removeClass("displaynone"); |
|
|
if (!link) |
|
|
if (!link) $(".nota-alteracao").addClass("displaynone"); |
|
|
$(".nota-alteracao").addClass("displaynone"); |
|
|
|
|
|
|
|
|
|
|
|
if (elv) { |
|
|
if (elv) { |
|
|
try { |
|
|
try { |
|
|
$('html, body').animate({ |
|
|
$("html, body").animate( |
|
|
scrollTop: $(elv).parent().offset().top - 60 |
|
|
{ |
|
|
}, 0); |
|
|
scrollTop: |
|
|
} |
|
|
$(elv) |
|
|
catch(err) { |
|
|
.parent() |
|
|
|
|
|
.offset().top - 60 |
|
|
|
|
|
}, |
|
|
|
|
|
0 |
|
|
|
|
|
); |
|
|
|
|
|
} catch (err) { |
|
|
|
|
|
console.log(err); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -147,4 +155,4 @@ export default { |
|
|
isElementInViewport, |
|
|
isElementInViewport, |
|
|
textoMultiVigente, |
|
|
textoMultiVigente, |
|
|
textoVigente |
|
|
textoVigente |
|
|
} |
|
|
}; |
|
|
|