├── README.md ├── codebase ├── fonts │ ├── PTS-bold.woff │ ├── PTS-webfont.woff │ ├── Roboto-Medium-webfont.eot │ ├── Roboto-Medium-webfont.ttf │ ├── Roboto-Medium-webfont.woff │ ├── Roboto-Medium-webfont.woff2 │ ├── Roboto-Regular-webfont.eot │ ├── Roboto-Regular-webfont.ttf │ ├── Roboto-Regular-webfont.woff │ ├── Roboto-Regular-webfont.woff2 │ ├── font-license.txt │ ├── open-sans-600.woff │ ├── open-sans-600.woff2 │ ├── open-sans-regular.woff │ ├── open-sans-regular.woff2 │ ├── webixfa-webfont.eot │ ├── webixfa-webfont.svg │ ├── webixfa-webfont.ttf │ ├── webixfa-webfont.woff │ ├── webixfa-webfont.woff2 │ ├── webixmdi-webfont.eot │ ├── webixmdi-webfont.svg │ ├── webixmdi-webfont.ttf │ ├── webixmdi-webfont.woff │ └── webixmdi-webfont.woff2 ├── i18n │ ├── be.js │ ├── de.js │ ├── en.js │ ├── es.js │ ├── fr.js │ ├── it.js │ ├── ja.js │ ├── pt.js │ ├── ru.js │ └── zh.js ├── legacy │ ├── excanvas │ │ ├── AUTHORS.txt │ │ ├── COPYING.txt │ │ ├── README.txt │ │ └── excanvas.js │ ├── swfobject.js │ └── uploader.swf ├── skins │ ├── compact.css │ ├── compact.min.css │ ├── contrast.css │ ├── contrast.min.css │ ├── dark.css │ ├── dark.min.css │ ├── flat.css │ ├── flat.min.css │ ├── material.css │ ├── material.min.css │ ├── mini.css │ ├── mini.min.css │ ├── willow.css │ └── willow.min.css ├── types │ ├── webix.d.ts │ └── webix.global.d.ts ├── webix.css ├── webix.d.ts ├── webix.js ├── webix.js.map ├── webix.min.css ├── webix.min.js └── webix.min.js.map ├── license.txt ├── package.json ├── rollup.config.js ├── sources ├── .eslintrc.json ├── core │ ├── activecontent.js │ ├── atomdataloader.js │ ├── atomrender.js │ ├── autoscroll.js │ ├── autotooltip.js │ ├── basebind.js │ ├── bind.js │ ├── bindsource.js │ ├── canvas.js │ ├── codeparser.js │ ├── collectionbind.js │ ├── contexthelper.js │ ├── copypaste.js │ ├── customprint.js │ ├── customscroll.js │ ├── datacollection.js │ ├── dataloader.js │ ├── datamarks.js │ ├── datamove.js │ ├── datarecord.js │ ├── datastate.js │ ├── datastore.js │ ├── datavalue.js │ ├── date.js │ ├── destruction.js │ ├── dragcontrol.js │ ├── dragitem.js │ ├── dragorder.js │ ├── editability.js │ ├── eventsystem.js │ ├── flexlayout.js │ ├── group.js │ ├── groupmethods.js │ ├── groupstore.js │ ├── htmlmap.js │ ├── htmloptions.js │ ├── idspace.js │ ├── index.js │ ├── keysnavigation.js │ ├── late.js │ ├── mapcollection.js │ ├── modality.js │ ├── mouseevents.js │ ├── movable.js │ ├── navigationbuttons.js │ ├── number.js │ ├── overlaybox.js │ ├── pagingability.js │ ├── parsing.js │ ├── progressbar.js │ ├── promise.js │ ├── recordbind.js │ ├── renderstack.js │ ├── resizearea.js │ ├── scrollable.js │ ├── selectionmodel.js │ ├── settings.js │ ├── singlerender.js │ ├── sparklines.js │ ├── sparklines │ │ ├── area.js │ │ ├── bar.js │ │ ├── line.js │ │ ├── pie.js │ │ ├── radar.js │ │ ├── spline.js │ │ ├── splinearea.js │ │ └── svg.js │ ├── state.js │ ├── tablepaste.js │ ├── textpattern.js │ ├── tooltipcontrol.js │ ├── touch.js │ ├── treeapi.js │ ├── treeclick.js │ ├── treecollection.js │ ├── treedataloader.js │ ├── treedatamove.js │ ├── treerenderstack.js │ ├── treestatecheckbox.js │ ├── treestore.js │ ├── treetablepaste.js │ ├── treetype.js │ ├── uimanager.js │ ├── uipro.js │ ├── undo.js │ ├── uploaddriver.js │ ├── validatecollection.js │ ├── validatedata.js │ ├── validation.js │ ├── valuebind.js │ ├── values.js │ ├── virtualrenderstack.js │ └── vrenderstack.js ├── css │ ├── accordion.less │ ├── barcode.less │ ├── bulletgraph.less │ ├── button.less │ ├── calendar.less │ ├── carousel.less │ ├── chart.less │ ├── colorpicker.less │ ├── colorselect.less │ ├── comments.less │ ├── common │ │ ├── common.less │ │ ├── flexbox.less │ │ ├── html5.less │ │ └── images.less │ ├── console.less │ ├── datatable.less │ ├── datatree.less │ ├── dataview.less │ ├── daterangepicker.less │ ├── dbllist.less │ ├── dnd.less │ ├── editors.less │ ├── fieldset.less │ ├── fonticons.less │ ├── fullscreen.less │ ├── gage.less │ ├── icons.less │ ├── inputs.less │ ├── list.less │ ├── menu.less │ ├── message.less │ ├── nativescroll.less │ ├── organogram.less │ ├── pager.less │ ├── pdf.less │ ├── portlet.less │ ├── print.less │ ├── progress.less │ ├── property.less │ ├── resizer.less │ ├── richtext.less │ ├── scroll.less │ ├── sidebar.less │ ├── sidemenu.less │ ├── skins │ │ ├── common.less │ │ ├── compact │ │ │ ├── config.js │ │ │ └── config.less │ │ ├── contrast │ │ │ ├── config.js │ │ │ └── config.less │ │ ├── dark │ │ │ ├── config.js │ │ │ └── config.less │ │ ├── flat │ │ │ ├── config.js │ │ │ └── config.less │ │ ├── material │ │ │ ├── config.js │ │ │ └── config.less │ │ ├── mini │ │ │ ├── config.js │ │ │ └── config.less │ │ └── willow │ │ │ ├── config.js │ │ │ └── config.less │ ├── sky.less │ ├── slider.less │ ├── sparklines.less │ ├── switch.less │ ├── tabs.less │ ├── timeboard.less │ ├── timeline.less │ ├── tooltip.less │ ├── touch.less │ ├── tree.less │ ├── treemap.less │ ├── treetable.less │ ├── uploader.less │ ├── view.less │ ├── webix.less │ ├── window.less │ └── without-icons.less ├── i18n │ ├── be.js │ ├── de.js │ ├── en.js │ ├── es.js │ ├── fr.js │ ├── index.js │ ├── it.js │ ├── ja.js │ ├── pt.js │ ├── ru.js │ └── zh.js ├── images │ ├── compact │ │ ├── arrows.png │ │ ├── check.png │ │ ├── down.png │ │ ├── draghor.png │ │ ├── dragver.png │ │ ├── header-down.png │ │ ├── header-up.png │ │ ├── left.png │ │ ├── nav_next.png │ │ ├── nav_next_alt.png │ │ ├── nav_next_alt_dark.png │ │ ├── nav_next_dark.png │ │ ├── nav_prev.png │ │ ├── nav_prev_alt.png │ │ ├── nav_prev_alt_dark.png │ │ ├── nav_prev_dark.png │ │ ├── right.png │ │ ├── scroll_arrow_down.png │ │ ├── scroll_arrow_left.png │ │ ├── scroll_arrow_right.png │ │ ├── scroll_arrow_up.png │ │ ├── scroll_hor.png │ │ ├── scroll_ver.png │ │ ├── search.png │ │ ├── section_bg.png │ │ ├── slider.png │ │ ├── slider_hor.png │ │ ├── slider_ver.png │ │ ├── sort_asc.png │ │ ├── sort_desc.png │ │ ├── tree │ │ │ ├── file.gif │ │ │ ├── folder.gif │ │ │ ├── folderOpen.gif │ │ │ ├── line1.gif │ │ │ ├── line2.gif │ │ │ ├── line3.gif │ │ │ ├── line4.gif │ │ │ ├── minus1.gif │ │ │ ├── minus2.gif │ │ │ ├── minus3.gif │ │ │ ├── minus4.gif │ │ │ ├── plus1.gif │ │ │ ├── plus2.gif │ │ │ ├── plus3.gif │ │ │ └── plus4.gif │ │ ├── up.png │ │ ├── uploader │ │ │ ├── cancel.png │ │ │ └── error.png │ │ └── white-arrow-left.png │ ├── contrast │ │ ├── arrows.png │ │ ├── check.png │ │ ├── down.png │ │ ├── draghor.png │ │ ├── dragver.png │ │ ├── header-down.png │ │ ├── header-up.png │ │ ├── left.png │ │ ├── nav_next.png │ │ ├── nav_next_alt.png │ │ ├── nav_next_alt_dark.png │ │ ├── nav_next_dark.png │ │ ├── nav_prev.png │ │ ├── nav_prev_alt.png │ │ ├── nav_prev_alt_dark.png │ │ ├── nav_prev_dark.png │ │ ├── right.png │ │ ├── scroll_arrow_down.png │ │ ├── scroll_arrow_left.png │ │ ├── scroll_arrow_right.png │ │ ├── scroll_arrow_up.png │ │ ├── scroll_hor.png │ │ ├── scroll_ver.png │ │ ├── search.png │ │ ├── section_bg.png │ │ ├── slider.png │ │ ├── slider_hor.png │ │ ├── slider_ver.png │ │ ├── sort_asc.png │ │ ├── sort_desc.png │ │ ├── tree │ │ │ ├── file.gif │ │ │ ├── folder.gif │ │ │ ├── folderOpen.gif │ │ │ ├── line1.gif │ │ │ ├── line2.gif │ │ │ ├── line3.gif │ │ │ ├── line4.gif │ │ │ ├── minus1.gif │ │ │ ├── minus2.gif │ │ │ ├── minus3.gif │ │ │ ├── minus4.gif │ │ │ ├── plus1.gif │ │ │ ├── plus2.gif │ │ │ ├── plus3.gif │ │ │ └── plus4.gif │ │ ├── up.png │ │ ├── uploader │ │ │ ├── cancel.png │ │ │ └── error.png │ │ └── white-arrow-left.png │ ├── dark │ │ ├── arrows.png │ │ ├── check.png │ │ ├── down.png │ │ ├── draghor.png │ │ ├── dragver.png │ │ ├── left.png │ │ ├── nav_next.png │ │ ├── nav_next_alt.png │ │ ├── nav_next_alt_dark.png │ │ ├── nav_next_dark.png │ │ ├── nav_prev.png │ │ ├── nav_prev_alt.png │ │ ├── nav_prev_alt_dark.png │ │ ├── nav_prev_dark.png │ │ ├── right.png │ │ ├── slider_hor.png │ │ ├── slider_ver.png │ │ ├── tree │ │ │ ├── file.gif │ │ │ ├── folder.gif │ │ │ ├── folderOpen.gif │ │ │ ├── line1.gif │ │ │ ├── line2.gif │ │ │ ├── line3.gif │ │ │ └── line4.gif │ │ ├── up.png │ │ └── uploader │ │ │ ├── cancel.png │ │ │ └── error.png │ ├── flat │ │ ├── arrows.png │ │ ├── check.png │ │ ├── down.png │ │ ├── draghor.png │ │ ├── dragver.png │ │ ├── header-down.png │ │ ├── header-up.png │ │ ├── left.png │ │ ├── nav_next.png │ │ ├── nav_next_alt.png │ │ ├── nav_next_alt_dark.png │ │ ├── nav_next_dark.png │ │ ├── nav_prev.png │ │ ├── nav_prev_alt.png │ │ ├── nav_prev_alt_dark.png │ │ ├── nav_prev_dark.png │ │ ├── right.png │ │ ├── scroll_arrow_down.png │ │ ├── scroll_arrow_left.png │ │ ├── scroll_arrow_right.png │ │ ├── scroll_arrow_up.png │ │ ├── scroll_hor.png │ │ ├── scroll_ver.png │ │ ├── search.png │ │ ├── section_bg.png │ │ ├── slider.png │ │ ├── slider_hor.png │ │ ├── slider_ver.png │ │ ├── sort_asc.png │ │ ├── sort_desc.png │ │ ├── tree │ │ │ ├── file.gif │ │ │ ├── folder.gif │ │ │ ├── folderOpen.gif │ │ │ ├── line1.gif │ │ │ ├── line2.gif │ │ │ ├── line3.gif │ │ │ ├── line4.gif │ │ │ ├── minus1.gif │ │ │ ├── minus2.gif │ │ │ ├── minus3.gif │ │ │ ├── minus4.gif │ │ │ ├── plus1.gif │ │ │ ├── plus2.gif │ │ │ ├── plus3.gif │ │ │ └── plus4.gif │ │ ├── up.png │ │ ├── uploader │ │ │ ├── cancel.png │ │ │ └── error.png │ │ └── white-arrow-left.png │ ├── material │ │ ├── arrows.png │ │ ├── check.png │ │ ├── down.png │ │ ├── draghor.png │ │ ├── dragver.png │ │ ├── header-down.png │ │ ├── header-up.png │ │ ├── left.png │ │ ├── nav_next.png │ │ ├── nav_next_alt.png │ │ ├── nav_next_alt_dark.png │ │ ├── nav_next_dark.png │ │ ├── nav_prev.png │ │ ├── nav_prev_alt.png │ │ ├── nav_prev_alt_dark.png │ │ ├── nav_prev_dark.png │ │ ├── right.png │ │ ├── scroll_arrow_down.png │ │ ├── scroll_arrow_left.png │ │ ├── scroll_arrow_right.png │ │ ├── scroll_arrow_up.png │ │ ├── scroll_hor.png │ │ ├── scroll_ver.png │ │ ├── search.png │ │ ├── section_bg.png │ │ ├── slider.png │ │ ├── slider_hor.png │ │ ├── slider_ver.png │ │ ├── sort_asc.png │ │ ├── sort_desc.png │ │ ├── tree │ │ │ ├── file.gif │ │ │ ├── folder.gif │ │ │ ├── folderOpen.gif │ │ │ ├── line1.gif │ │ │ ├── line2.gif │ │ │ ├── line3.gif │ │ │ ├── line4.gif │ │ │ ├── minus1.gif │ │ │ ├── minus2.gif │ │ │ ├── minus3.gif │ │ │ ├── minus4.gif │ │ │ ├── plus1.gif │ │ │ ├── plus2.gif │ │ │ ├── plus3.gif │ │ │ └── plus4.gif │ │ ├── up.png │ │ ├── uploader │ │ │ ├── cancel.png │ │ │ └── error.png │ │ └── white-arrow-left.png │ ├── mini │ │ ├── arrows.png │ │ ├── check.png │ │ ├── down.png │ │ ├── draghor.png │ │ ├── dragver.png │ │ ├── left.png │ │ ├── nav_next.png │ │ ├── nav_next_alt.png │ │ ├── nav_next_alt_dark.png │ │ ├── nav_next_dark.png │ │ ├── nav_prev.png │ │ ├── nav_prev_alt.png │ │ ├── nav_prev_alt_dark.png │ │ ├── nav_prev_dark.png │ │ ├── right.png │ │ ├── scroll_arrow_down.png │ │ ├── scroll_arrow_left.png │ │ ├── scroll_arrow_right.png │ │ ├── scroll_arrow_up.png │ │ ├── scroll_hor.png │ │ ├── scroll_ver.png │ │ ├── search.png │ │ ├── section_bg.png │ │ ├── slider.png │ │ ├── slider_hor.png │ │ ├── slider_ver.png │ │ ├── sort_asc.png │ │ ├── sort_desc.png │ │ ├── tree │ │ │ ├── file.gif │ │ │ ├── folder.gif │ │ │ ├── folderOpen.gif │ │ │ ├── line1.gif │ │ │ ├── line2.gif │ │ │ ├── line3.gif │ │ │ ├── line4.gif │ │ │ ├── minus1.gif │ │ │ ├── minus2.gif │ │ │ ├── minus3.gif │ │ │ ├── minus4.gif │ │ │ ├── plus1.gif │ │ │ ├── plus2.gif │ │ │ ├── plus3.gif │ │ │ └── plus4.gif │ │ ├── up.png │ │ ├── uploader │ │ │ ├── cancel.png │ │ │ └── error.png │ │ └── white-arrow-left.png │ └── willow │ │ ├── arrows.png │ │ ├── check.png │ │ ├── down.png │ │ ├── draghor.png │ │ ├── dragver.png │ │ ├── left.png │ │ ├── nav_next.png │ │ ├── nav_next_alt.png │ │ ├── nav_next_alt_dark.png │ │ ├── nav_next_dark.png │ │ ├── nav_prev.png │ │ ├── nav_prev_alt.png │ │ ├── nav_prev_alt_dark.png │ │ ├── nav_prev_dark.png │ │ ├── right.png │ │ ├── slider_hor.png │ │ ├── slider_ver.png │ │ ├── tree │ │ ├── file.gif │ │ ├── folder.gif │ │ ├── folderOpen.gif │ │ ├── line1.gif │ │ ├── line2.gif │ │ ├── line3.gif │ │ └── line4.gif │ │ ├── up.png │ │ └── uploader │ │ ├── cancel.png │ │ └── error.png ├── load │ ├── ajax.js │ ├── dataprocessor.js │ ├── drivers │ │ ├── csv.js │ │ ├── excel.js │ │ ├── html.js │ │ ├── htmltable.js │ │ ├── index.js │ │ ├── jsarray.js │ │ ├── json.js │ │ └── xml.js │ ├── index.js │ ├── jsonp.js │ ├── proxy.js │ ├── proxy │ │ ├── binary.js │ │ ├── cache.js │ │ ├── connector.js │ │ ├── debug.js │ │ ├── faye.js │ │ ├── graphql.js │ │ ├── indexdb.js │ │ ├── json.js │ │ ├── local.js │ │ ├── offline.js │ │ ├── post.js │ │ ├── rest.js │ │ └── sync.js │ ├── remote.js │ ├── require.js │ └── send.js ├── services.js ├── thirdparty │ ├── promiz.js │ └── promiz.license.txt ├── ui │ ├── animate.js │ ├── click.js │ ├── core.js │ ├── datafilter.js │ ├── datafilter_pro.js │ ├── detect.js │ ├── fullscreen.js │ ├── helpers.js │ └── index.js ├── views │ ├── abslayout.js │ ├── accordion.js │ ├── accordionitem.js │ ├── align.js │ ├── barcode.js │ ├── baselayout.js │ ├── baseview.js │ ├── bulletgraph.js │ ├── button.js │ ├── calendar.js │ ├── carousel.js │ ├── chart.js │ ├── chart │ │ ├── area.js │ │ ├── bar.js │ │ ├── barh.js │ │ ├── dynamic.js │ │ ├── line.js │ │ ├── pie.js │ │ ├── presets.js │ │ ├── radar.js │ │ ├── scatter.js │ │ ├── spline.js │ │ ├── splinearea.js │ │ ├── stackedbar.js │ │ └── stackedbarh.js │ ├── checkbox.js │ ├── checksuggest.js │ ├── colorboard.js │ ├── colorpicker.js │ ├── colorselect.js │ ├── combo.js │ ├── comments.js │ ├── context.js │ ├── contextmenu.js │ ├── counter.js │ ├── dashboard.js │ ├── datalayout.js │ ├── datasuggest.js │ ├── datatable.js │ ├── datatable │ │ ├── areaselect.js │ │ ├── blockselect.js │ │ ├── columns.js │ │ ├── dnd.js │ │ ├── edit.js │ │ ├── export.js │ │ ├── filter.js │ │ ├── freeze.js │ │ ├── hmenu.js │ │ ├── keynav.js │ │ ├── math.js │ │ ├── print.js │ │ ├── resize.js │ │ ├── selection.js │ │ ├── size.js │ │ ├── spans.js │ │ ├── subs.js │ │ ├── touch.js │ │ └── validation.js │ ├── dataview.js │ ├── datepicker.js │ ├── daterange.js │ ├── daterangepicker.js │ ├── daterangesuggest.js │ ├── dbllist.js │ ├── debug.js │ ├── excelbar.js │ ├── excelviewer.js │ ├── fieldset.js │ ├── filter.js │ ├── flexdatalayout.js │ ├── flexlayout.js │ ├── form.js │ ├── forminput.js │ ├── gage.js │ ├── geochart.js │ ├── googlemap.js │ ├── gridlayout.js │ ├── gridsuggest.js │ ├── grouplist.js │ ├── headerlayout.js │ ├── htmlform.js │ ├── icon.js │ ├── iframe.js │ ├── label.js │ ├── layout.js │ ├── list.js │ ├── mentionsuggest.js │ ├── menu.js │ ├── multicombo.js │ ├── multiselect.js │ ├── multisuggest.js │ ├── multitext.js │ ├── multiview.js │ ├── organogram.js │ ├── pager.js │ ├── panel.js │ ├── pdfbar.js │ ├── pdfviewer.js │ ├── popup.js │ ├── portlet.js │ ├── property.js │ ├── proto.js │ ├── proxy.js │ ├── radio.js │ ├── rangechart.js │ ├── rangeslider.js │ ├── resizearea.js │ ├── resizer.js │ ├── richselect.js │ ├── richtext.js │ ├── scrollview.js │ ├── search.js │ ├── segmented.js │ ├── select.js │ ├── sidebar.js │ ├── sidemenu.js │ ├── slider.js │ ├── spacer.js │ ├── submenu.js │ ├── suggest.js │ ├── switch.js │ ├── tabbar.js │ ├── tabview.js │ ├── template.js │ ├── text.js │ ├── textarea.js │ ├── texthighlight.js │ ├── timeboard.js │ ├── timeline.js │ ├── toggle.js │ ├── toolbar.js │ ├── tooltip.js │ ├── tree.js │ ├── treemap.js │ ├── treetable.js │ ├── unitlist.js │ ├── uploader.js │ ├── video.js │ ├── view.js │ ├── vscroll.js │ └── window.js ├── webix.js └── webix │ ├── animate.js │ ├── api.js │ ├── clipbuffer.js │ ├── color.js │ ├── consts.js │ ├── csv.js │ ├── customevents.js │ ├── debug.js │ ├── editors.js │ ├── env.js │ ├── export.js │ ├── export │ ├── common.js │ ├── tocsv.js │ ├── toexcel.js │ ├── topdf.js │ └── topng.js │ ├── filters.js │ ├── fullscreen.js │ ├── helpers.js │ ├── history.js │ ├── html.js │ ├── htmlevents.js │ ├── i18n.js │ ├── ie8.js │ ├── index.js │ ├── init.js │ ├── locale.js │ ├── markup.js │ ├── message.js │ ├── patterns.js │ ├── print.js │ ├── ready.js │ ├── rules.js │ ├── skin.js │ ├── storage.js │ ├── stringify.js │ ├── template.js │ └── type.js └── whatsnew.md /codebase/fonts/PTS-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/PTS-bold.woff -------------------------------------------------------------------------------- /codebase/fonts/PTS-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/PTS-webfont.woff -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Medium-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Medium-webfont.eot -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Medium-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Medium-webfont.ttf -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Medium-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Medium-webfont.woff -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Medium-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Medium-webfont.woff2 -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Regular-webfont.eot -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Regular-webfont.ttf -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Regular-webfont.woff -------------------------------------------------------------------------------- /codebase/fonts/Roboto-Regular-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/Roboto-Regular-webfont.woff2 -------------------------------------------------------------------------------- /codebase/fonts/font-license.txt: -------------------------------------------------------------------------------- 1 | ## Font Awesome 5 2 | 3 | Copyright: 2018 © Fonticons, Inc. 4 | Author: Dave Gandy 5 | License: SIL (http://scripts.sil.org/OFL) 6 | Homepage: http://fortawesome.github.com/Font-Awesome/ 7 | 8 | ## Material Design Icons 9 | 10 | Author: Austin Andrews 11 | License: Apache License, Version 2.0 12 | Homepage: https://materialdesignicons.com/ 13 | 14 | ## Roboto 15 | 16 | Author: Christian Robertson 17 | License: Apache License, Version 2.0 18 | Homepage: https://fonts.google.com/specimen/Roboto 19 | 20 | ## PT Sans Free 21 | 22 | Copyright: © 2009 ParaType Ltd. 23 | License: Free Font License v1.00 24 | 25 | ## Open Sans 26 | Copyright: 2020 © The Open Sans Project Authors 27 | License: SIL Open Font License, 1.1 -------------------------------------------------------------------------------- /codebase/fonts/open-sans-600.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/open-sans-600.woff -------------------------------------------------------------------------------- /codebase/fonts/open-sans-600.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/open-sans-600.woff2 -------------------------------------------------------------------------------- /codebase/fonts/open-sans-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/open-sans-regular.woff -------------------------------------------------------------------------------- /codebase/fonts/open-sans-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/open-sans-regular.woff2 -------------------------------------------------------------------------------- /codebase/fonts/webixfa-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixfa-webfont.eot -------------------------------------------------------------------------------- /codebase/fonts/webixfa-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixfa-webfont.ttf -------------------------------------------------------------------------------- /codebase/fonts/webixfa-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixfa-webfont.woff -------------------------------------------------------------------------------- /codebase/fonts/webixfa-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixfa-webfont.woff2 -------------------------------------------------------------------------------- /codebase/fonts/webixmdi-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixmdi-webfont.eot -------------------------------------------------------------------------------- /codebase/fonts/webixmdi-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixmdi-webfont.ttf -------------------------------------------------------------------------------- /codebase/fonts/webixmdi-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixmdi-webfont.woff -------------------------------------------------------------------------------- /codebase/fonts/webixmdi-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/fonts/webixmdi-webfont.woff2 -------------------------------------------------------------------------------- /codebase/legacy/excanvas/AUTHORS.txt: -------------------------------------------------------------------------------- 1 | ExplorerCanvas 2 | 3 | Google Open Source: 4 | 5 | 6 | 7 | Developers: 8 | Emil A Eklund 9 | Erik Arvidsson 10 | Glen Murphy -------------------------------------------------------------------------------- /codebase/legacy/excanvas/README.txt: -------------------------------------------------------------------------------- 1 | ExplorerCanvas 2 | Copyright 2006 Google Inc. 3 | 4 | ------------------------------------------------------------------------------- 5 | DESCRIPTION 6 | 7 | Firefox, Safari and Opera 9 support the canvas tag to allow 2D command-based 8 | drawing operations. ExplorerCanvas brings the same functionality to Internet 9 | Explorer; web developers only need to include a single script tag in their 10 | existing canvas webpages to enable this support. 11 | 12 | 13 | ------------------------------------------------------------------------------- 14 | INSTALLATION 15 | 16 | Include the ExplorerCanvas tag in the same directory as your HTML files, and 17 | add the following code to your page, preferably in the tag. 18 | 19 | 20 | 21 | If you run into trouble, please look at the included example code to see how 22 | to best implement this -------------------------------------------------------------------------------- /codebase/legacy/uploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/codebase/legacy/uploader.swf -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webix", 3 | "productTag": "webix", 4 | "version": "11.1.0", 5 | "description": "Javascript UI for Web", 6 | "scripts": { 7 | "lint": "yarn eslint \"sources/**/*.js\"", 8 | "build": "rollup -c ./rollup.config.js", 9 | "watch": "rollup -c ./rollup.config.js -w", 10 | "server": "node backend/index.js" 11 | }, 12 | "private":true, 13 | "homepage": "https://webix.com", 14 | "devDependencies": { 15 | "@babel/core": "^7.1.2", 16 | "@babel/preset-env": "^7.1.0", 17 | "rollup": "^0.66.2", 18 | "rollup-plugin-babel": "^4.0.3", 19 | "rollup-plugin-eslint": "^5.0.0", 20 | "rollup-plugin-hypothetical": "^2.1.0", 21 | "rollup-plugin-less": "^0.1.4", 22 | "rollup-plugin-license": "^0.7.0", 23 | "rollup-plugin-replace": "^2.1.0", 24 | "rollup-plugin-uglify": "^6.0.0", 25 | "rollup-plugin-commonjs": "^9.1.8", 26 | "rollup-plugin-node-resolve": "^3.4.0", 27 | 28 | "apollo-server-express": "^2.2.2", 29 | "bluebird": "^3.5.3", 30 | "body-parser": "^1.18.3", 31 | "busboy": "^0.2.14", 32 | "eslint": "^5.8.0", 33 | "express": "^4.16.4", 34 | "faye": "^1.2.4", 35 | "graphql": "^14.0.2", 36 | "nedb": "^1.8.0" 37 | }, 38 | "dependencies": {} 39 | } 40 | -------------------------------------------------------------------------------- /sources/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true 5 | }, 6 | "extends": "eslint:recommended", 7 | "parserOptions": { 8 | "sourceType": "module" 9 | }, 10 | "globals": { 11 | "DEBUG":true 12 | }, 13 | "rules": { 14 | "no-constant-condition":0, 15 | "indent": [ 16 | "error", 17 | "tab", 18 | {"SwitchCase":1} 19 | ], 20 | "quotes": [ 21 | "error", 22 | "double" 23 | ], 24 | "semi": [ 25 | "error", 26 | "always" 27 | ] 28 | } 29 | } -------------------------------------------------------------------------------- /sources/core/atomrender.js: -------------------------------------------------------------------------------- 1 | import {bind} from "../webix/helpers"; 2 | import template from "../webix/template"; 3 | 4 | 5 | const AtomRender={ 6 | //convert item to the HTML text 7 | _toHTML:function(obj){ 8 | if (obj.$empty ) 9 | return ""; 10 | return this._settings.template(obj, this); 11 | }, 12 | //render self, by templating data object 13 | render:function(){ 14 | var cfg = this._settings; 15 | if (this.isVisible(cfg.id)){ 16 | if (!this.callEvent || this.callEvent("onBeforeRender",[this.data])){ 17 | if (this.data && !cfg.content){ 18 | //it is critical to have this as two commands 19 | //its prevent destruction race in Chrome 20 | this._dataobj.innerHTML = ""; 21 | this._dataobj.innerHTML = this._toHTML(this.data); 22 | } 23 | if (this.callEvent) this.callEvent("onAfterRender",[]); 24 | } 25 | return true; 26 | } 27 | return false; 28 | }, 29 | sync:function(source){ 30 | this._backbone_sync = false; 31 | if (source.name != "DataStore"){ 32 | if (source.data && source.data.name == "DataStore"){ 33 | source = source.data; 34 | } else { 35 | this._backbone_sync = true; 36 | } 37 | } 38 | 39 | if (this._backbone_sync) 40 | source.bind("change", bind(function(data){ 41 | if (data.id == this.data.id){ 42 | this.data = data.attributes; 43 | this.refresh(); 44 | } 45 | }, this)); 46 | else 47 | source.attachEvent("onStoreUpdated", bind(function(id){ 48 | if (!id || id == this.data.id){ 49 | this.data = source.pull[id]; 50 | this.refresh(); 51 | } 52 | }, this)); 53 | }, 54 | template_setter:template 55 | }; 56 | 57 | export default AtomRender; -------------------------------------------------------------------------------- /sources/core/bind.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/core/bind.js -------------------------------------------------------------------------------- /sources/core/codeparser.js: -------------------------------------------------------------------------------- 1 | import {isDate, isArray} from "../webix/helpers"; 2 | 3 | const CodeParser = { 4 | //converts a complex object into an object with primitives properties 5 | collapseNames:function(base, prefix, data, filter){ 6 | data = data || {}; 7 | prefix = prefix || ""; 8 | filter = filter || function(){ return true; }; 9 | 10 | if(!base || typeof base != "object") 11 | return null; 12 | 13 | for(var prop in base){ 14 | let value = base[prop]; 15 | let name = prefix+prop; 16 | if(value && typeof value == "object" && !isDate(value) && !isArray(value) && filter(name)){ 17 | CodeParser.collapseNames(value, name+".", data, filter); 18 | } else { 19 | data[name] = value; 20 | } 21 | } 22 | return data; 23 | }, 24 | 25 | //converts an object with primitive properties into an object with complex properties 26 | expandNames:function(base){ 27 | var data = {}, 28 | i, lastIndex, name, obj, prop; 29 | 30 | for(prop in base){ 31 | name = prop.split("."); 32 | lastIndex = name.length-1; 33 | obj = data; 34 | for( i =0; i < lastIndex; i++ ){ 35 | if(!obj[name[i]]) 36 | obj[name[i]] = {}; 37 | obj = obj[name[i]]; 38 | } 39 | obj[name[lastIndex]] = base[prop]; 40 | } 41 | 42 | return data; 43 | } 44 | }; 45 | 46 | export default CodeParser; -------------------------------------------------------------------------------- /sources/core/customscroll.js: -------------------------------------------------------------------------------- 1 | const temp = null; export default temp; -------------------------------------------------------------------------------- /sources/core/datacollection.js: -------------------------------------------------------------------------------- 1 | import {uid, bind} from "../webix/helpers"; 2 | import {proto, ui} from "../ui/core"; 3 | 4 | import EventSystem from "./eventsystem"; 5 | import Destruction from "./destruction"; 6 | import DataMove from "../core/datamove"; 7 | import DataLoader from "../core/dataloader"; 8 | import MapCollection from "../core/mapcollection"; 9 | 10 | import Settings from "../core/settings"; 11 | 12 | import ValidateCollection from "../core/validatecollection"; 13 | 14 | import BindSource from "../core/bindsource"; 15 | import BaseBind from "../core/basebind"; 16 | import CollectionBind from "../core/collectionbind"; 17 | 18 | import {define} from "../services"; 19 | 20 | const DataCollection = proto({ 21 | name:"DataCollection", 22 | isVisible:function(){ 23 | if (!this.data.order.length && !this.data._filter_order && !this._settings.dataFeed) return false; 24 | return true; 25 | }, 26 | $init:function(config){ 27 | this.data.provideApi(this, true); 28 | var id = (config&&config.id)?config.id:uid(); 29 | this._settings.id =id; 30 | ui.views[id] = this; 31 | this.data.attachEvent("onStoreLoad", bind(function(){ 32 | this.callEvent("onBindRequest",[]); 33 | }, this)); 34 | }, 35 | refresh:function(){ this.callEvent("onBindRequest",[]); } 36 | }, DataMove, CollectionBind, BindSource, ValidateCollection, DataLoader, MapCollection, EventSystem, BaseBind, Destruction, Settings); 37 | 38 | define("DataCollection", DataCollection); 39 | 40 | export default DataCollection; -------------------------------------------------------------------------------- /sources/core/datamarks.js: -------------------------------------------------------------------------------- 1 | const DataMarks = { 2 | addCss:function(id, css, silent){ 3 | if (!this.addRowCss && !silent){ 4 | if (!this.hasCss(id, css)){ 5 | const node = this.getItemNode(id); 6 | if (node){ 7 | node.className += " "+css; 8 | silent = true; 9 | } 10 | } 11 | } 12 | return this.data.addMark(id, css, 1, 1, silent); 13 | }, 14 | removeCss:function(id, css, silent){ 15 | if (!this.addRowCss && !silent){ 16 | if (this.hasCss(id, css)){ 17 | const node = this.getItemNode(id); 18 | if (node){ 19 | const re = new RegExp("(\\s|^)"+css+"(\\s|$)"); 20 | node.className = node.className.replace(re, (v,b,a) => b && a ? " " : ""); 21 | silent = true; 22 | } 23 | } 24 | } 25 | return this.data.removeMark(id, css, 1, silent); 26 | }, 27 | hasCss:function(id, mark){ 28 | return this.data.getMark(id, mark); 29 | }, 30 | clearCss:function(css, silent){ 31 | return this.data.clearMark(css, 1, silent); 32 | } 33 | }; 34 | 35 | export default DataMarks; -------------------------------------------------------------------------------- /sources/core/datarecord.js: -------------------------------------------------------------------------------- 1 | import EventSystem from "../core/eventsystem"; 2 | import BaseBind from "../core/basebind"; 3 | import AtomDataLoader from "../core/atomdataloader"; 4 | import Settings from "../core/settings"; 5 | import {uid, extend} from "../webix/helpers"; 6 | import {proto, ui} from "../ui/core"; 7 | 8 | 9 | const DataRecord = proto({ 10 | name:"DataRecord", 11 | isVisible:function(){ return true; }, 12 | $init:function(config){ 13 | this.data = config||{}; 14 | var id = (config&&config.id)?config.id:uid(); 15 | this._settings = { id:id }; 16 | ui.views[id] = this; 17 | }, 18 | getValues:function(){ 19 | return this.data; 20 | }, 21 | setValues:function(data, update, config){ 22 | this.data = update?extend(this.data, data, true):data; 23 | this.callEvent("onChange", [data, config]); 24 | }, 25 | refresh:function(){ this.callEvent("onBindRequest"); } 26 | }, EventSystem, BaseBind, AtomDataLoader, Settings); 27 | 28 | 29 | export default DataRecord; -------------------------------------------------------------------------------- /sources/core/datavalue.js: -------------------------------------------------------------------------------- 1 | import EventSystem from "../core/eventsystem"; 2 | import BaseBind from "../core/basebind"; 3 | import {isUndefined, uid} from "../webix/helpers"; 4 | import {proto, ui} from "../ui/core"; 5 | 6 | 7 | const DataValue = proto({ 8 | name:"DataValue", 9 | isVisible:function(){ return true; }, 10 | $init:function(config){ 11 | if (!config || isUndefined(config.value)) 12 | this.data = config||""; 13 | 14 | var id = (config&&config.id)?config.id:uid(); 15 | this._settings = { id:id }; 16 | ui.views[id] = this; 17 | }, 18 | setValue:function(value,config){ 19 | this.data = value; 20 | this.callEvent("onChange", [value,config]); 21 | }, 22 | getValue:function(){ 23 | return this.data; 24 | }, 25 | refresh:function(){ this.callEvent("onBindRequest"); } 26 | }, EventSystem, BaseBind); 27 | 28 | 29 | export default DataValue; -------------------------------------------------------------------------------- /sources/core/group.js: -------------------------------------------------------------------------------- 1 | import {extend} from "../webix/helpers"; 2 | import GroupStore from "../core/groupstore"; 3 | 4 | 5 | const Group = { 6 | $init:function(){ 7 | extend(this.data, GroupStore); 8 | }, 9 | group:function(config, target){ 10 | if (!target && target !== 0){ 11 | this.$blockRender = true; 12 | this.data.ungroup(); 13 | this.$blockRender = false; 14 | } 15 | this.data.group(config, target); 16 | }, 17 | ungroup:function(target){ 18 | this.data.ungroup(target); 19 | } 20 | }; 21 | 22 | export default Group; -------------------------------------------------------------------------------- /sources/core/groupmethods.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const GroupMethods = { 4 | sum:function(property, data){ 5 | data = data || this; 6 | var summ = 0; 7 | for (var i = 0; i < data.length; i++){ 8 | const num = parseFloat(property(data[i]), 10); 9 | if (!isNaN(num)) 10 | summ+=num; 11 | } 12 | 13 | return summ; 14 | }, 15 | min:function(property, data){ 16 | data = data || this; 17 | var min = Infinity; 18 | 19 | 20 | for (var i = 0; i < data.length; i++){ 21 | const num = parseFloat(property(data[i]), 10); 22 | if (isNaN(num)) continue; 23 | if (num < min) min = num; 24 | } 25 | 26 | return min === Infinity ? 0 : min*1; 27 | }, 28 | max:function(property, data){ 29 | data = data || this; 30 | var max = -Infinity; 31 | 32 | for (var i = 0; i < data.length; i++){ 33 | const num = parseFloat(property(data[i]), 10); 34 | if (isNaN(num)) continue; 35 | if (num > max) max = num; 36 | } 37 | 38 | return max === -Infinity ? 0 : max*1; 39 | }, 40 | count:function(property, data){ 41 | var count = 0; 42 | for (var i = 0; i < data.length; i++) { 43 | var some = property(data[i]); 44 | if (some !== null && typeof some !== "undefined") 45 | count++; 46 | } 47 | return count; 48 | }, 49 | any:function(property, data){ 50 | return property(data[0]); 51 | }, 52 | string:function(property){ 53 | return property.$name; 54 | } 55 | }; 56 | 57 | export default GroupMethods; -------------------------------------------------------------------------------- /sources/core/idspace.js: -------------------------------------------------------------------------------- 1 | import {bind} from "../webix/helpers"; 2 | import {ui} from "../ui/core"; 3 | import state from "./state"; 4 | 5 | const IdSpace = { 6 | $init:function(){ 7 | this._elements = {}; 8 | this._translate_ids = {}; 9 | this.getTopParentView = this._get_self = bind(function(){ return this;}, this); 10 | 11 | this._run_inner_init_logic(); 12 | this.$ready.push(this._run_after_inner_init_logic); 13 | }, 14 | $$:function(id){ 15 | return this._elements[id]; 16 | }, 17 | innerId:function(id){ 18 | return this._translate_ids[id]; 19 | }, 20 | _run_inner_init_logic:function(){ 21 | this._prev_global_col = state._global_collection; 22 | state._global_collection = this; 23 | }, 24 | _run_after_inner_init_logic:function(){ 25 | for (var name in this._elements){ 26 | var input = this._elements[name]; 27 | if (this.callEvent && input.mapEvent && !input._evs_map.onitemclick) 28 | input.mapEvent({ 29 | onitemclick:this 30 | }); 31 | input.getTopParentView = this._get_self; 32 | } 33 | 34 | state._global_collection = this._prev_global_col; 35 | this._prev_global_col = 0; 36 | }, 37 | _destroy_child:function(id){ 38 | delete this._elements[id]; 39 | }, 40 | ui:function(){ 41 | this._run_inner_init_logic(); 42 | var temp = ui.apply(this, arguments); 43 | this._run_after_inner_init_logic(); 44 | return temp; 45 | } 46 | }; 47 | 48 | 49 | export default IdSpace; -------------------------------------------------------------------------------- /sources/core/late.js: -------------------------------------------------------------------------------- 1 | export const late = { }; -------------------------------------------------------------------------------- /sources/core/modality.js: -------------------------------------------------------------------------------- 1 | import {create, remove} from "../webix/html"; 2 | import {zIndex} from "../ui/helpers"; 3 | import {bind} from "../webix/helpers"; 4 | import {_event} from "../webix/htmlevents"; 5 | 6 | import state from "./state"; 7 | 8 | const Modality = { 9 | _modal_set:function(value){ 10 | if (value){ 11 | if (!this._modal_cover){ 12 | this._modal_cover = create("div",{ 13 | "class":"webix_modal" 14 | }); 15 | /* with below code we will have the same zIndex for modal layer as for the previous 16 | abs positioned element, but because of attaching order modal layer will be on top anyway 17 | */ 18 | const index = this._modality = zIndex(this._settings.zIndex); 19 | state._modality.push(index); 20 | 21 | this._modal_cover.style.zIndex = index-1; 22 | this._viewobj.style.zIndex = index; 23 | document.body.appendChild(this._modal_cover); 24 | document.body.style.overflow = "hidden"; 25 | _event( this._modal_cover, "click", bind(this._ignore_clicks, this)); 26 | } 27 | } 28 | else { 29 | if (this._modal_cover){ 30 | remove(this._modal_cover); 31 | this._modal_cover = null; 32 | 33 | const modality = state._modality; 34 | modality.splice(modality.indexOf(this._modality), 1); 35 | 36 | if (!modality.length) 37 | document.body.style.overflow = ""; 38 | } 39 | } 40 | return value; 41 | } 42 | }; 43 | 44 | 45 | export default Modality; -------------------------------------------------------------------------------- /sources/core/movable.js: -------------------------------------------------------------------------------- 1 | import {offset, pos as getPos} from "../webix/html"; 2 | import {toNode, extend} from "../webix/helpers"; 3 | import DragControl from "../core/dragcontrol"; 4 | 5 | const Movable = { 6 | move_setter:function(value){ 7 | if (value){ 8 | extend(this, Move, true); 9 | DragControl.addDrag(this._headobj?this._headobj:this.$view, this); 10 | delete this.move_setter; //prevent double initialization 11 | } 12 | return value; 13 | } 14 | }; 15 | 16 | const Move = { 17 | $dragCreate:function(object, e){ 18 | if(this.config.move){ 19 | var elOffset = offset(object); 20 | var elPos = getPos(e); 21 | DragControl.top = elOffset.y - elPos.y; 22 | DragControl.left = elOffset.x - elPos.x; 23 | 24 | return toNode(this._viewobj); 25 | } 26 | }, 27 | $dragDestroy:function(node, drag){ 28 | var view = this; 29 | if (view._settings){ 30 | view._settings.top = parseInt(drag.style.top,10); 31 | view._settings.left = parseInt(drag.style.left,10); 32 | } 33 | 34 | DragControl.top = DragControl.left = 0; 35 | this.callEvent("onViewMoveEnd", []); 36 | return; 37 | }, 38 | $dragPos:function(pos, e){ 39 | this.callEvent("onViewMove", [pos, e]); 40 | } 41 | }; 42 | 43 | export default Movable; -------------------------------------------------------------------------------- /sources/core/overlaybox.js: -------------------------------------------------------------------------------- 1 | import {create, insertBefore, remove} from "../webix/html"; 2 | 3 | 4 | const OverlayBox = { 5 | showOverlay:function(message){ 6 | if (!this._overlay){ 7 | this._overlay = create("DIV",{ "class":"webix_overlay" },(message||"")); 8 | insertBefore(this._overlay, this._viewobj.firstChild, this._viewobj); 9 | this._viewobj.style.position = "relative"; 10 | } else 11 | this._overlay.innerHTML = message; 12 | }, 13 | hideOverlay:function(){ 14 | if (this._overlay){ 15 | remove(this._overlay); 16 | this._overlay = null; 17 | } 18 | } 19 | }; 20 | 21 | export default OverlayBox; -------------------------------------------------------------------------------- /sources/core/parsing.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/core/parsing.js -------------------------------------------------------------------------------- /sources/core/promise.js: -------------------------------------------------------------------------------- 1 | // #include thirdparty/promiz.js 2 | -------------------------------------------------------------------------------- /sources/core/recordbind.js: -------------------------------------------------------------------------------- 1 | const RecordBind={ 2 | $init:function(){ 3 | this.attachEvent("onChange", this._update_binds); 4 | }, 5 | _bind_update:function(target, rule, format){ 6 | var data = this.getValues()||null; 7 | if (format) 8 | data = format(data); 9 | this._bind_update_common(target, rule, data); 10 | } 11 | }; 12 | 13 | 14 | export default RecordBind; -------------------------------------------------------------------------------- /sources/core/singlerender.js: -------------------------------------------------------------------------------- 1 | import AtomRender from "../core/atomrender"; 2 | import {proto} from "../ui/core"; 3 | import {clone} from "../webix/helpers"; 4 | import template from "../webix/template"; 5 | 6 | import type from "../webix/type"; 7 | /* 8 | REnders single item. 9 | Can be used for elements without datastore, or with complex custom rendering logic 10 | 11 | @export 12 | render 13 | */ 14 | 15 | const SingleRender = proto({ 16 | $init:function(){ 17 | this.type = clone(this.type); 18 | }, 19 | customize:function(obj){ 20 | type(this,obj); 21 | }, 22 | template_setter:function(value){ 23 | this.type.template = template(value); 24 | }, 25 | //convert item to the HTML text 26 | _toHTML:function(obj){ 27 | var type = this.type; 28 | return (type.templateStart?type.templateStart(obj,type):"") + type.template(obj,type) + (type.templateEnd?type.templateEnd(obj,type):""); 29 | } 30 | }, AtomRender); 31 | 32 | 33 | export default SingleRender; -------------------------------------------------------------------------------- /sources/core/state.js: -------------------------------------------------------------------------------- 1 | import {_to_array} from "../webix/helpers"; 2 | 3 | const state = { 4 | top_views:[], 5 | 6 | _global_scope:null, 7 | _global_collection:null, 8 | _child_sizing_active:null, 9 | _responsive_exception:null, 10 | _responsive_tinkery:null, 11 | _freeze_resize:null, 12 | _parent_cell:null, 13 | _focus_time:null, 14 | _ui_creation:0, 15 | _edit_open_time:null, 16 | 17 | _final_destruction:null, 18 | _events:[], 19 | 20 | destructors:[], 21 | 22 | _noselect_element:null, 23 | 24 | _modality:[], 25 | _popups:_to_array(), 26 | 27 | _wait_animate:null 28 | }; 29 | 30 | export default state; -------------------------------------------------------------------------------- /sources/core/treeclick.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const TreeClick = { 4 | webix_tree_open:function(e, id){ 5 | this.close(id); 6 | return false; 7 | }, 8 | webix_tree_close:function(e, id){ 9 | this.open(id); 10 | return false; 11 | }, 12 | webix_tree_checkbox:function(e,id){ 13 | this._tree_check_uncheck(id, null, e); 14 | return false; 15 | } 16 | }; 17 | 18 | export default TreeClick; -------------------------------------------------------------------------------- /sources/core/treecollection.js: -------------------------------------------------------------------------------- 1 | import {extend} from "../webix/helpers"; 2 | import {proto} from "../ui/core"; 3 | 4 | import TreeDataLoader from "../core/treedataloader"; 5 | import DataCollection from "../core/datacollection"; 6 | import TreeStore from "../core/treestore"; 7 | import TreeDataMove from "../core/treedatamove"; 8 | 9 | 10 | const TreeCollection = proto({ 11 | name:"TreeCollection", 12 | $init:function(){ 13 | extend(this.data, TreeStore, true); 14 | this.data.provideApi(this,true); 15 | extend(this, TreeDataMove, true); 16 | } 17 | }, TreeDataLoader, DataCollection); 18 | 19 | 20 | export default TreeCollection; -------------------------------------------------------------------------------- /sources/core/treedataloader.js: -------------------------------------------------------------------------------- 1 | import {bind} from "../webix/helpers"; 2 | import DataLoader from "../core/dataloader"; 3 | import promise from "../thirdparty/promiz"; 4 | 5 | 6 | const TreeDataLoader = { 7 | $init:function(){ 8 | this.data.attachEvent("onStoreUpdated", bind(this._sync_hierarchy, this), null, true); 9 | //redefine methods 10 | this._feed_common = this._feed_commonA; 11 | }, 12 | _feed_commonA:function(from, count, callback, defer, details, clear){ 13 | // branch loading 14 | details = (count === 0) ? {parent: encodeURIComponent(from)} : null; 15 | return DataLoader.prototype._feed_common.call(this, from, count, callback, defer, details, clear); 16 | }, 17 | //load next set of data rows 18 | loadBranch:function(id, callback, url){ 19 | id = id || 0; 20 | this.data.url = url || this.data.url; 21 | if (this.callEvent("onDataRequest", [id,callback,this.data.url]) && this.data.url) 22 | return this.data.feed.call(this, id, 0, callback); 23 | return promise.reject(); 24 | }, 25 | _sync_hierarchy:function(id, data, mode){ 26 | if (!mode || mode == "add" || mode == "delete" || mode == "branch"){ 27 | this.data._sync_to_order(this); 28 | } 29 | } 30 | }; 31 | 32 | export default TreeDataLoader; -------------------------------------------------------------------------------- /sources/core/treetablepaste.js: -------------------------------------------------------------------------------- 1 | import {isUndefined, uid} from "../webix/helpers"; 2 | 3 | 4 | const TreeTablePaste = { 5 | insert: function(data) { 6 | var parent = this.getSelectedId(true, true); 7 | for (var i = 0; i < data.length; i++) { 8 | var item = {}; 9 | for (var j = 0; j < this._settings.columns.length; j++) { 10 | item[this._settings.columns[j].id] = data[i][j] || ""; 11 | } 12 | if (!isUndefined(item.id) && this.exists(item.id)) 13 | item.id = uid(); 14 | this.add(item, null, parent[0]); 15 | } 16 | } 17 | }; 18 | 19 | export default TreeTablePaste; -------------------------------------------------------------------------------- /sources/core/treetype.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const TreeType ={ 4 | space:function(obj){ 5 | var html = ""; 6 | for (var i=1; i"; 14 | else 15 | return "
"; 16 | } else 17 | return "
"; 18 | }, 19 | checkbox:function(obj){ 20 | if(obj.nocheckbox) 21 | return ""; 22 | return ""; 23 | }, 24 | folder:function(obj){ 25 | if (obj.icon) 26 | return "
"; 27 | 28 | if (obj.$count){ 29 | if (obj.open) 30 | return "
"; 31 | else 32 | return "
"; 33 | } 34 | return "
"; 35 | } 36 | }; 37 | 38 | export default TreeType; -------------------------------------------------------------------------------- /sources/core/uipro.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/core/uipro.js -------------------------------------------------------------------------------- /sources/core/validation.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /sources/core/valuebind.js: -------------------------------------------------------------------------------- 1 | const ValueBind={ 2 | $init:function(){ 3 | this.attachEvent("onChange", this._update_binds); 4 | }, 5 | _bind_update:function(target, rule, format){ 6 | rule = rule || "value"; 7 | var data = this.getValue()||""; 8 | if (format) data = format(data); 9 | 10 | if (target.setValue) 11 | target.setValue(data,"auto"); 12 | else if (!target.filter){ 13 | var pod = {}; pod[rule] = data; 14 | if (target._check_data_feed(data)) 15 | target.setValues(pod,false,"auto"); 16 | } else{ 17 | target.data.silent(function(){ 18 | this.filter(rule,data); 19 | }); 20 | } 21 | target.callEvent("onBindApply", [data,rule,this]); 22 | } 23 | }; 24 | 25 | export default ValueBind; -------------------------------------------------------------------------------- /sources/css/accordion.less: -------------------------------------------------------------------------------- 1 | @accordionLeftMargin: (@barHeight - 6)/2; 2 | @accordionTopMargin: (@barHeight - 8)/2; 3 | 4 | .accIconUp(){ 5 | background-image:data-uri('../images/@{skin}/up.png'); 6 | background-repeat:no-repeat; 7 | } 8 | 9 | .accIconDown(){ 10 | background-image:data-uri('../images/@{skin}/down.png'); 11 | background-repeat:no-repeat; 12 | } 13 | 14 | .accIconLeft(){ 15 | background-image:data-uri('../images/@{skin}/left.png'); 16 | background-repeat:no-repeat; 17 | } 18 | 19 | .accIconRight(){ 20 | background-image:data-uri('../images/@{skin}/right.png'); 21 | background-repeat:no-repeat; 22 | } 23 | 24 | .webix_accordionitem_body{ 25 | position:relative; 26 | } 27 | 28 | .webix_accordionitem_body>div{ 29 | border-width:0px!important; 30 | } 31 | 32 | .webix_accordionitem_header{ 33 | border-bottom: 1px solid @borderColor; 34 | position:relative; z-index:2; 35 | 36 | .layoutBarFont; 37 | .layoutBarBG; 38 | 39 | line-height: (@barHeight - 2); 40 | cursor:pointer; 41 | overflow:hidden; 42 | } 43 | 44 | .webix_accordionitem_label{ 45 | height:100%; 46 | padding-left: 10px; 47 | } 48 | 49 | .webix_accordionitem_button{ 50 | float:right; 51 | position:relative; 52 | height:11px; 53 | width:11px; 54 | margin: @accordionTopMargin+1 @accordionLeftMargin; 55 | } -------------------------------------------------------------------------------- /sources/css/barcode.less: -------------------------------------------------------------------------------- 1 | .webix_barcode{ 2 | position: relative; 3 | } 4 | .webix_barcode .webix_canvas_text{ 5 | font-size: @fontSize; 6 | padding:0 2px; 7 | #box > .sizing; 8 | } -------------------------------------------------------------------------------- /sources/css/bulletgraph.less: -------------------------------------------------------------------------------- 1 | .webix_bullet_header{ 2 | font-weight: @boldStyle; 3 | } 4 | .webix_bullet_header, .webix_bullet_subheader{ 5 | font-size: @fontSize; 6 | fill: @fontColor; 7 | } 8 | .webix_bullet_scale{ 9 | fill: lighten(@fontColor, 20%); 10 | font-size: 12px; 11 | font-weight: @boldStyle; 12 | stroke: none; 13 | text-anchor: middle; 14 | } 15 | .webix_bullet_scale_lines{ 16 | stroke: lighten(@fontColor, 20%); 17 | } 18 | .webix_bullet_marker{ 19 | y: 5px; 20 | width: 3px; 21 | } -------------------------------------------------------------------------------- /sources/css/colorpicker.less: -------------------------------------------------------------------------------- 1 | @colorPadding:4px; 2 | 3 | .webix_color_row{ 4 | clear: both; 5 | white-space: nowrap; 6 | } 7 | .webix_color_palette{ 8 | text-align: left; 9 | padding: @colorPadding; 10 | #box >.noselect; 11 | &.webix_palette_classic { 12 | padding: 0; 13 | } 14 | } 15 | .webix_color_row, .webix_color_row div{ 16 | line-height: 0; 17 | font-size: 0; 18 | } 19 | .webix_color_row div{ 20 | display: inline-block; 21 | position: relative; 22 | &>*{ 23 | #box > .sizing; 24 | } 25 | } 26 | .webix_color_row .webix_color_selected { 27 | &>*{ 28 | border: 1px solid; 29 | border-color: @backColor; 30 | border-radius: 2px; 31 | box-shadow: fade(@baseColor, 60%) 0 0 0 2px; 32 | } 33 | &:focus>* { 34 | box-shadow: @baseColor 0 0 0 2px; 35 | } 36 | } 37 | .webix_palette_classic .webix_color_row .webix_color_selected { 38 | &>*{ 39 | border: 2px solid #f3f3f3; 40 | border-radius: 0px; 41 | box-shadow: none; 42 | } 43 | &:focus>* { 44 | box-shadow: inset 0 0 15px #fff; 45 | } 46 | } 47 | .webix_palette_classic .webix_color_item{ 48 | width:100%; 49 | height:100%; 50 | cursor: pointer; 51 | } 52 | .webix_palette_material .webix_color_item{ 53 | display: inline-block; 54 | #box > .sizing; 55 | border-radius: 2px; 56 | cursor: pointer; 57 | width: 100%; 58 | height: 100%; 59 | } 60 | .webix_palette_material .webix_color_row > div{ 61 | margin: 0 @colorPadding @colorPadding 0; 62 | } -------------------------------------------------------------------------------- /sources/css/common/common.less: -------------------------------------------------------------------------------- 1 | #common { 2 | .skyblue(){ 3 | //#gradient > .v4-head(#f9f4e5, #f1f2f0, #d3e6fe, #daeafe); 4 | #gradient > .v4-head(lighten(@selectColor, 30%), lighten(@mainColor,45%),lighten(@mainColor,44%), lighten(@mainColor,42%)); 5 | background-position: 0px 1px; 6 | background-repeat: repeat-x; 7 | } 8 | .blueline(){ 9 | #gradient > .v2(#dae7f6, #c9dbf2); 10 | background-repeat:no-repeat; 11 | } 12 | .sharpblueline(){ 13 | #gradient > .v4-center-split(#dae7f6, #cddef3, #b8cffe, #c9dbf2); 14 | background-position:0px 1px; 15 | background-repeat:no-repeat; 16 | } 17 | .grayline(){ 18 | #gradient > .v2(#e7e7e7, #e0e0e0); 19 | background-position:0px 1px; 20 | background-repeat:no-repeat; 21 | } 22 | .bluebutton(){ 23 | #gradient > .v2(#0088cc, #0055cc); 24 | color:white; 25 | } 26 | .redbutton(){ 27 | //#gradient > .v2(#cc4400, #cc1100); 28 | #gradient > .v2(#e7877e, #cc1100); 29 | border: none !important; 30 | color:white; 31 | } 32 | .graybutton(){ 33 | #gradient > .v2(#ffffff, #E6E6E6); 34 | } 35 | .whitebutton(){ 36 | background:white; 37 | font-weight: bold; 38 | color:#444; 39 | } 40 | .blueflatbutton(){ 41 | background: #22a1bc; 42 | color:white; 43 | font-weight: bold; 44 | } 45 | .redflatbutton(){ 46 | background: #FE5310; 47 | color:white; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /sources/css/common/html5.less: -------------------------------------------------------------------------------- 1 | #border{ 2 | .corners(@lefttop:0px, @righttop: 0px, @bottomright: 0px, @leftbottom: 0px){ 3 | border-top-left-radius: @lefttop; 4 | border-bottom-left-radius: @leftbottom; 5 | border-top-right-radius: @righttop; 6 | border-bottom-right-radius: @bottomright; 7 | }; 8 | }; 9 | 10 | #box { 11 | .sizing( @type:border-box ){ 12 | -moz-box-sizing: @type; 13 | -webkit-box-sizing: @type; 14 | box-sizing: @type; 15 | }; 16 | .noselect(){ 17 | -moz-user-select: none; 18 | -webkit-user-select: none; 19 | -ms-user-select: none; 20 | user-select:none; 21 | }; 22 | .select(){ 23 | -moz-user-select: text; 24 | -webkit-user-select: text; 25 | -ms-user-select: text; 26 | user-select: text; 27 | } 28 | }; -------------------------------------------------------------------------------- /sources/css/common/images.less: -------------------------------------------------------------------------------- 1 | #image { 2 | .nextButtonImage(){ 3 | background-image:data-uri('../images/@{skin}/right.png'); 4 | background-repeat:no-repeat; 5 | } 6 | .prevButtonImage(){ 7 | background-image:data-uri('../images/@{skin}/left.png'); 8 | background-repeat:no-repeat; 9 | } 10 | .downButtonImage(){ 11 | background-image:data-uri('../images/@{skin}/down.png'); 12 | background-repeat:no-repeat; 13 | } 14 | .upButtonImage(){ 15 | background-image:data-uri('../images/@{skin}/up.png'); 16 | background-repeat:no-repeat; 17 | } 18 | .sliderHor(){ 19 | background-image:data-uri('../images/@{skin}/slider_hor.png'); 20 | background-repeat:no-repeat; 21 | } 22 | .sliderVer(){ 23 | background-image:data-uri('../images/@{skin}/slider_ver.png'); 24 | background-repeat:no-repeat; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /sources/css/console.less: -------------------------------------------------------------------------------- 1 | .ev_console { 2 | border: 1px solid #e0e0e0; 3 | min-height: 20px; 4 | font-size: 11px; 5 | font-family: Tahoma, Arial; 6 | padding: 0px; 7 | overflow-y: auto; 8 | height: 200px; 9 | width: 600px; 10 | } 11 | 12 | .ev_console_msg { 13 | padding: 4px; 14 | padding-left: 22px; 15 | min-height: 14px; 16 | margin: 0px; 17 | margin-top: -22px; 18 | border-bottom: none; 19 | position: relative; 20 | background-color: #CFF4A3; 21 | transition: margin-top 0.3s ease, 22 | background-color 2s ease; 23 | } 24 | 25 | .ev_console_msg.visible { 26 | margin-top: 0px; 27 | background-color: #ffffff; 28 | border-bottom: 1px solid #efefef; 29 | } 30 | 31 | .ev_console_msg .info { 32 | width: 14px; 33 | height: 14px; 34 | background-color: #A6D074; 35 | font-size: 11px; 36 | font-weight: bold; 37 | font-family: Times New Roman; 38 | color: #FFFFFF; 39 | float: left; 40 | text-align: center; 41 | margin-right: 4px; 42 | border-radius: 2px; 43 | position: absolute; 44 | left: 4px; 45 | } -------------------------------------------------------------------------------- /sources/css/datatree.less: -------------------------------------------------------------------------------- 1 | @import "common/html5.less"; 2 | @import "common/images.less"; 3 | 4 | @import "tree.less"; 5 | @import "view.less"; 6 | @import "editors.less"; 7 | @import "message.less"; 8 | @import "dnd.less"; -------------------------------------------------------------------------------- /sources/css/dataview.less: -------------------------------------------------------------------------------- 1 | @import "pager.less"; 2 | 3 | /*helper for allowing selection*/ 4 | .webix_allow_selection{ 5 | #box > .select; 6 | } 7 | 8 | /*default item in dataview*/ 9 | .webix_dataview_item{ 10 | .webix_list_item; 11 | border-right:1px solid @lightBorderColor; 12 | } 13 | 14 | /*default item in selected state*/ 15 | .webix_dataview_item.webix_selected{ 16 | .selectLine; 17 | border-bottom:1px solid @selectBorderColor; 18 | border-right:1px solid @selectBorderColor; 19 | } 20 | 21 | .webix_dataview_item.webix_invalid{ 22 | background-color: #ffeeee; 23 | } 24 | 25 | .webix_dataview_item.tiles{ 26 | border: 1px solid @dataBorderColor; 27 | #box > .sizing; 28 | } 29 | 30 | .webix_drag_zone > .webix_dataview_item.tiles{ 31 | margin:0 !important; 32 | } 33 | 34 | .webix_dataview .webix_scroll_cont{ 35 | #box > .sizing; 36 | } 37 | -------------------------------------------------------------------------------- /sources/css/dbllist.less: -------------------------------------------------------------------------------- 1 | @dblistBg: #ededed; 2 | @dblistButtonBg: @buttonColor; 3 | @dblistButtonIconColor: @buttonFontColor; 4 | 5 | .webix_dbllist{ 6 | .bottom_label{ 7 | text-align: center; 8 | font-size: 10px; 9 | } 10 | .webix_list, .bottom_label{ 11 | background: @dblistBg; 12 | } 13 | .webix_list_item{ 14 | background: @backColor; 15 | margin: 3px 4px 0px 4px; 16 | border:1px solid @borderColor; 17 | #box > .sizing; 18 | &.webix_selected{ 19 | border-bottom-color: @borderColor; 20 | background-color: @selectColor; 21 | color: @dblistSelColor; 22 | } 23 | } 24 | .dbllist_button{ 25 | width: 45%; 26 | height:30px; 27 | margin-top: 4px; 28 | padding: 0; 29 | border-radius:@skin_input_radius; 30 | border:1px solid @borderColor; 31 | cursor:pointer; 32 | font-size: @fontSize; 33 | font-family: @fontFamily; 34 | background-color: @dblistButtonBg; 35 | .webix_icon{ 36 | color: @dblistButtonIconColor; 37 | font-size: 20px; 38 | width: 26px; 39 | } 40 | &:active{ 41 | .activeShadow; 42 | } 43 | &:first-child{ 44 | margin-top: @inputHeight - 2px; 45 | margin-right: 4px; 46 | } 47 | &:last-child{ 48 | margin-left: 4px; 49 | } 50 | &:hover, &:focus, &:active{ 51 | .darkHoverRule(@dblistButtonBg); 52 | } 53 | } 54 | } 55 | 56 | .webix_invalid .webix_list{ 57 | background: #f8e2e2; 58 | } 59 | .dbllist_buttons .webix_template{ 60 | padding: 0 0 0 4px; 61 | } -------------------------------------------------------------------------------- /sources/css/editors.less: -------------------------------------------------------------------------------- 1 | .webix_dt_editor{ 2 | position:absolute; 3 | z-index:2; 4 | overflow:visible; 5 | background:@backColor; 6 | } 7 | .webix_dt_editor input, .webix_dt_editor select{ 8 | width:100%; 9 | #box > .sizing; 10 | padding: 0 (@dataPadding - 1); 11 | margin: 0; 12 | border:1px solid #ffd700; 13 | height: 100%; 14 | 15 | .mainFont; 16 | } 17 | 18 | @dtCheckboxMarginTop: (@rowHeight - 14)/2 + 1; 19 | .webix_dt_editor input[type="checkbox"]{ 20 | margin:@dtCheckboxMarginTop (@dataPadding + 1) 0px; 21 | height:auto; 22 | width:auto; 23 | } 24 | .webix_dt_editor select{ 25 | padding: 0 (@dataPadding - 5); 26 | } 27 | 28 | .webix_clipbuffer{ 29 | width:2000px; 30 | height:1px; padding:0; margin:0; border:0; 31 | left:0px; 32 | top:0px; 33 | white-space: pre-wrap; 34 | position:fixed; 35 | opacity:0; 36 | pointer-events: none; 37 | cursor: default; 38 | } 39 | 40 | 41 | .webix_dt_editor.webix_password_editor{ 42 | overflow: hidden; 43 | } 44 | 45 | .webix_password_editor input{ 46 | padding-right: 26px; 47 | } 48 | 49 | .webix_password_editor .webix_icon{ 50 | position: absolute; 51 | right: 4px; 52 | top: 50%; 53 | margin-top: -9px; 54 | font-size: 18px; 55 | cursor: pointer; 56 | color: @inactiveFontColor; 57 | } 58 | 59 | .webix_password_editor .webix_icon:hover{ 60 | color: @baseColor; 61 | } -------------------------------------------------------------------------------- /sources/css/fieldset.less: -------------------------------------------------------------------------------- 1 | .webix_fieldset > fieldset{ 2 | border:1px solid @borderColor; 3 | margin:0px; 4 | padding:5px 8px; 5 | } 6 | .webix_fieldset_label{ 7 | color:@fontColor; 8 | font-size:@smallFontSize; 9 | padding:0px 8px; 10 | text-transform:uppercase; 11 | } 12 | 13 | .webix_forminput > fieldset{ 14 | border:none; 15 | margin:0px; 16 | padding:0px; 17 | } 18 | .webix_forminput_label{ 19 | color:@fontColor; 20 | font-family:@fontFamily; 21 | float:left; 22 | line-height:@inputHeight - 2*@skin_input_y_padding; 23 | padding:@skin_input_y_padding @skin_input_x_padding; 24 | padding-right:@skin_content_padding * 0.75; 25 | #box > .sizing; 26 | } 27 | 28 | legend.webix_forminput_label_top{ 29 | width: 100%; 30 | padding:@skin_input_y_padding @skin_input_x_padding 0; 31 | } -------------------------------------------------------------------------------- /sources/css/fullscreen.less: -------------------------------------------------------------------------------- 1 | .webix_fullscreen_html .webix_template > *{ 2 | width: 100% !important; 3 | height: 100% !important; 4 | margin: 0px !important; 5 | } -------------------------------------------------------------------------------- /sources/css/nativescroll.less: -------------------------------------------------------------------------------- 1 | ::-webkit-scrollbar-button{ 2 | display:none; 3 | } 4 | ::-webkit-scrollbar { 5 | height: 8px; 6 | width: 8px; 7 | } 8 | ::-webkit-scrollbar-thumb{ 9 | background:silver; 10 | opacity:0.1; 11 | border-radius:3px; 12 | } -------------------------------------------------------------------------------- /sources/css/organogram.less: -------------------------------------------------------------------------------- 1 | .webix_organogram canvas { 2 | position: absolute; 3 | } 4 | .webix_organogram_item{ 5 | position: absolute; 6 | z-index: 1; 7 | text-align: center; 8 | border-radius: 4px; 9 | background-color: #e3f2fd; 10 | border: 1px solid #bbdefb; 11 | padding: 7px 7px 10px 7px; 12 | box-sizing: border-box; 13 | } 14 | .webix_organogram_item.webix_selected{ 15 | background-color: @selectColor; 16 | border-color: @selectColor; 17 | } 18 | .webix_organogram_list{ 19 | border-radius: 4px; 20 | position: absolute; 21 | z-index: 1; 22 | height: auto; 23 | border: 1px solid #dddddd; 24 | box-sizing: border-box; 25 | } 26 | .webix_organogram_list .webix_organogram_list_item{ 27 | border: none; 28 | text-align: left; 29 | position: static; 30 | padding: 5px; 31 | border-radius: 0px; 32 | box-sizing: border-box; 33 | } 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /sources/css/pager.less: -------------------------------------------------------------------------------- 1 | /*button of pager*/ 2 | .webix_view.webix_pager{ 3 | padding: @skin_input_y_padding 0; 4 | #box > .sizing; 5 | background-color: transparent; 6 | } 7 | .webix_pager_item, .webix_pager_item_selected{ 8 | padding: 0 6px; 9 | text-align:center; 10 | height: 100%; 11 | width:auto; 12 | min-width:32px; 13 | 14 | margin: 0 @skin_input_x_padding; 15 | cursor: pointer; 16 | #box > .sizing; 17 | border-radius: @skin_input_radius; 18 | 19 | .webix_icon{ 20 | line-height: 0; 21 | font-size: 17px; 22 | } 23 | } 24 | 25 | .webix_pager_item{ 26 | .buttonBackground; 27 | &:hover{ 28 | .darkHoverRule(@buttonColor); 29 | } 30 | &:focus{ 31 | .darkFocusRule(@buttonColor); 32 | } 33 | &:active{ 34 | .activeShadow; 35 | .darkActiveRule(@buttonColor); 36 | } 37 | } 38 | 39 | /*selected button of pager*/ 40 | .webix_pager_item_selected{ 41 | cursor:default; 42 | 43 | &:hover{ 44 | .darkHoverRule(@formButtonColor); 45 | } 46 | &:focus{ 47 | .darkFocusRule(@formButtonColor); 48 | } 49 | &:active{ 50 | .activeShadow; 51 | .darkActiveRule(@formButtonColor); 52 | } 53 | } 54 | .webix_animation .webix_ss_header{ 55 | position: relative; z-index:1; 56 | } 57 | .webix_animation .webix_ss_vscroll_header{ 58 | z-index:1; 59 | } 60 | .webix_animation .webix_ss_footer, .webix_animation .webix_vscroll_x{ 61 | position: absolute; bottom:0px; z-index:1; 62 | } -------------------------------------------------------------------------------- /sources/css/pdf.less: -------------------------------------------------------------------------------- 1 | @pdfBG: #404040; 2 | .webix_view.webix_pdf{ 3 | background-color:@pdfBG; 4 | overflow: auto; 5 | } 6 | .webix_pdf .canvas_wrapper{ 7 | margin:0px auto; 8 | box-shadow: 5px 5px 15px #1c1c1c; 9 | width:100%; 10 | height:100%; 11 | } 12 | .webix_toolbar.pdf_bar .webix_img_btn{ 13 | text-align:center; 14 | } 15 | .webix_toolbar.pdf_bar .webix_view{ 16 | background-color:transparent; 17 | } 18 | .webix_toolbar.pdf_bar .webix_icon_btn{ 19 | margin: 0; 20 | } 21 | .webix_toolbar.pdf_bar .webix_template{ 22 | background-color:transparent; 23 | color:#fff; 24 | line-height:2em; 25 | } 26 | .webix_toolbar.pdf_bar .webix_el_box input, 27 | .webix_toolbar.pdf_bar .webix_inp_static{ 28 | background-color:#5c5c5c; 29 | color:#fff; 30 | border-color:@pdfBG; 31 | } 32 | .webix_toolbar.pdf_bar .webix_el_box input:focus, 33 | .webix_toolbar.pdf_bar .webix_inp_static:focus{ 34 | border-color:#333; 35 | } 36 | .webix_toolbar.pdf_bar .webix_el_box .webix_input_icon{ 37 | color:#fff; 38 | } 39 | .webix_view.webix_popup.pdf_opt_list{ 40 | border:none; 41 | } 42 | .pdf_opt_list .webix_list{ 43 | background-color:@pdfBG; 44 | color:#fff; 45 | } 46 | .pdf_opt_list .webix_list .webix_list_item{ 47 | border-color:#474747; 48 | line-height:1.5em; 49 | } 50 | .pdf_opt_list .webix_list .webix_list_item.webix_selected, 51 | .pdf_opt_list .webix_list .webix_list_item:hover{ 52 | color:#404040; 53 | background-color:#fff; 54 | } -------------------------------------------------------------------------------- /sources/css/portlet.less: -------------------------------------------------------------------------------- 1 | .portlet_drag{ 2 | position: absolute; 3 | z-index: 1; 4 | top:5px; right:5px; 5 | 6 | width:18px; 7 | opacity: 0.5; 8 | cursor:pointer; 9 | } 10 | .portlet_in_drag{ 11 | opacity: 0.4; 12 | } 13 | .portlet_marker, .portlet_markertop, .portlet_markerbottom, .portlet_markerleft, .portlet_markerright{ 14 | opacity: 0.5; 15 | background: #9169BE; 16 | position: absolute; 17 | z-index:2; 18 | 19 | transition: top 0.5s, left 0.5s, width 0.5s, height 0.5s; 20 | top: 0px; left: 0px; 21 | width: 100%; height: 100%; 22 | } 23 | .portlet_markertop{ 24 | height: 50%; 25 | } 26 | .portlet_markerbottom{ 27 | height: 50%; top: 50%; 28 | } 29 | .portlet_markerleft{ 30 | width: 50%; 31 | } 32 | .portlet_markerright{ 33 | width: 50%; left: 50%; 34 | } 35 | 36 | 37 | .panel_icon{ 38 | position: absolute; 39 | z-index: 93; 40 | top:5px; right:5px; 41 | line-height:normal; 42 | font-size: 13px; 43 | 44 | width:18px; 45 | opacity: 0.5; 46 | cursor:pointer; 47 | } 48 | .webix_disabled_view .panel_icon{ 49 | z-index: 91; 50 | } 51 | .panel_target{ 52 | position: absolute; 53 | z-index: 3; 54 | background: rgba(0,0,0,.04); 55 | border: 1px solid @borderColor; 56 | #box > .sizing; 57 | } -------------------------------------------------------------------------------- /sources/css/progress.less: -------------------------------------------------------------------------------- 1 | .webix_progress_top, .webix_progress_bottom{ 2 | width: 100%; 3 | position: absolute; 4 | top: 0px; left:0px; 5 | height: 6px; 6 | overflow: hidden; 7 | z-index: 95; 8 | background: darken(@backColor,5%); 9 | } 10 | .webix_progress_bottom{ 11 | bottom: 0px; 12 | top:auto; 13 | height: 17px; 14 | } 15 | 16 | .webix_progress_top .webix_progress_state, .webix_progress_bottom .webix_progress_state{ 17 | width:0px; 18 | height:6px; 19 | background: @selectColor; 20 | transition: width 3s; 21 | } 22 | .webix_progress_bottom .webix_progress_state{ 23 | height:17px; 24 | } 25 | 26 | .webix_progress_icon { 27 | width: 100%; 28 | height:100%; 29 | position: absolute; 30 | top: 0px; left:0px; 31 | z-index: 95; 32 | } 33 | .webix_progress_icon .webix_progress_state{ 34 | font-family: @iconFamily; 35 | font-size: 50px; 36 | position: absolute; 37 | left: 50%; 38 | top: 50%; 39 | margin-left: -25px; 40 | margin-top: -25px; 41 | display: inline-block; 42 | color: lighten(@fontColor,30%); 43 | } -------------------------------------------------------------------------------- /sources/css/property.less: -------------------------------------------------------------------------------- 1 | .webix_property_line{ 2 | width: 100%; 3 | height: auto; 4 | line-height: 0; 5 | } 6 | .webix_property_line.webix_focused, 7 | .webix_property_line:focus{ 8 | & > div{ 9 | background-color: lighten(@selectColor, 1%); 10 | } 11 | } 12 | .webix_property_label, .webix_property_value{ 13 | display: inline-block; 14 | padding-left: @dataPadding; 15 | border-bottom: 1px solid @dataBorderColor; 16 | overflow: hidden; 17 | #box > .sizing; 18 | } 19 | .webix_property_label{ 20 | border-right:1px solid @dataBorderColor; 21 | } 22 | .webix_property_label_line{ 23 | .webix_common_header; 24 | padding-left: @dataPadding; 25 | border-bottom: 1px solid @dataBorderColor; 26 | #box > .sizing; 27 | } 28 | 29 | .webix_property_col_ind{ 30 | float: right; 31 | cursor: pointer; 32 | margin: 0 8px 0 0; 33 | border: 1px solid @borderColor; 34 | background: #ffffff; 35 | border-radius: 3px; 36 | width: 16px; 37 | height: 16px; 38 | } 39 | 40 | .webix_property_value { 41 | text-overflow: ellipsis; 42 | white-space: nowrap; 43 | } 44 | .webix_property_check{ 45 | margin: 0; 46 | vertical-align: middle; 47 | } -------------------------------------------------------------------------------- /sources/css/richtext.less: -------------------------------------------------------------------------------- 1 | .webix_richtext_editor { 2 | height: 100%; 3 | } 4 | 5 | .webix_template .webix_richtext_editor:focus { 6 | outline: none; 7 | } 8 | 9 | .webix_richtext_container .webix_template { 10 | padding: 10px; 11 | overflow-x: auto; 12 | border: solid @borderColor; 13 | border-width: 0px 1px 1px; 14 | border-radius: 0px 0px 6px 6px; 15 | } 16 | 17 | .webix_richtext_inp_label .webix_template{ 18 | .webix_inp_label; 19 | padding-top: 10px; 20 | float: none; 21 | } 22 | .webix_richtext{ 23 | .wxi-underline, .wxi-italic, .wxi-bold{ 24 | vertical-align: sub; 25 | font-size: 24px; 26 | width: 24px; 27 | } 28 | } -------------------------------------------------------------------------------- /sources/css/sidemenu.less: -------------------------------------------------------------------------------- 1 | @menuShadowColor: rgba(0, 0, 0, 0.05); 2 | @duration: 0.6s; 3 | // Left 4 | .webix_popup.webix_sidemenu.webix_sidemenu_left{ 5 | border-width: 0 1px 0 0; 6 | box-shadow: 2px 0 2px @menuShadowColor; 7 | } 8 | .webix_sidemenu_left.webix_animate{ 9 | transition: left @duration; 10 | } 11 | // Right 12 | .webix_popup.webix_sidemenu.webix_sidemenu_right{ 13 | left: auto; 14 | border-width: 0 0 0 1px; 15 | box-shadow: -2px 0px 2px @menuShadowColor; 16 | } 17 | .webix_sidemenu_right.webix_animate{ 18 | transition: right @duration; 19 | } 20 | // Top 21 | .webix_popup.webix_sidemenu.webix_sidemenu_top{ 22 | border-width: 0 0 1px 0 ; 23 | box-shadow: 0 2px 2px @menuShadowColor; 24 | } 25 | .webix_sidemenu_top .webix_win_body{ 26 | position: relative; 27 | } 28 | .webix_sidemenu_top .webix_win_body > .webix_view{ 29 | position: absolute; 30 | top: auto; 31 | left:0; 32 | bottom:0; 33 | } 34 | .webix_sidemenu_top.webix_animate, .webix_sidemenu_top.webix_animate .webix_win_body{ 35 | transition: height @duration; 36 | } 37 | // Bottom 38 | .webix_popup.webix_sidemenu.webix_sidemenu_bottom{ 39 | border-width: 1px 0 0 0 ; 40 | top: auto; 41 | box-shadow: 0 -2px 2px @menuShadowColor; 42 | } 43 | .webix_sidemenu_bottom.webix_animate, .webix_sidemenu_bottom.webix_animate .webix_win_body{ 44 | transition: height @duration; 45 | } 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /sources/css/skins/common.less: -------------------------------------------------------------------------------- 1 | .dataItemStyle{ 2 | 3 | } 4 | @iconFamily:"Webix Material Icons"; 5 | 6 | @boldStyle:bold; 7 | @fontSize:16; 8 | @borderRadius:0; 9 | @tabBorderRadius:0; 10 | @optionHeight: 25px; 11 | @spaceLayoutColor: #fff; 12 | @smallShadow: 1px 1px 5px #dddddd; 13 | @mediumShadow: 1px 3px 4px #c8c8c8; 14 | @bigShadow: 1px 3px 10px #bbbbbb; 15 | 16 | 17 | .dataHeaderBorders(){ 18 | 19 | } 20 | .dtBodyCell(){ 21 | 22 | } 23 | .buttonStyle(){ 24 | 25 | } 26 | .segmentActive(){ 27 | 28 | } 29 | .altBackColor{ 30 | 31 | } 32 | .altBackBorderColor{ 33 | 34 | } 35 | .activeShadow(){ 36 | 37 | } 38 | .darkHoverRule(@color){ 39 | 40 | } 41 | .darkFocusRule(@color){ 42 | 43 | } 44 | .darkActiveRule(@color){ 45 | 46 | } 47 | .buttonBorderStyle(@color){ 48 | 49 | } 50 | .invalidStyle(){ 51 | 52 | } -------------------------------------------------------------------------------- /sources/css/skins/compact/config.js: -------------------------------------------------------------------------------- 1 | const skin = { 2 | topLayout:"space", 3 | //bar in accordion 4 | barHeight:34, //!!!Set the same in skin.less!!! 5 | tabbarHeight: 34, 6 | sidebarTitleHeight: 34, 7 | rowHeight:24, 8 | toolbarHeight:34, 9 | listItemHeight:28, //list, grouplist, dataview, etc. 10 | unitHeaderHeight:20, 11 | propertyItemHeight:24, 12 | timelineItemHeight:50, 13 | inputHeight: 30, 14 | buttonHeight: 30, 15 | inputPadding: 3, 16 | menuHeight: 28, 17 | labelTopHeight: 16, 18 | fontSize: 13, 19 | 20 | inputSpacing: 4, 21 | borderWidth: 1, 22 | 23 | sliderHandleWidth: 10, 24 | sliderPadding: 10, 25 | sliderBorder: 1, 26 | vSliderPadding:13, 27 | vSliderHeight:100, 28 | switchHeight:20, 29 | switchWidth:40, 30 | 31 | //margin - distance between cells 32 | layoutMargin:{ space:5, wide:5, clean:0, head:4, line:-1, toolbar:4, form:4, accordion: 5 }, 33 | //padding - distance inside cell between cell border and cell content 34 | layoutPadding:{ space:5, wide:0, clean:0, head:0, line:0, toolbar:1, form:12, accordion: 0 }, 35 | //space between tabs in tabbar 36 | tabMargin:3, 37 | tabOffset: 0, 38 | tabBottomOffset: 3, 39 | tabTopOffset:1, 40 | 41 | customCheckbox: true, 42 | customRadio: true, 43 | 44 | popupPadding: 8, 45 | 46 | dataPadding: 10, 47 | 48 | calendarWeekHeaderHeight: 24, 49 | padding:0, 50 | accordionType: "accordion", 51 | 52 | optionHeight: 23, 53 | timelineColor:"#3498db", 54 | 55 | backColor:"#ffffff", 56 | dataBorderColor:"#ebebeb", 57 | 58 | //colorboard 59 | colorPadding: 4 60 | }; 61 | 62 | export default skin; -------------------------------------------------------------------------------- /sources/css/skins/contrast/config.js: -------------------------------------------------------------------------------- 1 | const skin = { 2 | topLayout:"space", 3 | //bar in accordion 4 | barHeight:46, // !!!Set the same in skin.less!!! 5 | tabbarHeight: 46, 6 | rowHeight:34, 7 | toolbarHeight:46, 8 | sidebarTitleHeight:45, 9 | listItemHeight:34, // list, grouplist, dataview, etc. 10 | unitHeaderHeight:20, 11 | inputHeight: 38, 12 | buttonHeight: 38, 13 | inputPadding: 3, 14 | menuHeight: 34, 15 | labelTopHeight: 22, 16 | propertyItemHeight: 28, 17 | timelineItemHeight:70, 18 | fontSize: 15, 19 | 20 | inputSpacing: 4, 21 | borderWidth: 1, 22 | 23 | sliderHandleWidth: 14, 24 | sliderPadding: 10, 25 | sliderBorder: 1, 26 | vSliderPadding:15, 27 | vSliderHeight:100, 28 | switchHeight:22, 29 | switchWidth:50, 30 | 31 | //margin - distance between cells 32 | layoutMargin:{ space:10, wide:10, clean:0, head:4, line:-1, toolbar:8, form:8, accordion: 10 }, 33 | //padding - distance inside cell between cell border and cell content 34 | layoutPadding:{ space:10, wide:0, clean:0, head:0, line:0, toolbar:3, form:17, accordion: 0 }, 35 | //space between tabs in tabbar 36 | tabMargin:4, 37 | tabOffset: 0, 38 | tabBottomOffset: 6, 39 | tabTopOffset:1, 40 | 41 | customCheckbox: true, 42 | customRadio: true, 43 | 44 | popupPadding: 8, 45 | dataPadding: 10, 46 | 47 | calendarWeekHeaderHeight: 24, 48 | padding:0, 49 | accordionType: "accordion", 50 | 51 | optionHeight: 32, 52 | timelineColor:"#b300b3", 53 | 54 | backColor:"#393939", 55 | dataBorderColor:"#4d4d4d", 56 | 57 | //colorboard 58 | colorPadding: 4 59 | }; 60 | 61 | export default skin; -------------------------------------------------------------------------------- /sources/css/skins/flat/config.js: -------------------------------------------------------------------------------- 1 | const skin = { 2 | topLayout:"space", 3 | //bar in accordion 4 | barHeight:46, //!!!Set the same in skin.less!!! 5 | tabbarHeight: 46, 6 | rowHeight:34, 7 | toolbarHeight:46, 8 | sidebarTitleHeight:45, 9 | listItemHeight:34, //list, grouplist, dataview, etc. 10 | inputHeight: 38, 11 | buttonHeight: 38, 12 | inputPadding: 3, 13 | menuHeight: 34, 14 | labelTopHeight: 22, 15 | unitHeaderHeight:20, 16 | propertyItemHeight: 28, 17 | timelineItemHeight:70, 18 | fontSize: 15, 19 | 20 | inputSpacing: 4, 21 | borderWidth: 1, 22 | 23 | sliderHandleWidth: 14, 24 | sliderPadding: 10, 25 | sliderBorder: 1, 26 | vSliderPadding:15, 27 | vSliderHeight:100, 28 | switchHeight:22, 29 | switchWidth:50, 30 | 31 | //margin - distance between cells 32 | layoutMargin:{ space:10, wide:10, clean:0, head:4, line:-1, toolbar:4, form:8, accordion: 10 }, 33 | //padding - distance insede cell between cell border and cell content 34 | layoutPadding:{ space:10, wide:0, clean:0, head:0, line:0, toolbar:3, form:17, accordion: 0 }, 35 | //space between tabs in tabbar 36 | tabMargin:4, 37 | tabOffset: 0, 38 | tabBottomOffset: 6, 39 | tabTopOffset:1, 40 | 41 | customCheckbox: true, 42 | customRadio: true, 43 | 44 | popupPadding: 8, 45 | 46 | dataPadding: 10, 47 | 48 | calendarWeekHeaderHeight: 24, 49 | padding:0, 50 | accordionType: "accordion", 51 | 52 | optionHeight: 32, 53 | timelineColor:"#3498db", 54 | 55 | backColor:"#ffffff", 56 | dataBorderColor:"#ebebeb", 57 | 58 | //colorboard 59 | colorPadding: 4 60 | }; 61 | 62 | export default skin; -------------------------------------------------------------------------------- /sources/css/sparklines.less: -------------------------------------------------------------------------------- 1 | .webix_sparklines{ 2 | padding: 1px 0; 3 | #box > .sizing; 4 | } 5 | .webix_sparklines svg{ 6 | #box > .sizing; 7 | } 8 | .webix_sparklines_line{ 9 | stroke: #3498db; 10 | stroke-width: 1; 11 | fill: transparent; 12 | stroke-linecap: round; 13 | } 14 | .webix_sparklines_item{ 15 | fill: #3498db; 16 | stroke-width: 1; 17 | } 18 | .webix_sparklines_bar{ 19 | fill: #6dbcf0; 20 | } 21 | .webix_sparklines_bar_negative{ 22 | fill: #d86c79; 23 | } 24 | .webix_sparklines_area{ 25 | fill: #e5eef4; 26 | opacity: 0.5; 27 | } 28 | .webix_sparklines_origin{ 29 | stroke: #888; 30 | stroke-width: 1; 31 | fill: transparent; 32 | } 33 | .webix_sparklines_event_area{ 34 | fill:transparent; 35 | } 36 | 37 | .webix_sparklines_donut_hole{ 38 | fill: @backColor; 39 | } 40 | 41 | .webix_sparklines_line_chart, .webix_sparklines_area_chart, .webix_sparklines_splinearea_chart, .webix_sparklines_radar_chart{ 42 | .webix_sparklines_event_area:hover{ 43 | fill: rgba(220, 220, 220, 0.40); 44 | stroke: rgba(255, 255, 255, 0.6); 45 | } 46 | } 47 | .webix_sparklines_pie_chart, .webix_sparklines_bar_chart{ 48 | .webix_sparklines_event_area:hover{ 49 | fill: rgba(255, 255, 255, 0.3); 50 | } 51 | } -------------------------------------------------------------------------------- /sources/css/switch.less: -------------------------------------------------------------------------------- 1 | @switchHeight:24px; 2 | 3 | .webix_switch_toggle { 4 | position: absolute; 5 | visibility: hidden; 6 | } 7 | .webix_switch_box { 8 | display: block; 9 | position: relative; 10 | top: 50%; 11 | margin-top: -(@switchHeight/2); 12 | height: @switchHeight; 13 | cursor: pointer; 14 | 15 | background-color: #f1f1f1; 16 | border:1px solid @borderColor; 17 | border-radius: 60px; 18 | transition: background-color 0.4s ease; 19 | color: #666; 20 | text-align: center; 21 | float: left; 22 | #box > .sizing; 23 | } 24 | 25 | .webix_el_switch .webix_label_right{ 26 | display:block; 27 | padding-top:3px; 28 | margin-top:4px; 29 | } 30 | 31 | .webix_switch_handle{ 32 | height: @switchHeight - 2px; 33 | width: @switchHeight - 2px; 34 | border-radius: 100%; 35 | box-shadow: 0 1px 5px rgba(0, 0, 0, 0.3); 36 | border:1px solid #eee; 37 | position: absolute; 38 | top:0px; 39 | background-color: #fff; 40 | transition: left 0.3s ease; 41 | cursor:pointer; 42 | #box > .sizing; 43 | } 44 | .webix_switch_handle:focus, 45 | .webix_switch_box:active .webix_switch_handle{ 46 | box-shadow: 0 0px 2px 2px rgba(0,0,0,0.2); 47 | } 48 | 49 | .webix_switch_text{ 50 | #box >.noselect; 51 | padding: 1px 0 0 18px; 52 | display: inline-block; 53 | width:100%; 54 | #box > .sizing; 55 | } 56 | .webix_switch_on .webix_switch_text{ 57 | padding: 1px 18px 0 0; 58 | } 59 | 60 | .webix_switch_box.webix_switch_on { 61 | background-color:@buttonColor; 62 | color:#fff; 63 | } 64 | 65 | 66 | -------------------------------------------------------------------------------- /sources/css/timeboard.less: -------------------------------------------------------------------------------- 1 | .webix_timeboard .webix_slider_title{ 2 | text-align: left; 3 | margin-left: 10px; 4 | } 5 | .webix_timeboard .webix_colon_template .webix_template{ 6 | padding: 0; 7 | text-align: center; 8 | line-height: 100%; 9 | font-size: 30px; 10 | #box > .noselect; 11 | } 12 | .webix_timeboard .webix_day_part .webix_el_box{ 13 | padding-left: 6px; 14 | color: @baseColor; 15 | cursor: pointer; 16 | #box > .noselect; 17 | 18 | &:hover, &:focus{ 19 | color: darken(@baseColor, 8%); 20 | } 21 | } -------------------------------------------------------------------------------- /sources/css/timeline.less: -------------------------------------------------------------------------------- 1 | .webix_timeline .webix_scroll_cont{ 2 | padding-top:28px; 3 | } 4 | .webix_timeline_item{ 5 | line-height: 0; 6 | padding: 0 @dataPadding; 7 | position: relative; 8 | #box > .sizing; 9 | } 10 | .webix_timeline_date, .webix_timeline_event{ 11 | line-height: 20px; 12 | overflow:hidden; 13 | position:absolute; 14 | top:0px; 15 | } 16 | .webix_timeline_left .webix_timeline_date, 17 | .webix_timeline_right .webix_timeline_details, 18 | .webix_timeline_right .webix_timeline_value{ 19 | text-align: right; 20 | } 21 | .webix_timeline_value{ 22 | font-weight: @boldStyle; 23 | } 24 | .webix_timeline_details{ 25 | color:@inactiveFontColor; 26 | padding-top:2px; 27 | } 28 | .webix_timeline_date{ 29 | white-space: nowrap; 30 | overflow:hidden; 31 | text-overflow:ellipsis; 32 | } 33 | // horizontal mode 34 | .webix_timeline_horizontal .webix_scroll_cont{ 35 | white-space:nowrap; 36 | display:inline-block; 37 | padding-left:28px; 38 | height:100%; 39 | #box > .sizing; 40 | } 41 | .webix_timeline_horizontal .webix_timeline_item{ 42 | display:inline-block; 43 | height:100%; 44 | padding:@dataPadding 0 @dataPadding 0; 45 | white-space:normal; 46 | .webix_timeline_date, .webix_timeline_event{ 47 | left:0px; 48 | } 49 | &.webix_timeline_bottom .webix_timeline_event{ 50 | top: initial; 51 | } 52 | } -------------------------------------------------------------------------------- /sources/css/tooltip.less: -------------------------------------------------------------------------------- 1 | /*style used by tooltip's container*/ 2 | .webix_tooltip{ 3 | display:none; 4 | position:absolute; 5 | z-index:10000; 6 | 7 | background-color:@backColor; 8 | padding: 5px 10px; 9 | border:1px solid @borderColor; 10 | 11 | .mainFont; 12 | 13 | border-radius: @windowRadius; 14 | box-shadow: @smallShadow; 15 | 16 | -webkit-font-smoothing: antialiased; 17 | -moz-osx-font-smoothing: grayscale; 18 | } 19 | 20 | .webix_global_tooltip{ 21 | pointer-events: none; 22 | } 23 | -------------------------------------------------------------------------------- /sources/css/touch.less: -------------------------------------------------------------------------------- 1 | //from view.css 2 | html, body{ 3 | overflow:auto; 4 | } 5 | 6 | .webix_view{ 7 | vertical-align:top; 8 | } 9 | 10 | .webix_accordionitem_header .webix_accordionitem_button, .webix_accordionitem_header_v .webix_accordionitem_button{ 11 | margin: 18px 7px; 12 | } 13 | .webix_accordionitem_header .webix_accordionitem_button.collapsed{ 14 | margin: 18px 7px; 15 | } -------------------------------------------------------------------------------- /sources/css/treemap.less: -------------------------------------------------------------------------------- 1 | .webix_treemap{ 2 | background-color: #f5f5f5; 3 | } 4 | .webix_treemap .webix_scroll_cont{ 5 | position: relative; 6 | height: 100%; 7 | width: 100%; 8 | } 9 | .webix_treemap_item{ 10 | position: absolute; 11 | color: #444; 12 | overflow: hidden; 13 | text-align: left; 14 | #box >.sizing; 15 | padding: 3px 5px; 16 | border-width: 0px 1px 1px 0; 17 | border-style: solid; 18 | border-color: rgba(0,0,0,0.2); 19 | background: transparent; 20 | cursor:pointer; 21 | } 22 | .webix_treemap_level_top{ 23 | z-index: 1; 24 | border-color: rgba(0,0,0,0.4); 25 | } 26 | 27 | .webix_treemap_item_bottom{ 28 | border-bottom-width:0; 29 | } 30 | .webix_treemap_item_right{ 31 | border-right-width:0; 32 | } 33 | .webix_treemap_item:hover{ 34 | box-shadow: inset 0 0 5px #666; 35 | } 36 | .webix_treemap_item.webix_selected{ 37 | border-color: @selectColor; 38 | box-shadow: inset 0 0 1px 2px @selectColor; 39 | } 40 | .webix_treemap_header{ 41 | width: 100%; 42 | #box >.sizing; 43 | } 44 | .webix_treemap_header{ 45 | padding: 0 10px; 46 | border-bottom: 1px solid @borderColor; 47 | } 48 | .webix_treemap_header_item{ 49 | cursor: pointer; 50 | } 51 | .webix_treemap_header_item:hover{ 52 | 53 | } 54 | 55 | .webix_treemap_header_item:last-child{ 56 | cursor: default; 57 | } 58 | .webix_treemap_reset{ 59 | float:right; 60 | width: 25px; 61 | text-align: center; 62 | } 63 | .webix_treemap_reset:before{ 64 | content: "\F011"; 65 | color: @fontColor; 66 | font-family: @iconFamily; 67 | font-size: 16px; 68 | display: block; 69 | cursor: pointer; 70 | } 71 | .webix_treemap_path_icon{ 72 | width: 20px; 73 | text-align: center; 74 | } -------------------------------------------------------------------------------- /sources/css/treetable.less: -------------------------------------------------------------------------------- 1 | @import "datatable.less"; 2 | @import "tree.less"; 3 | 4 | -------------------------------------------------------------------------------- /sources/css/uploader.less: -------------------------------------------------------------------------------- 1 | .webix_hidden_upload, .webix_el_button .webix_hidden_upload{ 2 | height:1px; width:1px; 3 | border: 0 !important; 4 | font-size: 1px; 5 | position: absolute; 6 | top:0px; left:0px; z-index: -1; 7 | opacity:0; 8 | } 9 | .webix_upload_client, .webix_upload_error, .webix_upload_server{ 10 | width:60px; 11 | text-align: center; 12 | float:right; 13 | } 14 | .webix_error_icon, .webix_cancel_icon{ 15 | display: inline-block; 16 | background-repeat:no-repeat; 17 | } 18 | .webix_error_icon{ 19 | width: 18px; 20 | height: 16px; 21 | background-image: data-uri('../images/@{skin}/uploader/error.png'); 22 | } 23 | .webix_upload_server{ 24 | color: @accentColor; 25 | } 26 | .webix_remove_upload{ 27 | float: right; 28 | } 29 | .webix_cancel_icon{ 30 | margin-top: @listItemHeight/2 - @listPaddingY - 7; 31 | width: 14px; 32 | height: 14px; 33 | background-image: data-uri('../images/@{skin}/uploader/cancel.png'); 34 | } 35 | .webix_upload_flash{ 36 | width:100%; 37 | height:100%; 38 | position:absolute; 39 | bottom: 0; 40 | left:0; 41 | background: #fff; 42 | } 43 | .webix_drop_file{ 44 | background: #f4f4f4; 45 | position: relative; 46 | } 47 | .webix_drop_file::before{ 48 | position:absolute; bottom:10px; left:0px; 49 | width:100%; text-align: center; 50 | pointer-events: none; 51 | } -------------------------------------------------------------------------------- /sources/i18n/index.js: -------------------------------------------------------------------------------- 1 | // en-EN locale is bundled by default 2 | import i18n from "../webix/i18n"; 3 | 4 | // germany 5 | import de from "./de"; 6 | i18n.locales["de-DE"] = de; 7 | 8 | // spain 9 | import es from "./es"; 10 | i18n.locales["es-ES"] = es; 11 | 12 | // france 13 | import fr from "./fr"; 14 | i18n.locales["fr-FR"] = fr; 15 | 16 | // italy 17 | import it from "./it"; 18 | i18n.locales["it-IT"] = it; 19 | 20 | // japan 21 | import ja from "./ja"; 22 | i18n.locales["ja-JP"] = ja; 23 | 24 | // portuguese 25 | import pt from "./pt"; 26 | i18n.locales["pt-BR"] = pt; 27 | 28 | // chinese 29 | import zh from "./zh"; 30 | i18n.locales["zh-CN"] = zh; 31 | 32 | // russian 33 | import ru from "./ru"; 34 | i18n.locales["ru-RU"] = ru; 35 | 36 | // belarus 37 | import be from "./be"; 38 | i18n.locales["be-BY"] = be; -------------------------------------------------------------------------------- /sources/images/compact/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/arrows.png -------------------------------------------------------------------------------- /sources/images/compact/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/check.png -------------------------------------------------------------------------------- /sources/images/compact/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/down.png -------------------------------------------------------------------------------- /sources/images/compact/draghor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/draghor.png -------------------------------------------------------------------------------- /sources/images/compact/dragver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/dragver.png -------------------------------------------------------------------------------- /sources/images/compact/header-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/header-down.png -------------------------------------------------------------------------------- /sources/images/compact/header-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/header-up.png -------------------------------------------------------------------------------- /sources/images/compact/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/left.png -------------------------------------------------------------------------------- /sources/images/compact/nav_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_next.png -------------------------------------------------------------------------------- /sources/images/compact/nav_next_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_next_alt.png -------------------------------------------------------------------------------- /sources/images/compact/nav_next_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_next_alt_dark.png -------------------------------------------------------------------------------- /sources/images/compact/nav_next_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_next_dark.png -------------------------------------------------------------------------------- /sources/images/compact/nav_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_prev.png -------------------------------------------------------------------------------- /sources/images/compact/nav_prev_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_prev_alt.png -------------------------------------------------------------------------------- /sources/images/compact/nav_prev_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_prev_alt_dark.png -------------------------------------------------------------------------------- /sources/images/compact/nav_prev_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/nav_prev_dark.png -------------------------------------------------------------------------------- /sources/images/compact/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/right.png -------------------------------------------------------------------------------- /sources/images/compact/scroll_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/scroll_arrow_down.png -------------------------------------------------------------------------------- /sources/images/compact/scroll_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/scroll_arrow_left.png -------------------------------------------------------------------------------- /sources/images/compact/scroll_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/scroll_arrow_right.png -------------------------------------------------------------------------------- /sources/images/compact/scroll_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/scroll_arrow_up.png -------------------------------------------------------------------------------- /sources/images/compact/scroll_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/scroll_hor.png -------------------------------------------------------------------------------- /sources/images/compact/scroll_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/scroll_ver.png -------------------------------------------------------------------------------- /sources/images/compact/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/search.png -------------------------------------------------------------------------------- /sources/images/compact/section_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/section_bg.png -------------------------------------------------------------------------------- /sources/images/compact/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/slider.png -------------------------------------------------------------------------------- /sources/images/compact/slider_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/slider_hor.png -------------------------------------------------------------------------------- /sources/images/compact/slider_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/slider_ver.png -------------------------------------------------------------------------------- /sources/images/compact/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/sort_asc.png -------------------------------------------------------------------------------- /sources/images/compact/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/sort_desc.png -------------------------------------------------------------------------------- /sources/images/compact/tree/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/file.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/folder.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/folderOpen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/folderOpen.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/line1.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/line2.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/line3.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/line4.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/minus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/minus1.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/minus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/minus2.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/minus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/minus3.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/minus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/minus4.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/plus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/plus1.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/plus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/plus2.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/plus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/plus3.gif -------------------------------------------------------------------------------- /sources/images/compact/tree/plus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/tree/plus4.gif -------------------------------------------------------------------------------- /sources/images/compact/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/up.png -------------------------------------------------------------------------------- /sources/images/compact/uploader/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/uploader/cancel.png -------------------------------------------------------------------------------- /sources/images/compact/uploader/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/uploader/error.png -------------------------------------------------------------------------------- /sources/images/compact/white-arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/compact/white-arrow-left.png -------------------------------------------------------------------------------- /sources/images/contrast/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/arrows.png -------------------------------------------------------------------------------- /sources/images/contrast/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/check.png -------------------------------------------------------------------------------- /sources/images/contrast/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/down.png -------------------------------------------------------------------------------- /sources/images/contrast/draghor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/draghor.png -------------------------------------------------------------------------------- /sources/images/contrast/dragver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/dragver.png -------------------------------------------------------------------------------- /sources/images/contrast/header-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/header-down.png -------------------------------------------------------------------------------- /sources/images/contrast/header-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/header-up.png -------------------------------------------------------------------------------- /sources/images/contrast/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/left.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_next.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_next_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_next_alt.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_next_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_next_alt_dark.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_next_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_next_dark.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_prev.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_prev_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_prev_alt.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_prev_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_prev_alt_dark.png -------------------------------------------------------------------------------- /sources/images/contrast/nav_prev_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/nav_prev_dark.png -------------------------------------------------------------------------------- /sources/images/contrast/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/right.png -------------------------------------------------------------------------------- /sources/images/contrast/scroll_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/scroll_arrow_down.png -------------------------------------------------------------------------------- /sources/images/contrast/scroll_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/scroll_arrow_left.png -------------------------------------------------------------------------------- /sources/images/contrast/scroll_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/scroll_arrow_right.png -------------------------------------------------------------------------------- /sources/images/contrast/scroll_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/scroll_arrow_up.png -------------------------------------------------------------------------------- /sources/images/contrast/scroll_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/scroll_hor.png -------------------------------------------------------------------------------- /sources/images/contrast/scroll_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/scroll_ver.png -------------------------------------------------------------------------------- /sources/images/contrast/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/search.png -------------------------------------------------------------------------------- /sources/images/contrast/section_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/section_bg.png -------------------------------------------------------------------------------- /sources/images/contrast/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/slider.png -------------------------------------------------------------------------------- /sources/images/contrast/slider_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/slider_hor.png -------------------------------------------------------------------------------- /sources/images/contrast/slider_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/slider_ver.png -------------------------------------------------------------------------------- /sources/images/contrast/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/sort_asc.png -------------------------------------------------------------------------------- /sources/images/contrast/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/sort_desc.png -------------------------------------------------------------------------------- /sources/images/contrast/tree/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/file.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/folder.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/folderOpen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/folderOpen.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/line1.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/line2.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/line3.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/line4.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/minus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/minus1.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/minus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/minus2.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/minus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/minus3.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/minus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/minus4.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/plus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/plus1.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/plus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/plus2.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/plus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/plus3.gif -------------------------------------------------------------------------------- /sources/images/contrast/tree/plus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/tree/plus4.gif -------------------------------------------------------------------------------- /sources/images/contrast/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/up.png -------------------------------------------------------------------------------- /sources/images/contrast/uploader/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/uploader/cancel.png -------------------------------------------------------------------------------- /sources/images/contrast/uploader/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/uploader/error.png -------------------------------------------------------------------------------- /sources/images/contrast/white-arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/contrast/white-arrow-left.png -------------------------------------------------------------------------------- /sources/images/dark/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/arrows.png -------------------------------------------------------------------------------- /sources/images/dark/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/check.png -------------------------------------------------------------------------------- /sources/images/dark/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/down.png -------------------------------------------------------------------------------- /sources/images/dark/draghor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/draghor.png -------------------------------------------------------------------------------- /sources/images/dark/dragver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/dragver.png -------------------------------------------------------------------------------- /sources/images/dark/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/left.png -------------------------------------------------------------------------------- /sources/images/dark/nav_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_next.png -------------------------------------------------------------------------------- /sources/images/dark/nav_next_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_next_alt.png -------------------------------------------------------------------------------- /sources/images/dark/nav_next_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_next_alt_dark.png -------------------------------------------------------------------------------- /sources/images/dark/nav_next_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_next_dark.png -------------------------------------------------------------------------------- /sources/images/dark/nav_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_prev.png -------------------------------------------------------------------------------- /sources/images/dark/nav_prev_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_prev_alt.png -------------------------------------------------------------------------------- /sources/images/dark/nav_prev_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_prev_alt_dark.png -------------------------------------------------------------------------------- /sources/images/dark/nav_prev_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/nav_prev_dark.png -------------------------------------------------------------------------------- /sources/images/dark/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/right.png -------------------------------------------------------------------------------- /sources/images/dark/slider_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/slider_hor.png -------------------------------------------------------------------------------- /sources/images/dark/slider_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/slider_ver.png -------------------------------------------------------------------------------- /sources/images/dark/tree/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/tree/file.gif -------------------------------------------------------------------------------- /sources/images/dark/tree/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/tree/folder.gif -------------------------------------------------------------------------------- /sources/images/dark/tree/folderOpen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/tree/folderOpen.gif -------------------------------------------------------------------------------- /sources/images/dark/tree/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/tree/line1.gif -------------------------------------------------------------------------------- /sources/images/dark/tree/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/tree/line2.gif -------------------------------------------------------------------------------- /sources/images/dark/tree/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/tree/line3.gif -------------------------------------------------------------------------------- /sources/images/dark/tree/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/tree/line4.gif -------------------------------------------------------------------------------- /sources/images/dark/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/up.png -------------------------------------------------------------------------------- /sources/images/dark/uploader/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/uploader/cancel.png -------------------------------------------------------------------------------- /sources/images/dark/uploader/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/dark/uploader/error.png -------------------------------------------------------------------------------- /sources/images/flat/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/arrows.png -------------------------------------------------------------------------------- /sources/images/flat/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/check.png -------------------------------------------------------------------------------- /sources/images/flat/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/down.png -------------------------------------------------------------------------------- /sources/images/flat/draghor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/draghor.png -------------------------------------------------------------------------------- /sources/images/flat/dragver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/dragver.png -------------------------------------------------------------------------------- /sources/images/flat/header-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/header-down.png -------------------------------------------------------------------------------- /sources/images/flat/header-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/header-up.png -------------------------------------------------------------------------------- /sources/images/flat/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/left.png -------------------------------------------------------------------------------- /sources/images/flat/nav_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_next.png -------------------------------------------------------------------------------- /sources/images/flat/nav_next_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_next_alt.png -------------------------------------------------------------------------------- /sources/images/flat/nav_next_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_next_alt_dark.png -------------------------------------------------------------------------------- /sources/images/flat/nav_next_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_next_dark.png -------------------------------------------------------------------------------- /sources/images/flat/nav_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_prev.png -------------------------------------------------------------------------------- /sources/images/flat/nav_prev_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_prev_alt.png -------------------------------------------------------------------------------- /sources/images/flat/nav_prev_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_prev_alt_dark.png -------------------------------------------------------------------------------- /sources/images/flat/nav_prev_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/nav_prev_dark.png -------------------------------------------------------------------------------- /sources/images/flat/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/right.png -------------------------------------------------------------------------------- /sources/images/flat/scroll_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/scroll_arrow_down.png -------------------------------------------------------------------------------- /sources/images/flat/scroll_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/scroll_arrow_left.png -------------------------------------------------------------------------------- /sources/images/flat/scroll_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/scroll_arrow_right.png -------------------------------------------------------------------------------- /sources/images/flat/scroll_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/scroll_arrow_up.png -------------------------------------------------------------------------------- /sources/images/flat/scroll_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/scroll_hor.png -------------------------------------------------------------------------------- /sources/images/flat/scroll_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/scroll_ver.png -------------------------------------------------------------------------------- /sources/images/flat/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/search.png -------------------------------------------------------------------------------- /sources/images/flat/section_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/section_bg.png -------------------------------------------------------------------------------- /sources/images/flat/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/slider.png -------------------------------------------------------------------------------- /sources/images/flat/slider_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/slider_hor.png -------------------------------------------------------------------------------- /sources/images/flat/slider_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/slider_ver.png -------------------------------------------------------------------------------- /sources/images/flat/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/sort_asc.png -------------------------------------------------------------------------------- /sources/images/flat/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/sort_desc.png -------------------------------------------------------------------------------- /sources/images/flat/tree/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/file.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/folder.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/folderOpen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/folderOpen.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/line1.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/line2.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/line3.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/line4.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/minus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/minus1.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/minus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/minus2.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/minus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/minus3.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/minus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/minus4.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/plus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/plus1.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/plus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/plus2.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/plus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/plus3.gif -------------------------------------------------------------------------------- /sources/images/flat/tree/plus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/tree/plus4.gif -------------------------------------------------------------------------------- /sources/images/flat/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/up.png -------------------------------------------------------------------------------- /sources/images/flat/uploader/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/uploader/cancel.png -------------------------------------------------------------------------------- /sources/images/flat/uploader/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/uploader/error.png -------------------------------------------------------------------------------- /sources/images/flat/white-arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/flat/white-arrow-left.png -------------------------------------------------------------------------------- /sources/images/material/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/arrows.png -------------------------------------------------------------------------------- /sources/images/material/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/check.png -------------------------------------------------------------------------------- /sources/images/material/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/down.png -------------------------------------------------------------------------------- /sources/images/material/draghor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/draghor.png -------------------------------------------------------------------------------- /sources/images/material/dragver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/dragver.png -------------------------------------------------------------------------------- /sources/images/material/header-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/header-down.png -------------------------------------------------------------------------------- /sources/images/material/header-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/header-up.png -------------------------------------------------------------------------------- /sources/images/material/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/left.png -------------------------------------------------------------------------------- /sources/images/material/nav_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_next.png -------------------------------------------------------------------------------- /sources/images/material/nav_next_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_next_alt.png -------------------------------------------------------------------------------- /sources/images/material/nav_next_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_next_alt_dark.png -------------------------------------------------------------------------------- /sources/images/material/nav_next_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_next_dark.png -------------------------------------------------------------------------------- /sources/images/material/nav_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_prev.png -------------------------------------------------------------------------------- /sources/images/material/nav_prev_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_prev_alt.png -------------------------------------------------------------------------------- /sources/images/material/nav_prev_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_prev_alt_dark.png -------------------------------------------------------------------------------- /sources/images/material/nav_prev_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/nav_prev_dark.png -------------------------------------------------------------------------------- /sources/images/material/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/right.png -------------------------------------------------------------------------------- /sources/images/material/scroll_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/scroll_arrow_down.png -------------------------------------------------------------------------------- /sources/images/material/scroll_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/scroll_arrow_left.png -------------------------------------------------------------------------------- /sources/images/material/scroll_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/scroll_arrow_right.png -------------------------------------------------------------------------------- /sources/images/material/scroll_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/scroll_arrow_up.png -------------------------------------------------------------------------------- /sources/images/material/scroll_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/scroll_hor.png -------------------------------------------------------------------------------- /sources/images/material/scroll_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/scroll_ver.png -------------------------------------------------------------------------------- /sources/images/material/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/search.png -------------------------------------------------------------------------------- /sources/images/material/section_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/section_bg.png -------------------------------------------------------------------------------- /sources/images/material/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/slider.png -------------------------------------------------------------------------------- /sources/images/material/slider_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/slider_hor.png -------------------------------------------------------------------------------- /sources/images/material/slider_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/slider_ver.png -------------------------------------------------------------------------------- /sources/images/material/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/sort_asc.png -------------------------------------------------------------------------------- /sources/images/material/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/sort_desc.png -------------------------------------------------------------------------------- /sources/images/material/tree/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/file.gif -------------------------------------------------------------------------------- /sources/images/material/tree/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/folder.gif -------------------------------------------------------------------------------- /sources/images/material/tree/folderOpen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/folderOpen.gif -------------------------------------------------------------------------------- /sources/images/material/tree/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/line1.gif -------------------------------------------------------------------------------- /sources/images/material/tree/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/line2.gif -------------------------------------------------------------------------------- /sources/images/material/tree/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/line3.gif -------------------------------------------------------------------------------- /sources/images/material/tree/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/line4.gif -------------------------------------------------------------------------------- /sources/images/material/tree/minus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/minus1.gif -------------------------------------------------------------------------------- /sources/images/material/tree/minus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/minus2.gif -------------------------------------------------------------------------------- /sources/images/material/tree/minus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/minus3.gif -------------------------------------------------------------------------------- /sources/images/material/tree/minus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/minus4.gif -------------------------------------------------------------------------------- /sources/images/material/tree/plus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/plus1.gif -------------------------------------------------------------------------------- /sources/images/material/tree/plus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/plus2.gif -------------------------------------------------------------------------------- /sources/images/material/tree/plus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/plus3.gif -------------------------------------------------------------------------------- /sources/images/material/tree/plus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/tree/plus4.gif -------------------------------------------------------------------------------- /sources/images/material/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/up.png -------------------------------------------------------------------------------- /sources/images/material/uploader/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/uploader/cancel.png -------------------------------------------------------------------------------- /sources/images/material/uploader/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/uploader/error.png -------------------------------------------------------------------------------- /sources/images/material/white-arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/material/white-arrow-left.png -------------------------------------------------------------------------------- /sources/images/mini/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/arrows.png -------------------------------------------------------------------------------- /sources/images/mini/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/check.png -------------------------------------------------------------------------------- /sources/images/mini/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/down.png -------------------------------------------------------------------------------- /sources/images/mini/draghor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/draghor.png -------------------------------------------------------------------------------- /sources/images/mini/dragver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/dragver.png -------------------------------------------------------------------------------- /sources/images/mini/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/left.png -------------------------------------------------------------------------------- /sources/images/mini/nav_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_next.png -------------------------------------------------------------------------------- /sources/images/mini/nav_next_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_next_alt.png -------------------------------------------------------------------------------- /sources/images/mini/nav_next_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_next_alt_dark.png -------------------------------------------------------------------------------- /sources/images/mini/nav_next_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_next_dark.png -------------------------------------------------------------------------------- /sources/images/mini/nav_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_prev.png -------------------------------------------------------------------------------- /sources/images/mini/nav_prev_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_prev_alt.png -------------------------------------------------------------------------------- /sources/images/mini/nav_prev_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_prev_alt_dark.png -------------------------------------------------------------------------------- /sources/images/mini/nav_prev_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/nav_prev_dark.png -------------------------------------------------------------------------------- /sources/images/mini/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/right.png -------------------------------------------------------------------------------- /sources/images/mini/scroll_arrow_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/scroll_arrow_down.png -------------------------------------------------------------------------------- /sources/images/mini/scroll_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/scroll_arrow_left.png -------------------------------------------------------------------------------- /sources/images/mini/scroll_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/scroll_arrow_right.png -------------------------------------------------------------------------------- /sources/images/mini/scroll_arrow_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/scroll_arrow_up.png -------------------------------------------------------------------------------- /sources/images/mini/scroll_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/scroll_hor.png -------------------------------------------------------------------------------- /sources/images/mini/scroll_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/scroll_ver.png -------------------------------------------------------------------------------- /sources/images/mini/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/search.png -------------------------------------------------------------------------------- /sources/images/mini/section_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/section_bg.png -------------------------------------------------------------------------------- /sources/images/mini/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/slider.png -------------------------------------------------------------------------------- /sources/images/mini/slider_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/slider_hor.png -------------------------------------------------------------------------------- /sources/images/mini/slider_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/slider_ver.png -------------------------------------------------------------------------------- /sources/images/mini/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/sort_asc.png -------------------------------------------------------------------------------- /sources/images/mini/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/sort_desc.png -------------------------------------------------------------------------------- /sources/images/mini/tree/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/file.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/folder.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/folderOpen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/folderOpen.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/line1.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/line2.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/line3.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/line4.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/minus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/minus1.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/minus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/minus2.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/minus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/minus3.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/minus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/minus4.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/plus1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/plus1.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/plus2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/plus2.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/plus3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/plus3.gif -------------------------------------------------------------------------------- /sources/images/mini/tree/plus4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/tree/plus4.gif -------------------------------------------------------------------------------- /sources/images/mini/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/up.png -------------------------------------------------------------------------------- /sources/images/mini/uploader/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/uploader/cancel.png -------------------------------------------------------------------------------- /sources/images/mini/uploader/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/uploader/error.png -------------------------------------------------------------------------------- /sources/images/mini/white-arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/mini/white-arrow-left.png -------------------------------------------------------------------------------- /sources/images/willow/arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/arrows.png -------------------------------------------------------------------------------- /sources/images/willow/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/check.png -------------------------------------------------------------------------------- /sources/images/willow/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/down.png -------------------------------------------------------------------------------- /sources/images/willow/draghor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/draghor.png -------------------------------------------------------------------------------- /sources/images/willow/dragver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/dragver.png -------------------------------------------------------------------------------- /sources/images/willow/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/left.png -------------------------------------------------------------------------------- /sources/images/willow/nav_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_next.png -------------------------------------------------------------------------------- /sources/images/willow/nav_next_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_next_alt.png -------------------------------------------------------------------------------- /sources/images/willow/nav_next_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_next_alt_dark.png -------------------------------------------------------------------------------- /sources/images/willow/nav_next_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_next_dark.png -------------------------------------------------------------------------------- /sources/images/willow/nav_prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_prev.png -------------------------------------------------------------------------------- /sources/images/willow/nav_prev_alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_prev_alt.png -------------------------------------------------------------------------------- /sources/images/willow/nav_prev_alt_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_prev_alt_dark.png -------------------------------------------------------------------------------- /sources/images/willow/nav_prev_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/nav_prev_dark.png -------------------------------------------------------------------------------- /sources/images/willow/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/right.png -------------------------------------------------------------------------------- /sources/images/willow/slider_hor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/slider_hor.png -------------------------------------------------------------------------------- /sources/images/willow/slider_ver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/slider_ver.png -------------------------------------------------------------------------------- /sources/images/willow/tree/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/tree/file.gif -------------------------------------------------------------------------------- /sources/images/willow/tree/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/tree/folder.gif -------------------------------------------------------------------------------- /sources/images/willow/tree/folderOpen.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/tree/folderOpen.gif -------------------------------------------------------------------------------- /sources/images/willow/tree/line1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/tree/line1.gif -------------------------------------------------------------------------------- /sources/images/willow/tree/line2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/tree/line2.gif -------------------------------------------------------------------------------- /sources/images/willow/tree/line3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/tree/line3.gif -------------------------------------------------------------------------------- /sources/images/willow/tree/line4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/tree/line4.gif -------------------------------------------------------------------------------- /sources/images/willow/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/up.png -------------------------------------------------------------------------------- /sources/images/willow/uploader/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/uploader/cancel.png -------------------------------------------------------------------------------- /sources/images/willow/uploader/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/images/willow/uploader/error.png -------------------------------------------------------------------------------- /sources/load/drivers/csv.js: -------------------------------------------------------------------------------- 1 | const csv = { 2 | //incoming data always a string 3 | toObject:function(data){ 4 | return data; 5 | }, 6 | //get array of records 7 | getRecords:function(data){ 8 | return data.split(this.row); 9 | }, 10 | //get hash of properties for single record, data named as "data{index}" 11 | getDetails:function(data){ 12 | data = this.stringToArray(data); 13 | var result = {}; 14 | for (var i=0; i < data.length; i++) 15 | result["data"+i]=data[i]; 16 | 17 | if (this.idColumn !== null) 18 | result.id = data[this.idColumn]; 19 | 20 | return result; 21 | }, 22 | getOptions:function(){ return false; }, 23 | //dyn loading is not supported by csv data source 24 | getInfo:function(){ 25 | return { 26 | size:0 27 | }; 28 | }, 29 | //split string in array, takes string surrounding quotes in account 30 | stringToArray:function(data){ 31 | data = data.split(this.cell); 32 | for (var i=0; i < data.length; i++) 33 | data[i] = data[i].replace(/^[ \t\n\r]*("|)/g,"").replace(/("|)[ \t\n\r]*$/g,""); 34 | return data; 35 | }, 36 | idColumn:null, 37 | row:"\n", //default row separator 38 | cell:"," //default cell separator 39 | }; 40 | 41 | export default csv; -------------------------------------------------------------------------------- /sources/load/drivers/html.js: -------------------------------------------------------------------------------- 1 | import { toNode } from "../../webix/helpers.js"; 2 | import xml from "./xml.js"; 3 | 4 | const html = { 5 | /* 6 | incoming data can be 7 | - ID of parent container 8 | - HTML text 9 | */ 10 | toObject:function(data){ 11 | if (typeof data == "string"){ 12 | var t=null; 13 | if (data.indexOf("<")==-1) //if no tags inside - probably its an ID 14 | t = toNode(data); 15 | if (!t){ 16 | t=document.createElement("DIV"); 17 | t.innerHTML = data; 18 | } 19 | 20 | return t.firstChild; 21 | } 22 | return data; 23 | }, 24 | //get array of records 25 | getRecords:function(node){ 26 | return node.getElementsByTagName(this.tag); 27 | }, 28 | //get hash of properties for single record 29 | getDetails:function(data){ 30 | return xml.tagToObject(data); 31 | }, 32 | getOptions:function(){ 33 | return false; 34 | }, 35 | //dyn loading is not supported by HTML data source 36 | getInfo:function(){ 37 | return { 38 | size:0 39 | }; 40 | }, 41 | tag: "LI" 42 | }; 43 | 44 | export default html; -------------------------------------------------------------------------------- /sources/load/drivers/index.js: -------------------------------------------------------------------------------- 1 | import json from "./json.js"; 2 | import jsarray from "./jsarray.js"; 3 | import xml from "./xml.js"; 4 | import csv from "./csv.js"; 5 | import html from "./html.js"; 6 | import htmltable from "./htmltable"; 7 | import excel from "./excel"; 8 | 9 | const DataDriver={ json, jsarray, xml, csv, html, htmltable, excel }; 10 | 11 | export default DataDriver; -------------------------------------------------------------------------------- /sources/load/drivers/jsarray.js: -------------------------------------------------------------------------------- 1 | const jsarray={ 2 | //parse jsarray string to jsarray object if necessary 3 | toObject:function(data){ 4 | if (typeof data == "string") 5 | return JSON.parse(data); 6 | return data; 7 | }, 8 | //get array of records 9 | getRecords:function(data){ 10 | if (data && data.data) 11 | data = data.data; 12 | return data; 13 | }, 14 | //get hash of properties for single record, in case of array they will have names as "data{index}" 15 | getDetails:function(data){ 16 | var result = {}; 17 | for (var i=0; i < data.length; i++) 18 | result["data"+i]=data[i]; 19 | if (this.idColumn !== null) 20 | result.id = data[this.idColumn]; 21 | 22 | return result; 23 | }, 24 | getOptions:function(){ return false; }, 25 | //dyn loading is not supported by js-array data source 26 | getInfo:function(){ 27 | return { 28 | size:0 29 | }; 30 | }, 31 | idColumn:null 32 | }; 33 | 34 | export default jsarray; -------------------------------------------------------------------------------- /sources/load/index.js: -------------------------------------------------------------------------------- 1 | export {ajax} from "./ajax"; 2 | export {default as DataDriver} from "./drivers/index"; 3 | export {dp, DataProcessor} from "./dataprocessor"; 4 | 5 | export {default as remote} from "./remote"; 6 | export {default as require} from "./require"; 7 | export {default as proxy} from "./proxy"; 8 | export {default as send} from "./send"; 9 | 10 | -------------------------------------------------------------------------------- /sources/load/jsonp.js: -------------------------------------------------------------------------------- 1 | import promise from "../thirdparty/promiz"; 2 | import {uid} from "../webix/helpers"; 3 | 4 | var timers = {}; 5 | 6 | export function jsonp(url, params, callback, master){ 7 | var defer = promise.defer(); 8 | 9 | var id = "webix_jsonp_"+uid(); 10 | var script = document.createElement("script"); 11 | script.id = id; 12 | script.type = "text/javascript"; 13 | 14 | var head = document.getElementsByTagName("head")[0]; 15 | 16 | if (typeof params == "function"){ 17 | master = callback; 18 | callback = params; 19 | params = {}; 20 | } 21 | 22 | if (!params) 23 | params = {}; 24 | 25 | params.jsonp = id; 26 | window[id]=function(){ 27 | if (callback) 28 | callback.apply(master||window, arguments); 29 | defer.resolve(arguments[0]); 30 | 31 | window.clearTimeout(timers[id]); 32 | delete timers[id]; 33 | 34 | script.parentNode.removeChild(script); 35 | callback = head = master = script = null; 36 | delete window[id]; 37 | }; 38 | 39 | //timeout timer 40 | timers[id] = window.setTimeout(function(){ 41 | defer.reject(); 42 | delete window[id]; 43 | }, jsonp.timer); 44 | 45 | var vals = []; 46 | for (var key in params) vals.push(key+"="+encodeURIComponent(params[key])); 47 | 48 | url += (url.indexOf("?") == -1 ? "?" : "&")+vals.join("&"); 49 | 50 | script.src = url; 51 | head.appendChild(script); 52 | 53 | return defer; 54 | } 55 | 56 | jsonp.timer = 3000; -------------------------------------------------------------------------------- /sources/load/proxy.js: -------------------------------------------------------------------------------- 1 | import {assert} from "../webix/debug"; 2 | import {extend, copy as makeCopy} from "../webix/helpers"; 3 | 4 | import binary from "./proxy/binary"; 5 | import debug from "./proxy/debug"; 6 | import json from "./proxy/json"; 7 | import post from "./proxy/post"; 8 | import rest from "./proxy/rest"; 9 | import graphql from "./proxy/graphql"; 10 | 11 | function proxy(name, source, extra){ 12 | assert(proxy[name], "Invalid proxy name: "+name); 13 | 14 | var copy = makeCopy(proxy[name]); 15 | copy.source = source; 16 | 17 | if (extra) 18 | extend(copy, extra, true); 19 | 20 | if (copy.init) copy.init(); 21 | return copy; 22 | } 23 | 24 | proxy.$parse = function(value){ 25 | if (typeof value == "string" && value.indexOf("->") != -1){ 26 | var parts = value.split("->"); 27 | return proxy(parts[0], parts[1]); 28 | } 29 | return value; 30 | }; 31 | 32 | proxy.binary = binary; 33 | proxy.debug = debug; 34 | proxy.json = json; 35 | proxy.post = post; 36 | proxy.rest = rest; 37 | proxy.GraphQL = graphql; 38 | 39 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/binary.js: -------------------------------------------------------------------------------- 1 | import {ajax} from "../ajax"; 2 | 3 | const proxy = { 4 | $proxy:true, 5 | load:function(){ 6 | var parts = this.source.split("@"); 7 | var ext = parts[0].split(".").pop(); 8 | return ajax().response("arraybuffer").get(parts[0]).then(function(res){ 9 | var options = { ext:ext, dataurl : parts[1] }; 10 | return { data:res, options:options }; 11 | }); 12 | } 13 | }; 14 | 15 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/cache.js: -------------------------------------------------------------------------------- 1 | import {extend} from "../../webix/helpers"; 2 | import offline from "./offline"; 3 | 4 | const proxy = { 5 | init:function(){ 6 | extend(this, offline); 7 | }, 8 | cache:true 9 | }; 10 | 11 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/connector.js: -------------------------------------------------------------------------------- 1 | import {ajax} from "../ajax"; 2 | import state from "../../core/state"; 3 | 4 | const proxy = { 5 | $proxy:true, 6 | 7 | connectorName:"!nativeeditor_status", 8 | load:function(){ 9 | return ajax(this.source); 10 | }, 11 | saveAll:function(view, updates){ 12 | var url = this.source; 13 | 14 | var data = {}; 15 | var ids = []; 16 | for (var i = 0; i < updates.length; i++) { 17 | var action = updates[i]; 18 | ids.push(action.id); 19 | 20 | for (var j in action.data) 21 | if (j.indexOf("$")!==0) 22 | data[action.id+"_"+j] = action.data[j]; 23 | data[action.id+"_"+this.connectorName] = action.operation; 24 | } 25 | 26 | data.ids = ids.join(","); 27 | data.webix_security = state.securityKey; 28 | 29 | url += (url.indexOf("?") == -1) ? "?" : "&"; 30 | url += "editing=true"; 31 | 32 | return ajax().post(url, data).then(data => { 33 | data = data.xml(); 34 | if (!data) 35 | throw "Data loading error"; 36 | 37 | var actions = data.data.action; 38 | if (!actions.length) 39 | actions = [actions]; 40 | 41 | var hash = []; 42 | 43 | for (var i = 0; i < actions.length; i++) { 44 | var obj = actions[i]; 45 | obj.status = obj.type; 46 | obj.id = obj.sid; 47 | obj.newid = obj.tid; 48 | 49 | hash.push(obj); 50 | } 51 | 52 | return hash; 53 | }); 54 | } 55 | }; 56 | 57 | export default proxy; 58 | -------------------------------------------------------------------------------- /sources/load/proxy/debug.js: -------------------------------------------------------------------------------- 1 | import {delay} from "../../webix/helpers"; 2 | 3 | 4 | 5 | const proxy = { 6 | $proxy:true, 7 | load:function(){}, 8 | save:function(v,u,d){ 9 | delay(function(){ 10 | window.console.log("[DP] "+u.id+" -> "+u.operation, u.data); 11 | var data = { 12 | id:u.data.id, 13 | newid:u.data.id, 14 | status:u.data.operation 15 | }; 16 | d.processResult(data, data); 17 | }); 18 | } 19 | }; 20 | 21 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/faye.js: -------------------------------------------------------------------------------- 1 | import {extend, uid} from "../../webix/helpers"; 2 | import {use} from "../../services"; 3 | 4 | const proxy = { 5 | $proxy:true, 6 | init:function(){ 7 | this.clientId = this.clientId || uid(); 8 | }, 9 | load:function(view){ 10 | var selfid = this.clientId; 11 | 12 | this.client.subscribe(this.source, function(update){ 13 | if (update.clientId == selfid) return; 14 | 15 | use("dp")(view).ignore(function(){ 16 | if (update.operation == "delete") 17 | view.remove(update.data.id); 18 | else if (update.operation == "insert") 19 | view.add(update.data); 20 | else if (update.operation == "update"){ 21 | var item = view.getItem(update.data.id); 22 | if (item){ 23 | extend(item, update.data, true); 24 | view.refresh(item.id); 25 | } 26 | } 27 | }); 28 | }); 29 | }, 30 | save:function(view, update){ 31 | update.clientId = this.clientId; 32 | this.client.publish(this.source, update); 33 | } 34 | }; 35 | 36 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/graphql.js: -------------------------------------------------------------------------------- 1 | import { ajax } from "../ajax"; 2 | import promise from "../../thirdparty/promiz"; 3 | 4 | function unbox(data){ 5 | if (!data || !typeof data === "object" || Array.isArray(data)) 6 | return data; 7 | 8 | var lkey =""; 9 | var count = 0; 10 | for (var key in data){ 11 | count++; 12 | if (count == 2) return data; 13 | lkey = key; 14 | } 15 | 16 | return data[lkey]; 17 | } 18 | 19 | const GraphQL = { 20 | $proxy: true, 21 | ignoreErrors: true, 22 | save:function(data){ 23 | return this.load(data); 24 | }, 25 | load:function(view){ 26 | const params = { 27 | query: this.source 28 | }; 29 | const isView = arguments.length > 1; 30 | let xhr; 31 | 32 | if (!isView) params.variables = view; 33 | 34 | return ajax() 35 | .headers({ "Content-type": "application/json" }) 36 | .post(this.url, params, (...args) => { 37 | xhr = args[2]; 38 | }) 39 | .then(data => { 40 | const res = data.json(); 41 | const { data: resData, errors } = res; 42 | 43 | if (errors && !GraphQL.ignoreErrors) { 44 | if (isView) { 45 | return promise.reject(xhr); 46 | } else { 47 | // promise rejection for external callers 48 | // the error must be handled via fail/catch in such cases 49 | return promise.reject({ xhr, errors }); 50 | } 51 | } 52 | 53 | return unbox(resData); 54 | }); 55 | } 56 | }; 57 | 58 | export default GraphQL; -------------------------------------------------------------------------------- /sources/load/proxy/json.js: -------------------------------------------------------------------------------- 1 | import {ajax} from "../ajax"; 2 | import rest from "./rest"; 3 | 4 | const proxy = { 5 | $proxy:true, 6 | load:function(){ 7 | return ajax(this.source); 8 | }, 9 | save:function(view, update){ 10 | var xhr = ajax().headers({ "Content-Type":"application/json" }); 11 | return rest._save_logic.call(this, update, xhr); 12 | } 13 | }; 14 | 15 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/local.js: -------------------------------------------------------------------------------- 1 | import {extend} from "../../webix/helpers"; 2 | import offline from "./offline"; 3 | 4 | const proxy = { 5 | init:function(){ 6 | extend(this, offline); 7 | }, 8 | cache:true, 9 | local:true, 10 | data:[] 11 | }; 12 | 13 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/post.js: -------------------------------------------------------------------------------- 1 | import {extend} from "../../webix/helpers"; 2 | 3 | import {ajax} from "../ajax"; 4 | 5 | const proxy = { 6 | $proxy:true, 7 | load:function(view, params){ 8 | params = extend(params||{}, this.params || {}, true); 9 | return ajax().post(this.source, params); 10 | } 11 | }; 12 | 13 | export default proxy; -------------------------------------------------------------------------------- /sources/load/proxy/rest.js: -------------------------------------------------------------------------------- 1 | import {ajax} from "../ajax"; 2 | 3 | const proxy = { 4 | $proxy:true, 5 | load:function(){ 6 | return ajax(this.source); 7 | }, 8 | save:function(view, update){ 9 | return proxy._save_logic.call(this, update, ajax()); 10 | }, 11 | _save_logic:function(update, ajax){ 12 | var url = this.source; 13 | var query = ""; 14 | var mark = url.indexOf("?"); 15 | 16 | if (mark !== -1){ 17 | query = url.substr(mark); 18 | url = url.substr(0, mark); 19 | } 20 | 21 | url += url.charAt(url.length-1) == "/" ? "" : "/"; 22 | var mode = update.operation; 23 | 24 | 25 | var data = update.data; 26 | if (mode == "insert") delete data.id; 27 | 28 | //call rest URI 29 | if (mode == "update"){ 30 | return ajax.put(url + data.id + query, data); 31 | } else if (mode == "delete") { 32 | return ajax.del(url + data.id + query, data); 33 | } else { 34 | return ajax.post(url + query, data); 35 | } 36 | } 37 | }; 38 | 39 | export default proxy; 40 | -------------------------------------------------------------------------------- /sources/load/proxy/sync.js: -------------------------------------------------------------------------------- 1 | import {ajax} from "../ajax"; 2 | 3 | const proxy = { 4 | $proxy:true, 5 | load:function(view, callback){ 6 | ajax().sync().bind(view).get(this.source, null, callback); 7 | } 8 | }; 9 | 10 | export default proxy; 11 | -------------------------------------------------------------------------------- /sources/load/send.js: -------------------------------------------------------------------------------- 1 | import {create} from "../webix/html"; 2 | 3 | /*submits values*/ 4 | export default function send(url, values, method, target){ 5 | var form = create("FORM",{ 6 | "target":(target||"_self"), 7 | "action":url, 8 | "method":(method||"POST") 9 | },""); 10 | for (var k in values) { 11 | var field = create("INPUT",{"type":"hidden","name": k,"value": values[k]},""); 12 | form.appendChild(field); 13 | } 14 | form.style.display = "none"; 15 | document.body.appendChild(form); 16 | form.submit(); 17 | document.body.removeChild(form); 18 | } -------------------------------------------------------------------------------- /sources/services.js: -------------------------------------------------------------------------------- 1 | // resolves circular dependencies 2 | // quick solution, must be removed in the next versions 3 | 4 | const services = {}; 5 | export function define(name, value){ 6 | services[name] = value; 7 | } 8 | 9 | export function use(name){ 10 | return services[name]; 11 | } -------------------------------------------------------------------------------- /sources/thirdparty/promiz.license.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Zolmeister 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /sources/ui/click.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/ui/click.js -------------------------------------------------------------------------------- /sources/ui/datafilter_pro.js: -------------------------------------------------------------------------------- 1 | const temp = {}; export default temp; -------------------------------------------------------------------------------- /sources/ui/detect.js: -------------------------------------------------------------------------------- 1 | import Touch from "../core/touch"; 2 | import env from "../webix/env"; 3 | import ready from "../webix/ready"; 4 | import {set as setSkin} from "../webix/skin"; 5 | import {create, addStyle} from "../webix/html"; 6 | import {define} from "../services"; 7 | 8 | if (env.mobile || env.$customScroll) 9 | env.scrollSize = 0; 10 | 11 | ready(function(){ 12 | env.scrollSize = _detectScrollSize(); 13 | }); 14 | 15 | 16 | function _detectScrollSize(){ 17 | var div = create("div"); 18 | div.className = "webix_skin_mark"; 19 | div.style.cssText="position:absolute;left:-1000px;width:100px;padding:0px;margin:0px;min-height:100px;overflow-y:scroll;"; 20 | 21 | document.body.appendChild(div); 22 | var width = div.offsetWidth-div.clientWidth; 23 | var name = { 200:"flat", 210:"compact", 220:"contrast", 230:"material", 240:"mini", 250:"willow", 260:"dark" }[Math.floor(div.offsetHeight/10)*10]; 24 | document.body.removeChild(div); 25 | 26 | if (name) 27 | setSkin(name); 28 | 29 | if (env.$customScroll) return 0; 30 | return width; 31 | } 32 | 33 | 34 | let fixed = false; 35 | function _fixHeight(){ 36 | if (fixed) return; 37 | 38 | addStyle("html, body{ height:100%; }"); 39 | document.body.className += " webix_full_screen"; 40 | Touch.limit(false); 41 | fixed = true; 42 | } 43 | 44 | define("fixHeight", _fixHeight); -------------------------------------------------------------------------------- /sources/ui/index.js: -------------------------------------------------------------------------------- 1 | export {proto, protoUI, $$} from "./core"; 2 | 3 | import {ui} from "./core"; 4 | 5 | import {animate, animateView} from "./animate"; 6 | import {freeze, resize, zIndex} from "./helpers"; 7 | import fullScreen from "./fullscreen"; 8 | 9 | // filters 10 | import datafilter from "./datafilter"; 11 | import "./datafilter_pro"; 12 | 13 | // detect scroll 14 | import "./detect"; 15 | 16 | 17 | ui.animate = animate; 18 | ui.animateView = animateView; 19 | 20 | ui.freeze = freeze; 21 | ui.resize = resize; 22 | ui.zIndex = zIndex; 23 | ui.datafilter = datafilter; 24 | ui.fullScreen = fullScreen; 25 | 26 | export {ui}; -------------------------------------------------------------------------------- /sources/views/abslayout.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"abslayout", defaults:{ 6 | template:"GPL version doesn't support abslayout
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/barcode.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"barcode", defaults:{ 6 | template:"GPL version doesn't support barcode
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/bulletgraph.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"bulletgraph", defaults:{ 6 | template:"GPL version doesn't support bulletgraph
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/checksuggest.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"checksuggest", defaults:{ 6 | template:"GPL version doesn't support checksuggest
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/context.js: -------------------------------------------------------------------------------- 1 | import popup from "../views/popup"; 2 | import ContextHelper from "../core/contexthelper"; 3 | import {protoUI} from "../ui/core"; 4 | 5 | 6 | const api = { 7 | name:"context" 8 | }; 9 | 10 | 11 | const view = protoUI(api, ContextHelper, popup.view); 12 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/contextmenu.js: -------------------------------------------------------------------------------- 1 | import submenu from "../views/submenu"; 2 | import ContextHelper from "../core/contexthelper"; 3 | import {protoUI} from "../ui/core"; 4 | import {extend} from "../webix/helpers"; 5 | 6 | 7 | const api = { 8 | name:"contextmenu", 9 | _hide_on_item_click:true, 10 | $init: function(config){ 11 | if(config.submenuConfig) 12 | extend(config,config.submenuConfig); 13 | } 14 | }; 15 | 16 | 17 | const view = protoUI(api, ContextHelper, submenu.view); 18 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/dashboard.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"dashboard", defaults:{ 6 | template:"GPL version doesn't support dashboard
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/datalayout.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"datalayout", defaults:{ 6 | template:"GPL version doesn't support datalayout
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/datasuggest.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"datasuggest", defaults:{ 6 | template:"GPL version doesn't support datasuggest
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/datatable/areaselect.js: -------------------------------------------------------------------------------- 1 | const temp = {}; export default temp; -------------------------------------------------------------------------------- /sources/views/datatable/freeze.js: -------------------------------------------------------------------------------- 1 | const temp = {}; export default temp; -------------------------------------------------------------------------------- /sources/views/datatable/hmenu.js: -------------------------------------------------------------------------------- 1 | const temp = {}; export default temp; -------------------------------------------------------------------------------- /sources/views/datatable/spans.js: -------------------------------------------------------------------------------- 1 | const temp = {}; export default temp; -------------------------------------------------------------------------------- /sources/views/datatable/subs.js: -------------------------------------------------------------------------------- 1 | const temp = {}; export default temp; -------------------------------------------------------------------------------- /sources/views/daterange.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"daterange", defaults:{ 6 | template:"GPL version doesn't support daterange
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/daterangepicker.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"daterangepicker", defaults:{ 6 | template:"GPL version doesn't support daterangepicker
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/daterangesuggest.js: -------------------------------------------------------------------------------- 1 | import suggest from "../views/suggest"; 2 | import {protoUI, $$} from "../ui/core"; 3 | import {copy, bind} from "../webix/helpers"; 4 | 5 | 6 | const api = { 7 | name:"daterangesuggest", 8 | defaults:{ 9 | type:"daterange", 10 | body: { 11 | view:"daterange", icons:true, button:true, borderless:true 12 | } 13 | }, 14 | getValue:function(){ 15 | return this.getRange().getValue(); 16 | }, 17 | setValue:function(value, config){ 18 | this.getRange().setValue(copy(value), config); 19 | }, 20 | getRange:function(){ 21 | return this.getBody(); 22 | }, 23 | getButton:function(){ 24 | return this.getBody().getChildViews()[1].getChildViews()[1]; 25 | }, 26 | _setValue:function(value){ 27 | const master = $$(this._settings.master); 28 | if (master) 29 | master.setValue(value, "user"); 30 | }, 31 | _set_on_popup_click:function(){ 32 | var range = this.getRange(); 33 | range.attachEvent("onAfterDateSelect", bind(function(value) {this._setValue(value);}, this)); 34 | range.attachEvent("onDateClear", bind(function(value) {this._setValue(value);}, this)); 35 | range.attachEvent("onTodaySet", bind(function(value) {this._setValue(value);}, this)); 36 | } 37 | }; 38 | 39 | 40 | const view = protoUI(api, suggest.view); 41 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/excelbar.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"excelbar", defaults:{ 6 | template:"GPL version doesn't support excelbar
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/excelviewer.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"excelviewer", defaults:{ 6 | template:"GPL version doesn't support excelviewer
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/filter.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"filter", defaults:{ 6 | template:"GPL version doesn't support filter
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/flexdatalayout.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"flexdatalayout", defaults:{ 6 | template:"GPL version doesn't support flexdatalayout
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/flexlayout.js: -------------------------------------------------------------------------------- 1 | import layout from "../views/layout"; 2 | import {protoUI} from "../ui/core"; 3 | import {extend} from "../webix/helpers"; 4 | import FlexLayout from "../core/flexlayout"; 5 | 6 | 7 | const api = { 8 | $init:function(){ 9 | extend(this, FlexLayout, true); 10 | }, 11 | name:"flexlayout" 12 | }; 13 | 14 | 15 | const view = protoUI(api, layout.view); 16 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/form.js: -------------------------------------------------------------------------------- 1 | import {protoUI} from "../ui/core"; 2 | import env from "../webix/env"; 3 | 4 | import layout from "../views/layout"; 5 | import toolbar from "../views/toolbar"; 6 | 7 | 8 | const api = { 9 | name:"form", 10 | defaults:{ 11 | type:"form", 12 | autoheight:true 13 | }, 14 | _default_height:-1, 15 | _form_classname:"webix_form", 16 | _form_vertical:true, 17 | $init:function(){ 18 | this._viewobj.setAttribute("role", "form"); 19 | }, 20 | $getSize:function(dx, dy){ 21 | if (this._scroll_y && !this._settings.width) dx += env.scrollSize; 22 | 23 | var sizes = layout.api.$getSize.call(this, dx, dy); 24 | 25 | if (this._settings.scroll || !this._settings.autoheight){ 26 | sizes[2] = this._settings.height || this._settings.minHeight || 0; 27 | sizes[3] = this._settings.height || 100000; 28 | } 29 | 30 | return sizes; 31 | } 32 | }; 33 | 34 | 35 | const view = protoUI(api, toolbar.view); 36 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/gage.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"gage", defaults:{ 6 | template:"GPL version doesn't support gage
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/gridlayout.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"gridlayout", defaults:{ 6 | template:"GPL version doesn't support gridlayout
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/gridsuggest.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"gridsuggest", defaults:{ 6 | template:"GPL version doesn't support gridsuggest
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/headerlayout.js: -------------------------------------------------------------------------------- 1 | import {protoUI} from "../ui/core"; 2 | import base from "./accordion"; 3 | 4 | 5 | const api = { 6 | name:"headerlayout", 7 | defaults:{ 8 | type: "accordion", 9 | multi:"mixed", 10 | collapsed:false 11 | } 12 | }; 13 | 14 | const view = protoUI(api, base.view); 15 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/icon.js: -------------------------------------------------------------------------------- 1 | import {protoUI} from "../ui/core"; 2 | import {$active} from "../webix/skin"; 3 | 4 | import button from "./button"; 5 | 6 | 7 | const api = { 8 | name:"icon", 9 | $skin:function(){ 10 | button.api.$skin.call(this); 11 | 12 | this.defaults.height = $active.inputHeight; 13 | this.defaults.width = $active.inputHeight; 14 | }, 15 | defaults:{ 16 | template:function(obj, view){ 17 | const min = Math.min(obj.awidth, obj.aheight); 18 | const top = Math.round((view._content_height-obj.aheight)/2); 19 | const inner = ""; 21 | 22 | const lineHeight = obj.aheight != min ? obj.aheight : 0; 23 | return "
"+inner+(obj.badge||obj.badge===0 ? ""+obj.badge+"":"")+ 25 | "
"; 26 | } 27 | }, 28 | _set_inner_size:false, 29 | _set_default_css:function(){}, 30 | $setValue:function(){} 31 | }; 32 | 33 | const view = protoUI(api, button.view); 34 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/iframe.js: -------------------------------------------------------------------------------- 1 | import base from "../views/view"; 2 | import EventSystem from "../core/eventsystem"; 3 | import {protoUI} from "../ui/core"; 4 | 5 | 6 | const api = { 7 | name:"iframe", 8 | $init:function(){ 9 | this._dataobj = this._contentobj; 10 | this._contentobj.innerHTML = ""; 11 | }, 12 | load:function(value){ 13 | this.src_setter(value); 14 | }, 15 | src_setter:function(value){ 16 | if(!this.callEvent("onBeforeLoad",[])) 17 | return ""; 18 | this.getIframe().src = value; 19 | return value; 20 | }, 21 | getIframe:function(){ 22 | return this._contentobj.getElementsByTagName("iframe")[0]; 23 | }, 24 | getWindow:function(){ 25 | return this.getIframe().contentWindow; 26 | } 27 | }; 28 | 29 | 30 | const view = protoUI(api, base.view, EventSystem); 31 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/label.js: -------------------------------------------------------------------------------- 1 | import {getTextSize} from "../webix/html"; 2 | import {protoUI} from "../ui/core"; 3 | import {$active} from "../webix/skin"; 4 | 5 | import button from "../views/button"; 6 | 7 | const api = { 8 | name:"label", 9 | defaults:{ 10 | template:"
#label#
" 11 | }, 12 | $skin:function(){ 13 | button.api.$skin.call(this); 14 | 15 | this.defaults.height = $active.inputHeight; 16 | }, 17 | focus:function(){ return false; }, 18 | _getBox:function(){ 19 | return this._dataobj.firstChild; 20 | }, 21 | setHTML:function(html){ 22 | this._settings.label = html; 23 | this.refresh(); 24 | }, 25 | setValue: function(value){ 26 | this._settings.label = value; 27 | button.api.setValue.apply(this,arguments); 28 | }, 29 | $setValue:function(value){ 30 | this._dataobj.firstChild.innerHTML = value; 31 | }, 32 | $render:function(config){ 33 | if (config.align === "right") 34 | this._dataobj.firstChild.style.textAlign = "right"; 35 | }, 36 | getInputNode() { 37 | return this._dataobj.firstChild; 38 | }, 39 | _set_inner_size:false, 40 | _set_default_css:function(){}, 41 | _calc_size:function(config){ 42 | const css = "webix_el_box webixlabel" + (this.queryView("toolbar", "parent") ? " webixtoolbarlabel" : ""); 43 | config = config || this._settings; 44 | if (config.autowidth) 45 | config.width = getTextSize(config.label, css).width; 46 | } 47 | }; 48 | 49 | const view = protoUI(api, button.view); 50 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/multicombo.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"multicombo", defaults:{ 6 | template:"GPL version doesn't support multicombo
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/multiselect.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"multiselect", defaults:{ 6 | template:"GPL version doesn't support multiselect
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/multisuggest.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"multisuggest", defaults:{ 6 | template:"GPL version doesn't support multisuggest
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/organogram.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"organogram", defaults:{ 6 | template:"GPL version doesn't support organogram
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/panel.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"panel", defaults:{ 6 | template:"GPL version doesn't support panel
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/pdfbar.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"pdfbar", defaults:{ 6 | template:"GPL version doesn't support pdfbar
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/pdfviewer.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"pdfviewer", defaults:{ 6 | template:"GPL version doesn't support pdfviewer
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/portlet.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"portlet", defaults:{ 6 | template:"GPL version doesn't support portlet
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/proto.js: -------------------------------------------------------------------------------- 1 | import base from "../views/view"; 2 | import PagingAbility from "../core/pagingability"; 3 | import DataMarks from "../core/datamarks"; 4 | import AutoTooltip from "../core/autotooltip"; 5 | import ValidateCollection from "../core/validatecollection"; 6 | import RenderStack from "../core/renderstack"; 7 | import DataLoader from "../core/dataloader"; 8 | import EventSystem from "../core/eventsystem"; 9 | import Settings from "../core/settings"; 10 | 11 | import {protoUI} from "../ui/core"; 12 | import {bind} from "../webix/helpers"; 13 | 14 | const api = { 15 | name:"proto", 16 | $init:function(){ 17 | this.data.provideApi(this, true); 18 | this._dataobj = this._dataobj || this._contentobj; 19 | 20 | //render self , each time when data is updated 21 | this.data.attachEvent("onStoreUpdated",bind(function(){ 22 | this.render.apply(this,arguments); 23 | },this)); 24 | }, 25 | $setSize:function(){ 26 | if (base.api.$setSize.apply(this, arguments)) 27 | this.render(); 28 | }, 29 | _id:/*@attr*/"webix_item", 30 | on_mouse_move:{ 31 | }, 32 | type:{} 33 | }; 34 | 35 | 36 | const view = protoUI(api, PagingAbility, DataMarks, AutoTooltip, ValidateCollection, RenderStack, DataLoader, base.view, EventSystem, Settings); 37 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/proxy.js: -------------------------------------------------------------------------------- 1 | import base from "../views/view"; 2 | import {protoUI, ui} from "../ui/core"; 3 | import state from "../core/state"; 4 | 5 | 6 | const api = { 7 | name:"proxy", 8 | body_setter:function(value){ 9 | state._parent_cell = this; 10 | this._body_cell = ui._view(value); 11 | this._viewobj.appendChild(this._body_cell._viewobj); 12 | return value; 13 | }, 14 | getChildViews:function(){ 15 | return [this._body_cell]; 16 | }, 17 | $setSize:function(x,y){ 18 | base.api.$setSize.call(this, x,y); 19 | this._body_cell.$setSize(this.$width, this.$height); 20 | }, 21 | $getSize:function(dx,dy){ 22 | var selfSize = base.api.$getSize.call(this, dx, dy); 23 | var size = this._body_cell.$getSize(dx, dy); 24 | 25 | size[0] = Math.max(selfSize[0], size[0]); 26 | size[1] = Math.min(selfSize[1], size[1]); 27 | size[2] = Math.max(selfSize[2], size[2]); 28 | size[3] = Math.min(selfSize[3], size[3]); 29 | size[4] = Math.max(selfSize[4], size[4]); 30 | 31 | return size; 32 | }, 33 | _replace:function(n){ 34 | this._body_cell.destructor(); 35 | this._body_cell = n; 36 | this._viewobj.appendChild(n._viewobj); 37 | this.resize(); 38 | } 39 | }; 40 | 41 | 42 | const view = protoUI(api, base.view); 43 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/rangechart.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"rangechart", defaults:{ 6 | template:"GPL version doesn't support rangechart
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/rangeslider.js: -------------------------------------------------------------------------------- 1 | 2 | import {protoUI} from "../ui/core"; 3 | import template from "../views/template"; 4 | 5 | protoUI({ name:"rangeslider", defaults:{ 6 | template:"GPL version doesn't support rangeslider
You need Webix PRO" 7 | }}, template.view); -------------------------------------------------------------------------------- /sources/views/search.js: -------------------------------------------------------------------------------- 1 | import {protoUI} from "../ui/core"; 2 | 3 | import text from "./text"; 4 | 5 | 6 | const api = { 7 | name:"search", 8 | on_click:{ 9 | webix_clear_icon:function(){ 10 | if (this.$allowsClear) this.setValue("", "user"); 11 | return false; 12 | }, 13 | "webix_input_icon":function(e){ 14 | this.getInputNode().focus(); 15 | if(this.config.clear !== "hover" && e.target && (e.target.className.indexOf(this.config.icon) !== -1)) 16 | this.callEvent("onSearchIconClick", [e]); 17 | } 18 | }, 19 | defaults:{ 20 | type:"text", 21 | icon:"wxi-search" 22 | } 23 | }; 24 | 25 | const view = protoUI(api, text.view); 26 | export default {api, view}; -------------------------------------------------------------------------------- /sources/views/spacer.js: -------------------------------------------------------------------------------- 1 | import {protoUI} from "../ui/core"; 2 | 3 | import base from "./view"; 4 | 5 | const api = { 6 | name:"spacer", 7 | defaults:{ 8 | borderless:true 9 | }, 10 | $init:function(){ 11 | this._viewobj.className += " webix_spacer"; 12 | } 13 | }; 14 | 15 | const view = protoUI(api, base.view); 16 | export default { api, view }; -------------------------------------------------------------------------------- /sources/views/video.js: -------------------------------------------------------------------------------- 1 | import base from "../views/view"; 2 | import {create} from "../webix/html"; 3 | import {protoUI} from "../ui/core"; 4 | import {uid} from "../webix/helpers"; 5 | 6 | 7 | /* 8 | UI:Video 9 | */ 10 | // #include ui/view.js 11 | const api = { 12 | name:"video", 13 | $init:function(config){ 14 | if (!config.id) config.id = uid(); 15 | this.$ready.push(this._init_video); 16 | }, 17 | _init_video:function(){ 18 | var c = this._settings; 19 | this._contentobj = create("video",{ 20 | "class":"webix_view_video", 21 | "style":"width:100%;height:100%;", 22 | "autobuffer":"autobuffer" 23 | },""); 24 | if(c.poster) 25 | this._contentobj.poster=c.poster; 26 | 27 | if(c.src){ 28 | if(typeof c.src!= "object") 29 | c.src = [c.src]; 30 | for(var i = 0; i < c.src.length;i++) 31 | this._contentobj.innerHTML += " "; 32 | } 33 | 34 | if(c.controls) 35 | this._contentobj.controls=true; 36 | if(c.autoplay) 37 | this._contentobj.autoplay=true; 38 | this._viewobj.appendChild(this._contentobj); 39 | }, 40 | getVideo:function(){ 41 | return this._contentobj; 42 | }, 43 | defaults:{ 44 | src:"", 45 | controls: true 46 | } 47 | }; 48 | 49 | 50 | const view = protoUI(api, base.view); 51 | export default {api, view}; -------------------------------------------------------------------------------- /sources/webix/api.js: -------------------------------------------------------------------------------- 1 | import {callEvent} from "./customevents"; 2 | 3 | export function editStop(){ 4 | callEvent("onEditEnd", []); 5 | } 6 | -------------------------------------------------------------------------------- /sources/webix/consts.js: -------------------------------------------------------------------------------- 1 | export const version="VERSION"; 2 | export const name = "core"; -------------------------------------------------------------------------------- /sources/webix/customevents.js: -------------------------------------------------------------------------------- 1 | import {extend} from "./helpers"; 2 | import EventSystem from "../core/eventsystem"; 3 | 4 | var evs = {}; 5 | extend(evs, EventSystem, true); 6 | 7 | export const callEvent = (a,b) => evs.callEvent(a, b); 8 | export const attachEvent = (a,b,c,d) => evs.attachEvent(a, b, c, d); 9 | export const detachEvent = (a) => evs.detachEvent(a); 10 | export const blockEvent = () => evs.blockEvent(); 11 | export const unblockEvent = () => evs.unblockEvent(); 12 | export const mapEvent = map => evs.mapEvent(map); 13 | export const hasEvent = type => evs.hasEvent(type); 14 | -------------------------------------------------------------------------------- /sources/webix/export.js: -------------------------------------------------------------------------------- 1 | export {toPNG} from "./export/topng"; 2 | export {toCSV} from "./export/tocsv"; 3 | export {toPDF} from "./export/topdf"; 4 | export {toExcel} from "./export/toexcel"; 5 | -------------------------------------------------------------------------------- /sources/webix/export/tocsv.js: -------------------------------------------------------------------------------- 1 | import {errorMessage, getExportScheme, getExportData, getFileName} from "./common"; 2 | 3 | import csv from "../../webix/csv"; 4 | import promise from "../../thirdparty/promiz"; 5 | 6 | import {download} from "../../webix/html"; 7 | import {$$} from "../../ui/core"; 8 | import {assert} from "../../webix/debug"; 9 | import {extend, isArray} from "../../webix/helpers"; 10 | 11 | export const toCSV = function(id, options){ 12 | options = options || {}; 13 | options.export_mode = "csv"; 14 | 15 | let view = $$(id); 16 | let result; 17 | 18 | if (view && view.$exportView) 19 | view = result = view.$exportView(options); 20 | 21 | assert(view, errorMessage); 22 | if(!view) return promise.reject(errorMessage); 23 | 24 | //$exportView returns array 25 | if(!isArray(view)){ 26 | extend(options, { 27 | filterHTML: true 28 | }); 29 | result = getExportData(view, options, getExportScheme(view, options)); 30 | } 31 | 32 | if(options.dataOnly) 33 | return result; 34 | 35 | const blob = new Blob(["\uFEFF" + csv.stringify(result)], { type: "text/csv" }); 36 | if(options.download !== false) 37 | download(blob, getFileName(options.filename, "csv")); 38 | 39 | return promise.resolve(blob); 40 | }; -------------------------------------------------------------------------------- /sources/webix/export/topng.js: -------------------------------------------------------------------------------- 1 | import {errorMessage, getFileName} from "./common"; 2 | 3 | import promise from "../../thirdparty/promiz"; 4 | import require from "../../load/require"; 5 | import env from "../../webix/env"; 6 | 7 | import {assert} from "../../webix/debug"; 8 | import {toNode} from "../../webix/helpers"; 9 | import {download} from "../../webix/html"; 10 | import {$$} from "../../ui/core"; 11 | 12 | export const toPNG = function(id, options){ 13 | const defer = promise.defer(); 14 | 15 | return require(env.cdn + "/extras/html2canvas-1.0.min.js").then(function(){ 16 | //backward compatibility 17 | if (typeof options === "string") options = { filename: options }; 18 | options = options || {}; 19 | 20 | options.export_mode = "png"; 21 | 22 | let view = $$(id); 23 | if (view && view.$exportView) 24 | view = view.$exportView(options); 25 | assert(view, errorMessage); 26 | if(!view) return defer.reject(errorMessage); 27 | 28 | const node = view ? view.$view : toNode(id); 29 | const filename = getFileName(options.filename, "png"); 30 | 31 | window.html2canvas(node, {background:"#fff", logging:false, useCORS:true}).then(function(canvas) { 32 | const callback = function(data){ 33 | if(options.download !== false) 34 | download(data, filename); 35 | defer.resolve(data); 36 | }; 37 | if(canvas.msToBlob) 38 | callback(canvas.msToBlob()); 39 | else 40 | canvas.toBlob(callback, "image/png"); 41 | }); 42 | return defer; 43 | }); 44 | }; -------------------------------------------------------------------------------- /sources/webix/htmlevents.js: -------------------------------------------------------------------------------- 1 | import { assert } from "./debug"; 2 | import { toNode, uid, bind, isUndefined } from "./helpers"; 3 | import env from "./env"; 4 | 5 | //hash of attached events 6 | const _events = {}; 7 | 8 | export function _events_final_destructor(){ 9 | //detach all known DOM events 10 | for (var a in _events) 11 | eventRemove(a); 12 | } 13 | 14 | //private version of API, do not register ID for event detaching 15 | export function _event(a,b,c,d){ 16 | d = d || {}; 17 | d.inner = true; 18 | event(a,b,c,d); 19 | } 20 | 21 | //attach event to the DOM element 22 | export function event(node,event,handler,context){ 23 | context = context || {}; 24 | node = toNode(node); 25 | assert(node, "Invalid node as target for webix.event"); 26 | 27 | var id = context.id || uid(); 28 | 29 | if (context.bind) 30 | handler = bind(handler,context.bind); 31 | 32 | var info = [node,event,handler,context.capture]; 33 | if (!context.inner) 34 | _events[id] = info; //store event info, for detaching 35 | 36 | var capture = !!context.capture; 37 | if (!isUndefined(context.passive) && env.passiveEventListeners)//blockable touch events 38 | capture = { passive:context.passive, capture:capture }; 39 | 40 | node.addEventListener(event, handler, capture); 41 | 42 | return id; //return id of newly created event, can be used in eventRemove 43 | } 44 | 45 | //remove previously attached event 46 | export function eventRemove(id){ 47 | if (!id) return; 48 | assert(_events[id],"Removing non-existing event"); 49 | 50 | const ev = _events[id]; 51 | ev[0].removeEventListener(ev[1], ev[2], !!ev[3]); 52 | 53 | delete _events[id]; //delete all traces 54 | } 55 | -------------------------------------------------------------------------------- /sources/webix/i18n.js: -------------------------------------------------------------------------------- 1 | const i18n = { 2 | parseFormat:"%Y-%m-%d %H:%i:%s", 3 | parseTimeFormat:"%H:%i:%s", 4 | }; 5 | 6 | 7 | export default i18n; -------------------------------------------------------------------------------- /sources/webix/ie8.js: -------------------------------------------------------------------------------- 1 | import env from "./env"; 2 | // Only IE8 doesn't support defineProperty 3 | if (env.isIE8){ 4 | // Not really a polyfill, silence the esModule flag 5 | Object.defineProperty = function(obj, key, data){ 6 | obj[key] = data.value; 7 | }; 8 | } -------------------------------------------------------------------------------- /sources/webix/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | Common helpers 3 | */ 4 | 5 | export * from "./consts"; 6 | export * from "./helpers"; 7 | export * from "./htmlevents"; 8 | export * from "./customevents"; 9 | export * from "./stringify"; 10 | export * from "./export"; 11 | export * from "./message"; 12 | export * from "./api"; 13 | export * from "./init"; 14 | 15 | import * as html from "./html"; 16 | export { html }; 17 | 18 | // import * as skin from "./skin"; 19 | export { skin } from "./skin"; 20 | 21 | export {debug} from "./debug"; 22 | 23 | export {default as i18n} from "./locale"; 24 | export {default as ready} from "./ready"; 25 | export {default as env} from "./env"; 26 | export {default as color} from "./color"; 27 | export {default as csv} from "./csv"; 28 | export {default as clipbuffer} from "./clipbuffer"; 29 | export {default as storage} from "./storage"; 30 | export {default as template} from "./template"; 31 | export {default as type} from "./type"; 32 | export {default as editors} from "./editors"; 33 | export {default as animate} from "./animate"; 34 | export {default as print} from "./print"; 35 | export {default as rules} from "./rules"; 36 | export {default as filters} from "./filters"; 37 | export {default as patterns} from "./patterns"; 38 | export {default as fullscreen} from "./fullscreen"; -------------------------------------------------------------------------------- /sources/webix/init.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/webix-hub/webix/14ee7cf49f4d39a5b2564408edf085b439596f48/sources/webix/init.js -------------------------------------------------------------------------------- /sources/webix/patterns.js: -------------------------------------------------------------------------------- 1 | const patterns = { 2 | phone:{ mask:"+# (###) ###-####", allow:/[0-9]/g }, 3 | card: { mask:"#### #### #### ####", allow:/[0-9]/g }, 4 | date: { mask:"####-##-## ##:##", allow:/[0-9]/g } 5 | }; 6 | 7 | export default patterns; -------------------------------------------------------------------------------- /sources/webix/ready.js: -------------------------------------------------------------------------------- 1 | import {assert} from "./debug"; 2 | import {event} from "./htmlevents"; 3 | import env from "./env.js"; 4 | import {isArray, delay} from "./helpers.js"; 5 | 6 | import {callEvent, attachEvent} from "./customevents.js"; 7 | 8 | function ready(code){ 9 | if (_ready) code.call(); 10 | else _ready_code.push(code); 11 | } 12 | let _ready = false; 13 | let _ready_code = []; 14 | 15 | //autodetect codebase folder 16 | var temp = document.getElementsByTagName("SCRIPT"); //current script, most probably 17 | assert(temp.length,"Can't locate codebase"); 18 | if (temp.length){ 19 | //full path to script 20 | temp = (temp[temp.length-1].getAttribute("src")||"").split("/"); 21 | //get folder name 22 | temp.splice(temp.length-1, 1); 23 | env.codebase = temp.slice(0, temp.length).join("/")+"/"; 24 | } 25 | 26 | var handler = function(){ 27 | if(env.isIE) 28 | document.body.className += " webix_ie"; 29 | callEvent("onReady",[]); 30 | }; 31 | 32 | var doit = function(){ 33 | _ready = true; 34 | 35 | /* global webix_ready */ 36 | if (window.webix_ready && isArray(webix_ready)) 37 | _ready_code = webix_ready.concat(_ready_code); 38 | 39 | for (var i=0; i < _ready_code.length; i++) 40 | _ready_code[i].call(); 41 | _ready_code=[]; 42 | }; 43 | 44 | attachEvent("onReady", function(force){ 45 | if (force) 46 | doit(); 47 | else 48 | delay(doit); 49 | }); 50 | 51 | if (document.readyState == "complete") handler(); 52 | else event(window, "load", handler); 53 | 54 | ready(function(){ 55 | event(document.body, "click", function(e){ 56 | callEvent("onClick", [e]); 57 | }); 58 | }); 59 | 60 | 61 | export default ready; -------------------------------------------------------------------------------- /sources/webix/rules.js: -------------------------------------------------------------------------------- 1 | const rules = { 2 | isEmail: function(value){ 3 | return (/^[^\s@]+@[^\s@]+\.[^\s@]+$/).test((value || "").toString()); 4 | }, 5 | isNumber: function(value){ 6 | return (parseFloat(value) == value); 7 | }, 8 | isChecked: function(value){ 9 | return (!!value) || value === "0"; 10 | }, 11 | isNotEmpty: function(value){ 12 | return (value === 0 || value); 13 | } 14 | }; 15 | 16 | export default rules; -------------------------------------------------------------------------------- /sources/webix/skin.js: -------------------------------------------------------------------------------- 1 | import {assert} from "../webix/debug"; 2 | import {ui} from "../ui/core"; 3 | 4 | import material from "../css/skins/material/config"; 5 | import mini from "../css/skins/mini/config"; 6 | import flat from "../css/skins/flat/config"; 7 | import compact from "../css/skins/compact/config"; 8 | import contrast from "../css/skins/contrast/config"; 9 | import willow from "../css/skins/willow/config"; 10 | import dark from "../css/skins/dark/config"; 11 | 12 | export var $active, $name; 13 | 14 | export function set(name){ 15 | assert(skin[name], "Incorrect skin name: "+name); 16 | if ($name === name) return; 17 | 18 | skin.$active = $active = skin[name]; 19 | skin.$name = $name = name; 20 | 21 | if (ui){ 22 | for (var key in ui){ 23 | var view = ui[key]; 24 | if (view && view.prototype && view.prototype.$skin) 25 | view.prototype.$skin(view.prototype); 26 | } 27 | } 28 | } 29 | 30 | const skin = { set, material, mini, flat, compact, contrast, willow, dark }; 31 | 32 | set(window.webix_skin || "material"); 33 | 34 | //necessary for skin builder 35 | export { skin }; -------------------------------------------------------------------------------- /sources/webix/stringify.js: -------------------------------------------------------------------------------- 1 | import i18n from "./i18n.js"; 2 | 3 | // converts an object into a string with respect to dates 4 | export function stringify(obj){ 5 | var origin = Date.prototype.toJSON; 6 | Date.prototype.toJSON = function(){ 7 | return i18n.parseFormatStr(this); 8 | }; 9 | 10 | var result; 11 | if (obj instanceof Date) 12 | result = obj.toJSON(); 13 | else 14 | result = JSON.stringify(obj); 15 | 16 | Date.prototype.toJSON = origin; 17 | return result; 18 | } -------------------------------------------------------------------------------- /sources/webix/type.js: -------------------------------------------------------------------------------- 1 | import template from "./template"; 2 | import {clone} from "./helpers"; 3 | 4 | /* 5 | adds new template-type 6 | obj - object to which template will be added 7 | data - properties of template 8 | */ 9 | export default function type(obj, data){ 10 | if (obj.$protoWait){ 11 | if (!obj._webix_type_wait) 12 | obj._webix_type_wait = []; 13 | obj._webix_type_wait.push(data); 14 | return; 15 | } 16 | 17 | //auto switch to prototype, if name of class was provided 18 | if (typeof obj == "function") 19 | obj = obj.prototype; 20 | if (!obj.types){ 21 | obj.types = { "default" : obj.type }; 22 | obj.type.name = "default"; 23 | } 24 | 25 | var name = data.name; 26 | var type = obj.type; 27 | if (name) 28 | type = obj.types[name] = clone(data.baseType?obj.types[data.baseType]:obj.type); 29 | 30 | for(var key in data){ 31 | if (key.indexOf("template")===0) 32 | type[key] = template(data[key]); 33 | else 34 | type[key]=data[key]; 35 | } 36 | 37 | return name; 38 | } --------------------------------------------------------------------------------