You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
963 lines
28 KiB
JavaScript
963 lines
28 KiB
JavaScript
class ControlTable {
|
|
constructor(a) {
|
|
this.table = a
|
|
this.dataRow = [];
|
|
}
|
|
|
|
ai(name) {
|
|
this.dataRow.push(` \`${name}\` INT(11) AUTO_INCREMENT PRIMARY KEY `)
|
|
}
|
|
|
|
char(name, length, def) {
|
|
this.dataRow.push(` \`${name}\` VARCHAR(${length}) NOT NULL DEFAULT '${def}' `)
|
|
}
|
|
|
|
text(name) {
|
|
this.dataRow.push(` \`${name}\` TEXT `)
|
|
}
|
|
|
|
longtext(name) {
|
|
this.dataRow.push(` \`${name}\` LONGTEXT `)
|
|
}
|
|
|
|
timecreate(name) {
|
|
this.dataRow.push(` \`${name}\` DATETIME NULL DEFAULT CURRENT_TIMESTAMP `)
|
|
}
|
|
|
|
timeupdate(name) {
|
|
this.dataRow.push(` \`${name}\` DATETIME NULL DEFAULT CURRENT_TIMESTAMP `)
|
|
}
|
|
|
|
cek() {
|
|
query(`SELECT * FROM \`${this.table}\``, function (a) {
|
|
console.log(a)
|
|
})
|
|
}
|
|
|
|
createTable(func) {
|
|
var createTable = `CREATE TABLE \`${this.table}\` (
|
|
${this.dataRow.join(", \n ")}
|
|
)
|
|
`;
|
|
query(createTable, function (a) {
|
|
func(a)
|
|
})
|
|
|
|
}
|
|
}
|
|
|
|
function compare( a, b ) {
|
|
if ( a.last_nom < b.last_nom ){
|
|
return -1;
|
|
}
|
|
if ( a.last_nom > b.last_nom ){
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
Array.prototype.dinamicSort = function(property){
|
|
var sortOrder = 1;
|
|
if(property[0] === "-") {
|
|
sortOrder = -1;
|
|
property = property.substr(1);
|
|
}
|
|
return function (a,b) {
|
|
/* next line works with strings and numbers,
|
|
* and you may want to customize it to your needs
|
|
*/
|
|
var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
|
|
return result * sortOrder;
|
|
}
|
|
};
|
|
|
|
Number.prototype.pad = function(length) {
|
|
var s = this;
|
|
var number = s.valueOf()
|
|
var str = '' + number;
|
|
while (str.length < length) {
|
|
str = '0' + str;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
Array.prototype.dinamicSortMultiple = function(){
|
|
/*
|
|
* save the arguments object as it will be overwritten
|
|
* note that arguments object is an array-like object
|
|
* consisting of the names of the properties to sort by
|
|
*/
|
|
var dynamicSort = function(property){
|
|
var sortOrder = 1;
|
|
if(property[0] === "-") {
|
|
sortOrder = -1;
|
|
property = property.substr(1);
|
|
}
|
|
return function (a,b) {
|
|
/* next line works with strings and numbers,
|
|
* and you may want to customize it to your needs
|
|
*/
|
|
var result = (a[property] < b[property]) ? -1 : (a[property] > b[property]) ? 1 : 0;
|
|
return result * sortOrder;
|
|
}
|
|
};
|
|
var props = arguments;
|
|
return function (obj1, obj2) {
|
|
var i = 0, result = 0, numberOfProperties = props.length;
|
|
/* try getting a different result from 0 (equal)
|
|
* as long as we have extra properties to compare
|
|
*/
|
|
while(result === 0 && i < numberOfProperties) {
|
|
result = dynamicSort(props[i])(obj1, obj2);
|
|
i++;
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
|
|
Array.prototype.sortArrayObjectAsc = function(param){
|
|
var arr = this;
|
|
var dinamicFunc = this.dinamicSort;
|
|
return arr.sort(dinamicFunc(param));
|
|
}
|
|
|
|
Array.prototype.sortArrayObjectMultiple = function(){
|
|
var arr = this;
|
|
var props = arguments;
|
|
var dynamicSortMultiple = this.dinamicSortMultiple;
|
|
return arr.sort(dynamicSortMultiple(...props));
|
|
}
|
|
|
|
Array.prototype.sortArrayObjectDesc = function(param){
|
|
var arr = this;
|
|
var dinamicFunc = this.dinamicSort;
|
|
return arr.sort(dinamicFunc('-'+param));
|
|
}
|
|
|
|
globalThis.ArrayNumberExample = [0,1,2,3,4,5,6,7,8,9];
|
|
|
|
Array.prototype.asc = function(param){
|
|
return this.sort();
|
|
}
|
|
|
|
|
|
Array.prototype.desc = function(param){
|
|
return this.reverse();
|
|
}
|
|
|
|
globalThis.ArrayObjectExample = [
|
|
{Name: "Name", Surname: "Surname"},
|
|
{Name:"AAA", Surname:"ZZZ"},
|
|
{Name: "Name", Surname: "AAA"}
|
|
];
|
|
|
|
String.prototype.number = function (fn = false) {
|
|
var s = this;
|
|
if (fn == 2) {
|
|
s = s.replace(/\./g, ',');
|
|
}
|
|
if (fn != 2) {
|
|
s = s.replace(/[^-,\d]/g, '');
|
|
}
|
|
if (s == null) {
|
|
s = '0';
|
|
}
|
|
if (fn == false) {
|
|
if (s == '-') {
|
|
return '-';
|
|
} else if (s == '') {
|
|
return '';
|
|
} else {
|
|
return Number(s.replace(/\./g, '').replace(/\,/g, '.'));
|
|
}
|
|
} else if (fn == true) {
|
|
return s.replace(/\./g, '');
|
|
} else if (fn == 2) {
|
|
return Number(s.replace(/\,/g, '.'));
|
|
} else {
|
|
return Number(s.replace(/\./g, '').replace(/\,/g, '.'));
|
|
}
|
|
}
|
|
|
|
Array.prototype.count = function (a, val) {
|
|
var t = this
|
|
if(a != undefined && val != undefined){
|
|
return t.filter(function(dat,x){
|
|
if(dat[a] == val){
|
|
return dat;
|
|
}
|
|
}).length
|
|
}else{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
Array.prototype.row = function (a, val) {
|
|
var t = this
|
|
if(a != undefined && val != undefined){
|
|
var g = t.filter(function(dat,x){
|
|
if(dat[a] == val){
|
|
return dat;
|
|
}
|
|
})
|
|
if(g.length > 0){
|
|
return g[0];
|
|
}else{
|
|
return g;
|
|
}
|
|
}else{
|
|
return t
|
|
}
|
|
}
|
|
|
|
Array.prototype.del = function (a, val) {
|
|
var t = this
|
|
if(a != undefined && val != undefined){
|
|
return t.filter(function(dat,x){
|
|
if(dat[a] != val){
|
|
return dat;
|
|
}
|
|
})
|
|
}else{
|
|
return t
|
|
}
|
|
}
|
|
|
|
String.prototype.currency = function(){
|
|
var s = this;
|
|
s = s.replace(/\,/g, '.');
|
|
if(s != ''){
|
|
s = this.formatRupiah();
|
|
}
|
|
return s;
|
|
}
|
|
|
|
String.prototype.lastDotToComa = function(){
|
|
var s = this;
|
|
var l = this.length - 1;
|
|
var sl = s.slice(0, l);
|
|
if(s[l] == '.'){
|
|
return sl+',';
|
|
}else{
|
|
return s+'';
|
|
}
|
|
}
|
|
|
|
window.ifnull = function(a, b){
|
|
if(a == null){
|
|
return b;
|
|
}else{
|
|
return a;
|
|
}
|
|
}
|
|
|
|
window.nullif = function(a, b){
|
|
if(a == b){
|
|
return null;
|
|
}else{
|
|
return a;
|
|
}
|
|
}
|
|
|
|
String.prototype.capitalize = function(){
|
|
var str = this;
|
|
return str.toLowerCase().replace(/(?:^|\s|["'([{])+\S/g, match => match.toUpperCase())
|
|
}
|
|
|
|
String.prototype.Upper = function () {
|
|
var str = this;
|
|
return str.toLowerCase().replace(/(?:^|\s|["'([{])+\S/g, match => match.toUpperCase())
|
|
}
|
|
|
|
|
|
String.prototype.formatRupiah = function(){
|
|
var angka = this;
|
|
if(angka == null || angka == ''){
|
|
angka = 0;
|
|
angka = angka.toFixed(2).replace(/\./g, ',');
|
|
}
|
|
var negative = '';
|
|
if (angka[0] == '-') {
|
|
negative = '-';
|
|
}
|
|
var angka = angka.replace(/\./g, ',')
|
|
var prefix;
|
|
var number_string = angka.replace(/[^,\d]/g, '').toString(),
|
|
split = number_string.split(','),
|
|
sisa = split[0].length % 3,
|
|
rupiah = split[0].substr(0, sisa),
|
|
ribuan = split[0].substr(sisa).match(/\d{3}/gi);
|
|
|
|
// tambahkan titik jika yang di input sudah menjadi angka ribuan
|
|
if(ribuan){
|
|
var separator = sisa ? '.' : '';
|
|
rupiah += separator + ribuan.join('.');
|
|
}
|
|
|
|
rupiah = split[1] != undefined ? rupiah + ',' + split[1] : rupiah;
|
|
return prefix == undefined ? negative+rupiah : (rupiah ? '' + negative+rupiah : '');
|
|
}
|
|
|
|
Number.prototype= function(a, c = 1){
|
|
var s = this;
|
|
if(s == null){
|
|
s = 0;
|
|
}
|
|
var num = s.valueOf().toFixed(a).formatRupiah();
|
|
if(c == 2){
|
|
num = num.replace(/\./g, ',');
|
|
}
|
|
return num;
|
|
}
|
|
|
|
String.prototype.t2b = function(){
|
|
var string = JSON.stringify(this);
|
|
return string.split('').map(function (char) {
|
|
return char.charCodeAt(0).toString(2);
|
|
}).join('2');
|
|
}
|
|
|
|
String.prototype.b2t = function(){
|
|
var array = this.split("2");
|
|
var pop = array.map(code => String.fromCharCode(parseInt(code, 2))).join("");
|
|
return JSON.parse(pop);
|
|
}
|
|
|
|
String.prototype.left = function(number){
|
|
return this.substring(0,number);
|
|
}
|
|
|
|
Array.prototype.t2b = function(){
|
|
var string = JSON.stringify(this);
|
|
return string.split('').map(function (char) {
|
|
return char.charCodeAt(0).toString(2);
|
|
}).join('2');
|
|
}
|
|
|
|
Array.prototype.duplikasi = function(name){
|
|
var arr = this.sortArrayObjectAsc(name);
|
|
var cek = null;
|
|
var baru = [];
|
|
arr.forEach(function(d,i){
|
|
if(cek != d[name]){
|
|
baru.push(d);
|
|
cek = d[name];
|
|
}
|
|
})
|
|
return baru;
|
|
}
|
|
|
|
window.t2b = function(){
|
|
var string = this.toString();
|
|
return string.split('').map(function (char) {
|
|
return char.charCodeAt(0).toString(2);
|
|
}).join('2');
|
|
};
|
|
|
|
String.prototype.replaceAll = function (find, replace) {
|
|
var str = this;
|
|
return str.replace(new RegExp(find.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'g'), replace);
|
|
};
|
|
|
|
String.prototype.textonly = function () {
|
|
return this.replace(/[^a-zA-Z]+/g, '');
|
|
};
|
|
|
|
Array.prototype.search = function(search = ''){
|
|
|
|
if(typeof search == 'number'){
|
|
search = search.toString().toLowerCase();
|
|
}else{
|
|
search = search.toLowerCase();
|
|
}
|
|
|
|
var data = this;
|
|
return data.filter(function(dat){
|
|
if(typeof dat == 'object'){
|
|
var f = Object.keys(dat);
|
|
var numcek = 0;
|
|
for(var t of f){
|
|
var g = dat[t];
|
|
if(g != null){
|
|
if(typeof g == 'number'){
|
|
g = g.toString().toLowerCase();
|
|
}else{
|
|
g = g.toLowerCase();
|
|
}
|
|
if(numcek == 0){
|
|
if(g.indexOf(search) != -1){
|
|
numcek = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(numcek == 1){
|
|
return dat;
|
|
}
|
|
}else{
|
|
if(dat != null){
|
|
if(typeof dat == 'number'){
|
|
var dats = dat.toString().toLowerCase();
|
|
if(dats.indexOf(search) != -1){
|
|
return dat
|
|
}
|
|
}else{
|
|
if(dat.indexOf(search) != -1){
|
|
return dat
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
Array.prototype.cond = function(search = '', name = ''){
|
|
if(search != ''){
|
|
if(typeof search == 'number'){
|
|
search = search.toString().toLowerCase();
|
|
}else{
|
|
search = search.toLowerCase();
|
|
}
|
|
|
|
var data = this;
|
|
return data.filter(function(dat){
|
|
if(typeof dat == 'object'){
|
|
var g = dat[name];
|
|
var numcek = 0;
|
|
if(g != null){
|
|
if(typeof g == 'number'){
|
|
g = g.toString().toLowerCase();
|
|
}else{
|
|
g = g.toLowerCase();
|
|
}
|
|
if(numcek == 0){
|
|
if(g == search){
|
|
numcek = 1;
|
|
}
|
|
}
|
|
}
|
|
if(numcek == 1){
|
|
return dat;
|
|
}
|
|
}else{
|
|
if(dat != null){
|
|
if(typeof dat == 'number'){
|
|
var dats = dat.toString().toLowerCase();
|
|
if(dats == search){
|
|
return dat
|
|
}
|
|
}else{
|
|
if(dat.toLowerCase() == search){
|
|
return dat
|
|
}
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}else{
|
|
return [];
|
|
}
|
|
}
|
|
|
|
globalThis.cronTab = function(action, tim){
|
|
var times = 3000;
|
|
if(tim != undefined){
|
|
if(typeof tim == 'number'){
|
|
times = tim;
|
|
}
|
|
}
|
|
var newIdCron = Date.now();
|
|
globalThis.cronIdSetUpNewSession = newIdCron;
|
|
setInterval(function(){
|
|
if(newIdCron == globalThis.cronIdSetUpNewSession){
|
|
if(action != undefined){
|
|
action()
|
|
}
|
|
}
|
|
},times)
|
|
}
|
|
|
|
|
|
globalThis.loadPlugins = function(path='', arr = [], func){
|
|
var pt = path;
|
|
var start = 0;
|
|
var length = arr.length - 1;
|
|
var dataScript = "";
|
|
(function loadas(){
|
|
fetch(path+'/'+arr[start]+'.js?v='+Date.now()).then(function(res){
|
|
return res.text();
|
|
})
|
|
.then(function(textScript){
|
|
dataScript += textScript+"\n";
|
|
if(start == length){
|
|
eval(dataScript);
|
|
if(func != undefined){
|
|
func();
|
|
}
|
|
}else{
|
|
start++;
|
|
loadas();
|
|
}
|
|
})
|
|
})();
|
|
}
|
|
|
|
globalThis.lE = function(name){
|
|
return globalThis[name];
|
|
}
|
|
|
|
globalThis.props = function(params = null, value = null){
|
|
if(params != null){
|
|
if(window.propertyWebsiteApp == undefined){
|
|
window.propertyWebsiteApp = {}
|
|
}
|
|
if(value != null){
|
|
window.propertyWebsiteApp[params] = value;
|
|
}else{
|
|
if(window.propertyWebsiteApp[params] != undefined){
|
|
return window.propertyWebsiteApp[params];
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
}else{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// proto element
|
|
|
|
|
|
window.localD = {
|
|
read : function(name){
|
|
if(localStorage.getItem('localdata') == undefined){
|
|
var dat = {}
|
|
localStorage.setItem('localdata', JSON.stringify(dat));
|
|
}
|
|
if( JSON.parse(localStorage.getItem('localdata'))[name] == undefined ){
|
|
return 0;
|
|
}else{
|
|
return JSON.parse(localStorage.getItem('localdata'))[name];
|
|
}
|
|
},
|
|
write: function(name, data){
|
|
if(localStorage.getItem('localdata') == undefined){
|
|
var dat = {}
|
|
localStorage.setItem('localdata', JSON.stringify(dat));
|
|
}
|
|
var y = JSON.parse(localStorage.getItem('localdata'));
|
|
y[name] = data;
|
|
localStorage.setItem('localdata', JSON.stringify(y))
|
|
}
|
|
}
|
|
|
|
Node.prototype.readonly = function(){
|
|
this.setAttribute('readonly','');
|
|
this.style.background = '#ddd';
|
|
}
|
|
|
|
Node.prototype.inputRupiah = function(){
|
|
this.addEventListener('keyup', function(){
|
|
if(this.value != ''){
|
|
this.value = this.value.lastDotToComa().number(true).currency();
|
|
}
|
|
}, false)
|
|
}
|
|
|
|
Node.prototype.uuid = function(){
|
|
function generateUUID() { // Public Domain/MIT
|
|
var d = new Date().getTime();//Timestamp
|
|
var d2 = ((typeof performance !== 'undefined') && performance.now && (performance.now()*1000)) || 0;//Time in microseconds since page-load or 0 if unsupported
|
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
|
var r = Math.random() * 16;//random number between 0 and 16
|
|
if(d > 0){//Use timestamp until depleted
|
|
r = (d + r)%16 | 0;
|
|
d = Math.floor(d/16);
|
|
} else {//Use microseconds since page-load if supported
|
|
r = (d2 + r)%16 | 0;
|
|
d2 = Math.floor(d2/16);
|
|
}
|
|
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
});
|
|
}
|
|
this.value = generateUUID();
|
|
}
|
|
|
|
Node.prototype.uuidtime = function(aliase = ''){
|
|
this.value = aliase+Date.now();
|
|
}
|
|
|
|
globalThis.getform = function(id){
|
|
return document.querySelector('#form-get-app'+act.data.id+' #'+id);
|
|
}
|
|
|
|
globalThis.selectNode = function(a){
|
|
return document.querySelector(a);
|
|
}
|
|
|
|
globalThis.getNode = function(id){
|
|
return globalThis[id];
|
|
}
|
|
|
|
globalThis.Keys = function(a){
|
|
return Object.keys(a);
|
|
}
|
|
|
|
const calculator = {
|
|
run : function(id, height=30, output = null){
|
|
this.data = {}
|
|
this.data.newCalculator = document.getElementById(id)
|
|
|
|
this.data.idaction = 'api-cal'+Date.now();
|
|
|
|
globalThis[this.data.idaction] = function(a){
|
|
|
|
if(a.getAttribute('data-val') != undefined){
|
|
output(a.getAttribute('data-val'), a)
|
|
}else{
|
|
if(a.innerText != '.' && a.innerText != ''){
|
|
|
|
var val = Number(a.innerText);
|
|
if(output != null){
|
|
output(val, a)
|
|
}
|
|
}else{
|
|
if(output != null){
|
|
output(a.innerText, a)
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
this.data.newCalculator.innerHTML = `
|
|
<style>
|
|
.gg-math-plus,
|
|
.gg-math-plus::after {
|
|
display: block;
|
|
box-sizing: border-box;
|
|
background: currentColor;
|
|
border-radius: 10px
|
|
}
|
|
.gg-math-plus {
|
|
margin-top: -2px;
|
|
position: relative;
|
|
transform: scale(var(--ggs,1));
|
|
width: 16px;
|
|
height: 2px
|
|
}
|
|
.gg-math-plus::after {
|
|
content: "";
|
|
position: absolute;
|
|
width: 2px;
|
|
height: 16px;
|
|
top: -7px;
|
|
left: 7px
|
|
}
|
|
.gg-math-minus {
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
display: block;
|
|
transform: scale(var(--ggs,1));
|
|
width: 16px;
|
|
height: 2px;
|
|
background: currentColor;
|
|
border-radius: 10px
|
|
}
|
|
</style>
|
|
<div style="display:grid;grid-template-columns: auto 60px">
|
|
<div style="
|
|
display:grid;
|
|
grid-template-columns:auto auto auto;
|
|
">
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">1</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">2</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">3</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">4</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">5</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">6</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">7</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">8</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">9</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">0</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
">.</div>
|
|
<div onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
"></div>
|
|
</div>
|
|
<div style="
|
|
display:grid;
|
|
grid-template-columns: auto;
|
|
">
|
|
|
|
<div action-do-calc onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
font-size: 12px;
|
|
" data-val="qty">
|
|
Qty
|
|
</div>
|
|
|
|
<div action-do-calc onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
font-size: 12px;
|
|
" data-val="disc">
|
|
Disc
|
|
</div>
|
|
|
|
<div action-do-calc onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
font-size: 12px;
|
|
" data-val="price">
|
|
Price
|
|
</div>
|
|
|
|
<div action-do-calc onclick="globalThis['${this.data.idaction}'](this)" style="
|
|
display: flex;
|
|
height: ${height}px;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items:center;
|
|
border: 1px solid #ddd;
|
|
font-size: 12px;
|
|
" data-val="-">Del</div>
|
|
</div>
|
|
|
|
</div>
|
|
`;
|
|
|
|
}
|
|
}
|
|
|
|
const slicing = function(string, a = 1000){
|
|
var start = a;
|
|
var arrayBaru = [];
|
|
var total = Math.ceil(string.length / a);
|
|
for(var n = 0; n < total; n++){
|
|
var f = (n + 1) * start;
|
|
var x = n * start;
|
|
arrayBaru.push(string.substring(x,f));
|
|
}
|
|
return arrayBaru;
|
|
}
|
|
|
|
const upload = function(url = '/admin/upload', path = '', name = 'data.post' ,data = null, funcpro, funcres){
|
|
var rendr = data;
|
|
rendr = slicing(rendr, 2150000);
|
|
var length = rendr.length;
|
|
var start = 0;
|
|
var itm = Date.now();
|
|
function uploadProsses(){
|
|
if (start < length) {
|
|
funcpro(Math.round(((start+1) / length) * 100)+'%');
|
|
$.ajax({
|
|
url: url,
|
|
method: 'POST',
|
|
dataType: 'text',
|
|
data: {
|
|
_token: $('meta[name=csrf-token]').attr('content'),
|
|
ok: rendr[start],
|
|
start: start,
|
|
end: length - 1,
|
|
path: path,
|
|
tipe: path + name,
|
|
enm: itm
|
|
},
|
|
success: function(e){
|
|
if(start == (length - 1)){
|
|
funcres(e);
|
|
}else{
|
|
start += 1;
|
|
uploadProsses();
|
|
}
|
|
},error: function(){
|
|
let clear = Array.from(document.querySelectorAll(".css-loader"));
|
|
clear.forEach(function(c){
|
|
c.remove();
|
|
});
|
|
if(typeof Swal != 'undefined'){
|
|
Swal('Warning', 'cek koneksi internet anda, dan coba kemabali', 'warning');
|
|
};
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
uploadProsses()
|
|
|
|
}
|
|
|
|
const text2Binary = function( string) {
|
|
string = JSON.stringify(string);
|
|
return string.split('').map(function (char) {
|
|
return char.charCodeAt(0).toString(2);
|
|
}).join('2');
|
|
}
|
|
|
|
const binary2text = function(str = null)
|
|
{
|
|
var array = str.split("2");
|
|
var pop = array.map(code => String.fromCharCode(parseInt(code, 2))).join("");
|
|
return JSON.parse(pop);
|
|
}
|
|
|
|
String.prototype.replaceAll = function(search, replacement) {
|
|
var target = this;
|
|
return target.replace(new RegExp(search, 'g'), replacement);
|
|
};
|
|
|
|
const ConfStyle = function (element) {
|
|
element.__proto__.inputRupiah = function () {
|
|
this.addEventListener('keyup', function () {
|
|
if (this.value != '') {
|
|
this.value = this.value.lastDotToComa().number(true).currency();
|
|
}
|
|
}, false)
|
|
return this;
|
|
}
|
|
element.__proto__.displayFlex = function () {
|
|
this.style.display = 'flex';
|
|
return this;
|
|
}
|
|
element.__proto__.displayInlineFlex = function () {
|
|
this.style.display = 'inline-flex';
|
|
return this;
|
|
}
|
|
element.__proto__.displayInlineBlock = function () {
|
|
this.style.display = 'inline-block';
|
|
return this;
|
|
}
|
|
element.__proto__.displayBlock = function () {
|
|
this.style.display = 'block';
|
|
return this;
|
|
}
|
|
element.__proto__.displayInline = function () {
|
|
this.style.display = 'inline';
|
|
return this;
|
|
}
|
|
element.__proto__.displayGrid = function () {
|
|
this.style.display = 'grid';
|
|
return this;
|
|
}
|
|
element.__proto__.displayNone = function () {
|
|
this.style.display = 'none';
|
|
return this;
|
|
}
|
|
element.__proto__.maxHeight = function (number) {
|
|
this.style.maxHeight = number + 'px';
|
|
return this;
|
|
}
|
|
element.__proto__.h = function (number) {
|
|
if (number != undefined) {
|
|
this.style.height = number + 'px';
|
|
return this;
|
|
} else {
|
|
return this.clientHeight;
|
|
}
|
|
}
|
|
element.__proto__.setH100 = function (element) {
|
|
if (element != undefined) {
|
|
this.style.height = 'calc(100vh - ' + (element.clientHeight) + 'px)';
|
|
return this;
|
|
} else {
|
|
this.style.height = 'calc(100vh)';
|
|
return this;
|
|
}
|
|
}
|
|
} |