├── docs ├── elements │ ├── tabs │ │ ├── menu.cms │ │ ├── tab │ │ │ ├── tab.md │ │ │ └── tab_p.md │ │ └── tabs │ │ │ ├── tabs_p.md │ │ │ └── tabs.md │ ├── output │ │ ├── menu.cms │ │ ├── output │ │ │ ├── output.md │ │ │ └── output_p.md │ │ └── outputcontent │ │ │ ├── outputcontent.md │ │ │ └── outputcontent_p.md │ ├── multiinput │ │ ├── menu.cms │ │ ├── multiinputcontrol │ │ │ ├── multiinputcontrol.md │ │ │ └── multiinputcontrol_p.md │ │ └── multiinput │ │ │ ├── multiinput.md │ │ │ └── multiinput_p.md │ ├── label │ │ ├── menu.cms │ │ ├── emptylabel │ │ │ ├── emptylabel_p.md │ │ │ └── emptylabel.md │ │ ├── multilinelabel │ │ │ ├── multilinelabel_p.md │ │ │ └── multilinelabel.md │ │ └── label │ │ │ └── label_p.md │ ├── stickyheader │ │ ├── menu.cms │ │ ├── stickyheader │ │ │ ├── stickyheader.md │ │ │ └── stickyheader_p.md │ │ └── stickyheadercontrol │ │ │ ├── stickyheadercontrol_p.md │ │ │ └── stickyheadercontrol.md │ ├── form │ │ ├── menu.cms │ │ ├── formmodal │ │ │ ├── formmodal_p.md │ │ │ └── formmodal.md │ │ ├── formpopover │ │ │ ├── formpopover.md │ │ │ └── formpopover_p.md │ │ ├── formbutton │ │ │ ├── formbutton.md │ │ │ └── formbutton_p.md │ │ └── form │ │ │ ├── form.md │ │ │ └── form_p.md │ ├── layout │ │ ├── menu.cms │ │ ├── verticallayout │ │ │ ├── verticallayout_p.md │ │ │ └── verticallayout.md │ │ ├── horizontallayout │ │ │ ├── horizontallayout_p.md │ │ │ └── horizontallayout.md │ │ └── layout │ │ │ ├── layout.md │ │ │ └── layout_p.md │ ├── pane │ │ ├── menu.cms │ │ ├── panetoolbar │ │ │ ├── panetoolbar_p.md │ │ │ └── panetoolbar.md │ │ ├── paneheader │ │ │ ├── paneheader_p.md │ │ │ └── paneheader.md │ │ ├── panefooter │ │ │ ├── panefooter_p.md │ │ │ └── panefooter.md │ │ ├── pane │ │ │ ├── pane_p.md │ │ │ └── pane.md │ │ └── simplepane │ │ │ └── simplepane_p.md │ ├── confirmationchoice │ │ ├── menu.cms │ │ ├── prompt │ │ │ ├── prompt_p.md │ │ │ └── prompt.md │ │ ├── toaster │ │ │ ├── toaster_p.md │ │ │ └── toaster.md │ │ ├── alert │ │ │ ├── alert_p.md │ │ │ └── alert.md │ │ ├── confirmationchoice │ │ │ ├── confirmationchoice.md │ │ │ └── confirmationchoice_p.md │ │ └── confirm │ │ │ ├── confirm_p.md │ │ │ └── confirm.md │ ├── input │ │ ├── menu.cms │ │ ├── numberinputblock │ │ │ ├── numberinputblock_p.md │ │ │ └── numberinputblock.md │ │ ├── inputblock │ │ │ ├── inputblock.md │ │ │ └── inputblock_p.md │ │ ├── emailinput │ │ │ ├── emailinput_p.md │ │ │ └── emailinput.md │ │ ├── input │ │ │ └── input.md │ │ ├── numberinput │ │ │ └── numberinput.md │ │ └── markdowninput │ │ │ ├── markdowninput.md │ │ │ └── markdowninput_p.md │ ├── button │ │ └── button_exmpl1.coffee │ ├── listview │ │ ├── menu.cms │ │ ├── listviewrow │ │ │ ├── listviewrow_p.md │ │ │ └── listviewrow.md │ │ ├── listviewtreenode │ │ │ ├── listviewtreenode_p.md │ │ │ └── listviewtreenode.md │ │ ├── listviewcolumn │ │ │ ├── listviewcolumn_p.md │ │ │ └── listviewcolumn.md │ │ └── listviewtree │ │ │ └── listviewtree_p.md │ ├── borderlayout │ │ ├── borderlayout_p.md │ │ └── borderlayout.md │ ├── layer │ │ └── layer.md │ ├── console │ │ ├── console.md │ │ └── console_p.md │ ├── select │ │ ├── select_p.md │ │ └── select.md │ ├── panel │ │ └── panel.md │ ├── password │ │ ├── password_p.md │ │ └── password.md │ ├── digidisplay │ │ ├── digidisplay.md │ │ └── digidisplay_p.md │ ├── progressmeter │ │ ├── progressmeter.md │ │ └── progressmeter_p.md │ ├── objectdumper │ │ ├── objectdumper_p.md │ │ └── objectdumper.md │ ├── fileupload │ │ ├── filereader │ │ │ ├── filereader_p.md │ │ │ └── filereader.md │ │ ├── fileupload │ │ │ └── fileupload.md │ │ ├── fileuploadfile │ │ │ ├── fileuploadfile.md │ │ │ └── fileuploadfile_p.md │ │ ├── filereaderfile │ │ │ ├── filereaderfile_p.md │ │ │ └── filereaderfile.md │ │ └── fileuploadbutton │ │ │ ├── fileuploadbutton.md │ │ │ └── fileuploadbutton_p.md │ ├── multioutput │ │ ├── multioutput_p.md │ │ └── multioutput.md │ ├── menu │ │ ├── menu.md │ │ └── menu_p.md │ ├── layerpane │ │ ├── layerpane.md │ │ └── layerpane_p.md │ ├── options │ │ └── options.md │ ├── waitblock │ │ ├── waitblock.md │ │ └── waitblock_p.md │ ├── documentbrowser │ │ └── documentbrowser │ │ │ ├── documentbrowser.md │ │ │ └── documentbrowser_p.md │ ├── popover │ │ ├── popover_p.md │ │ └── popover.md │ ├── modal │ │ ├── modal.md │ │ └── modal_p.md │ ├── tooltip │ │ ├── tooltip.md │ │ └── tooltip_p.md │ ├── toolbar │ │ ├── toolbar.md │ │ └── toolbar_p.md │ ├── verticallist │ │ ├── verticallist_p.md │ │ └── verticallist.md │ ├── horizontallist │ │ ├── horizontallist_p.md │ │ └── horizontallist.md │ ├── buttonhref │ │ └── buttonhref_p.md │ ├── icon │ │ └── icon_p.md │ ├── datafieldinput │ │ ├── datafieldinput_p.md │ │ └── datafieldinput.md │ ├── confirmationdialog │ │ ├── confirmationdialog.md │ │ └── confirmationdialog_p.md │ ├── checkbox │ │ └── checkbox.md │ ├── block │ │ └── block_p.md │ ├── datetime │ │ ├── datetime_p.md │ │ └── datetime.md │ ├── examples │ │ └── examples.md │ ├── datafield │ │ └── datafield.md │ └── menu.cms ├── menu.cms ├── chapter1.md ├── styles │ └── website.css ├── intro │ └── intro.md ├── README.md └── SUMMARY.md ├── demo ├── src │ ├── demos │ │ ├── XHR │ │ │ ├── XHRTest.json │ │ │ ├── XHRDelayed.php │ │ │ └── XHRTest.php │ │ ├── Menu │ │ │ └── Schmetterling.jpg │ │ ├── FileUpload │ │ │ ├── FileUpload.php │ │ │ └── FileUploadDemo.html │ │ ├── StickyHeader │ │ │ └── StickyHeaderDemo.html │ │ ├── Sudoku │ │ │ └── Sudoku.html │ │ ├── PanelDemo.coffee │ │ ├── Form │ │ │ └── FormDemo.html │ │ ├── ObjectDumper │ │ │ ├── ObjectDumperDemo.coffee │ │ │ └── example2.json │ │ ├── DataTableDemo.coffee │ │ ├── ScrollIntoViewDemo │ │ │ └── ScrollIntoViewDemo.html │ │ └── DigiDisplayDemo.coffee │ └── icons │ │ ├── inherit.svg │ │ ├── arrow-right.svg │ │ └── remove-icon.svg └── postcss.config.js ├── test ├── setup.js ├── html-loader.js └── preprocessor.js ├── tutorial ├── simple-examples │ ├── css │ │ └── base.css │ ├── build.sh │ ├── examples │ │ ├── custom-element │ │ │ ├── hello-world.html │ │ │ ├── index.html │ │ │ └── App.coffee │ │ ├── form │ │ │ └── index.html │ │ ├── icon │ │ │ ├── index.html │ │ │ └── App.coffee │ │ ├── modal │ │ │ ├── index.html │ │ │ └── App.coffee │ │ ├── pane │ │ │ ├── index.html │ │ │ └── App.coffee │ │ ├── button │ │ │ └── index.html │ │ ├── element-props │ │ │ └── index.html │ │ ├── horizontal-layout │ │ │ ├── App.coffee │ │ │ ├── index.html │ │ │ └── App.js │ │ ├── vertical-layout │ │ │ ├── App.coffee │ │ │ ├── index.html │ │ │ └── App.js │ │ ├── border-layout │ │ │ ├── index.html │ │ │ └── App.coffee │ │ ├── layout-complete │ │ │ └── index.html │ │ └── vertical-horizontal-list │ │ │ ├── index.html │ │ │ └── App.coffee │ ├── index.html │ └── index.coffee ├── public │ └── weather-service.json ├── index.html ├── src │ ├── scss │ │ └── base.scss │ ├── modules │ │ └── weather │ │ │ ├── WeatherService.coffee │ │ │ ├── weather.html │ │ │ └── Weather.coffee │ └── App.coffee └── package.json ├── src ├── scss │ ├── themes │ │ ├── fylr │ │ │ ├── _resets.scss │ │ │ ├── index.scss │ │ │ ├── components │ │ │ │ ├── _popover.scss │ │ │ │ ├── _developer-menu.scss │ │ │ │ ├── _css-swatch.scss │ │ │ │ ├── _console.scss │ │ │ │ ├── _file-upload.scss │ │ │ │ ├── _buttonbar.scss │ │ │ │ ├── _data-table.scss │ │ │ │ └── _digi-display.scss │ │ │ ├── mixins │ │ │ │ ├── _clickable.scss │ │ │ │ ├── _disabled.scss │ │ │ │ ├── _scrollbar.scss │ │ │ │ ├── _icons.scss │ │ │ │ ├── index.scss │ │ │ │ ├── _table.scss │ │ │ │ ├── _text-truncate.scss │ │ │ │ └── _toolbar.scss │ │ │ ├── fonts │ │ │ │ ├── SourceSansPro-Bold.woff │ │ │ │ ├── SourceSansPro-Bold.woff2 │ │ │ │ ├── SourceSansPro-Regular.woff │ │ │ │ └── SourceSansPro-Regular.woff2 │ │ │ ├── _cursors.scss │ │ │ └── resets │ │ │ │ └── _reset.scss │ │ ├── debug │ │ │ ├── footer.scss │ │ │ ├── header.scss │ │ │ └── main.scss │ │ └── ng │ │ │ ├── footer.scss │ │ │ └── main.scss │ ├── icons │ │ ├── coffeescript-ui-icons.sketch │ │ ├── info-circle.svg │ │ ├── ruler.svg │ │ ├── rows.svg │ │ ├── popup.svg │ │ ├── reset.svg │ │ ├── info-circle-ng.svg │ │ ├── grid.svg │ │ ├── asset-failed.svg │ │ ├── table.svg │ │ ├── multiple.svg │ │ ├── folder.svg │ │ ├── fullscreen-expand.svg │ │ ├── fullscreen-compress.svg │ │ ├── inherit.svg │ │ ├── arrow-right.svg │ │ ├── remove-icon.svg │ │ └── easydb.svg │ └── thirdparty │ │ ├── leaflet │ │ └── dist │ │ │ └── images │ │ │ ├── layers.png │ │ │ ├── layers-2x.png │ │ │ ├── marker-icon.png │ │ │ ├── marker-icon-2x.png │ │ │ └── marker-shadow.png │ │ └── leaflet-defaulticon-compatibility │ │ └── dist │ │ └── images │ │ ├── layers.png │ │ ├── layers-2x.png │ │ ├── marker-icon.png │ │ ├── marker-shadow.png │ │ └── marker-icon-2x.png ├── elements │ ├── Map │ │ ├── leaflet.attribution.html │ │ ├── map-input.html │ │ └── map.html │ ├── MultiInput │ │ ├── MultiInputControl.css │ │ ├── MultiInputInput.html │ │ └── MultiInputInput.coffee │ ├── Slider │ │ └── Slider.html │ ├── Tabs │ │ ├── Tab.html │ │ └── Tabs.html │ ├── Button │ │ ├── Buttonbar.html │ │ ├── ButtonHref.html │ │ ├── ButtonHref_ng.html │ │ └── Button.html │ ├── ItemList │ │ └── ItemList.html │ ├── ListView │ │ ├── ListViewColumnEmpty.coffee │ │ ├── ListViewTreeHeaderNode.coffee │ │ ├── ListViewHeaderRow.coffee │ │ ├── tools │ │ │ ├── ListViewColumnRowMoveHandlePlaceholder.coffee │ │ │ ├── ListViewDraggable.coffee │ │ │ └── ListViewColumnRowMoveHandle.coffee │ │ └── ListViewColumnRightFill.coffee │ ├── Pane │ │ ├── PaneFooter.coffee │ │ ├── PaneHeader.coffee │ │ ├── PaneToolbar.coffee │ │ └── Pane.html │ ├── StickyHeader │ │ └── StickyHeader.html │ ├── Block │ │ └── Block.html │ ├── Label │ │ ├── EmptyLabel.coffee │ │ ├── MultilineLabel.coffee │ │ └── Label.html │ ├── Panel │ │ └── Panel.html │ ├── MultiOutput │ │ └── MultiOutput.html │ ├── WaitBlock │ │ └── WaitBlock.html │ ├── HorizontalList │ │ └── HorizontalList.coffee │ ├── VerticalList │ │ └── VerticalList.coffee │ ├── ProgressMeter │ │ └── ProgressMeter.html │ ├── Input │ │ ├── NumberInputBlock.coffee │ │ └── ByteSizeInput.coffee │ ├── FileUpload │ │ ├── FileUploadButton.html │ │ └── FileReader.coffee │ ├── Options │ │ └── Options.html │ ├── Toolbar │ │ └── Toolbar.coffee │ ├── FormButton │ │ └── FormButton.coffee │ ├── Console │ │ └── Console.coffee │ ├── Popover │ │ └── Popover.coffee │ ├── ConfirmationChoice │ │ ├── Spinner.coffee │ │ ├── Alert.coffee │ │ └── Toaster.coffee │ ├── BorderLayout │ │ └── BorderLayout.coffee │ ├── Password │ │ └── Password.coffee │ └── Output │ │ └── OutputContent.coffee ├── base │ ├── Events │ │ ├── CUIEvent.coffee │ │ ├── WheelEvent.coffee │ │ └── TouchEvent.coffee │ ├── DataField │ │ ├── DataField.html │ │ ├── CheckValueError.coffee │ │ └── DataFieldInput.coffee │ ├── Base.html │ ├── DragDropSelect │ │ ├── DragoverScrollEvent.coffee │ │ └── Dragscroll.coffee │ ├── Layer │ │ └── Layer.html │ ├── Dummy.coffee │ └── Deferred │ │ ├── decide.coffee │ │ └── Promise.coffee └── tests │ └── Test.coffee ├── Makefile ├── GenerateDocs.coffee ├── postcss.config.js ├── jest.config.js ├── book.json ├── .gitignore └── doc ├── index.html ├── extra_list.html └── mixin_list.html /docs/elements/tabs/menu.cms: -------------------------------------------------------------------------------- 1 | tab=Tab 2 | tabs=Tabs -------------------------------------------------------------------------------- /demo/src/demos/XHR/XHRTest.json: -------------------------------------------------------------------------------- 1 | 2 | {"henk": "horst"} 3 | -------------------------------------------------------------------------------- /test/setup.js: -------------------------------------------------------------------------------- 1 | window.CUI = require('../src/base/CUI.coffee'); -------------------------------------------------------------------------------- /docs/menu.cms: -------------------------------------------------------------------------------- 1 | intro=Introduction 2 | core=Core 3 | elements=Elements 4 | -------------------------------------------------------------------------------- /docs/elements/output/menu.cms: -------------------------------------------------------------------------------- 1 | output=Output 2 | outputcontent=OutputContent -------------------------------------------------------------------------------- /tutorial/simple-examples/css/base.css: -------------------------------------------------------------------------------- 1 | div { 2 | border: solid grey 0.5px; 3 | } -------------------------------------------------------------------------------- /src/scss/themes/fylr/_resets.scss: -------------------------------------------------------------------------------- 1 | @use 'resets/_normalize'; 2 | @use 'resets/_reset'; 3 | -------------------------------------------------------------------------------- /docs/elements/multiinput/menu.cms: -------------------------------------------------------------------------------- 1 | multiinput=MultiInput 2 | multiinputcontrol=MultiInputControl -------------------------------------------------------------------------------- /tutorial/simple-examples/build.sh: -------------------------------------------------------------------------------- 1 | coffee -c index.coffee 2 | coffee -c examples/*/*.coffee 3 | -------------------------------------------------------------------------------- /docs/elements/label/menu.cms: -------------------------------------------------------------------------------- 1 | label=Label 2 | multilinelabel=MultilineLabel 3 | emptylabel=EmptyLabel -------------------------------------------------------------------------------- /docs/elements/stickyheader/menu.cms: -------------------------------------------------------------------------------- 1 | stickyheader=StickyHeader 2 | stickyheadercontrol=StickyHeaderControl -------------------------------------------------------------------------------- /src/elements/Map/leaflet.attribution.html: -------------------------------------------------------------------------------- 1 | © OpenStreetMap contributors -------------------------------------------------------------------------------- /docs/elements/form/menu.cms: -------------------------------------------------------------------------------- 1 | form=Form 2 | formbutton=FormButton 3 | formmodal=FormModal 4 | formpopover=FormPopover -------------------------------------------------------------------------------- /docs/elements/layout/menu.cms: -------------------------------------------------------------------------------- 1 | layout=Layout 2 | horizontallayout=HorizontalLayout 3 | verticallayout=VerticalLayout -------------------------------------------------------------------------------- /src/elements/MultiInput/MultiInputControl.css: -------------------------------------------------------------------------------- 1 | 2 | .ez-tmpl-modal.cui-multi-input-control { 3 | width: initial; 4 | } -------------------------------------------------------------------------------- /src/scss/themes/fylr/index.scss: -------------------------------------------------------------------------------- 1 | // index.scss 2 | @forward '_variables'; 3 | @forward '_functions'; 4 | @forward 'mixins/index'; -------------------------------------------------------------------------------- /demo/src/demos/Menu/Schmetterling.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/demo/src/demos/Menu/Schmetterling.jpg -------------------------------------------------------------------------------- /docs/elements/pane/menu.cms: -------------------------------------------------------------------------------- 1 | pane=Pane 2 | simplepane=SimplePane 3 | paneheader=PaneHeader 4 | panefooter=PaneFooter 5 | panetoolbar=PaneToolbar -------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_popover.scss: -------------------------------------------------------------------------------- 1 | // * Popover 2 | 3 | .cui-popover { 4 | // min-width: map-get($layer-sizes, 'min'); 5 | } 6 | -------------------------------------------------------------------------------- /demo/src/demos/XHR/XHRDelayed.php: -------------------------------------------------------------------------------- 1 | 2 | "henk")) 5 | ?> 6 | -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/menu.cms: -------------------------------------------------------------------------------- 1 | alert=Alert 2 | confirm=Confirm 3 | confirmationchoice=ConfirmationChoice 4 | prompt=Prompt 5 | toaster=Toaster -------------------------------------------------------------------------------- /src/scss/icons/coffeescript-ui-icons.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/icons/coffeescript-ui-icons.sketch -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/_clickable.scss: -------------------------------------------------------------------------------- 1 | @mixin clickable { 2 | cursor: pointer; 3 | user-select: none; 4 | touch-action: manipulation; 5 | } 6 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/custom-element/hello-world.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
-------------------------------------------------------------------------------- /docs/chapter1.md: -------------------------------------------------------------------------------- 1 | # First Chapter 2 | 3 | GitBook allows you to organize your book into chapters, each chapter is stored in a separate file like this one. 4 | -------------------------------------------------------------------------------- /docs/elements/input/menu.cms: -------------------------------------------------------------------------------- 1 | input=Input 2 | emailinput=EmailInput 3 | numberinput=NumberInput 4 | inputblock=InputBlock 5 | numberinputblock=NumberInputBlock -------------------------------------------------------------------------------- /docs/elements/label/emptylabel/emptylabel_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter EmptyLabel 3 | ``` 4 | 5 | @@include(../multilinelabel/multilinelabel_p.md) -------------------------------------------------------------------------------- /docs/elements/pane/panetoolbar/panetoolbar_p.md: -------------------------------------------------------------------------------- 1 | class PaneToolbar extends Toolbar 2 | init: -> 3 | super() 4 | @addClass("cui-pane-toolbar") 5 | 6 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_developer-menu.scss: -------------------------------------------------------------------------------- 1 | @use '../mixins/layer' as *; 2 | 3 | .ez5-developer-menu { 4 | @include layer-width('xs'); 5 | } 6 | -------------------------------------------------------------------------------- /tutorial/public/weather-service.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "temperature": -10, 4 | "skytext": "It's sunny", 5 | "humidity": "80%" 6 | } 7 | } -------------------------------------------------------------------------------- /docs/elements/input/numberinputblock/numberinputblock_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter NumberInputBlock 3 | ``` 4 | 5 | @@include(../inputblock/inputblock_p.md) -------------------------------------------------------------------------------- /docs/styles/website.css: -------------------------------------------------------------------------------- 1 | ul.summary > li:nth-child(-n+2) { 2 | display: none; 3 | } 4 | 5 | ul.summary > li:nth-last-child(-n+2) { 6 | display: none; 7 | } 8 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/fonts/SourceSansPro-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/themes/fylr/fonts/SourceSansPro-Bold.woff -------------------------------------------------------------------------------- /src/scss/themes/fylr/fonts/SourceSansPro-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/themes/fylr/fonts/SourceSansPro-Bold.woff2 -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet/dist/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet/dist/images/layers.png -------------------------------------------------------------------------------- /demo/src/demos/FileUpload/FileUpload.php: -------------------------------------------------------------------------------- 1 | 2 | $_FILES)); 5 | ?> 6 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/fonts/SourceSansPro-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/themes/fylr/fonts/SourceSansPro-Regular.woff -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet/dist/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet/dist/images/layers-2x.png -------------------------------------------------------------------------------- /docs/elements/button/button_exmpl1.coffee: -------------------------------------------------------------------------------- 1 | myButton = new Button 2 | text: "Say Hello" 3 | appearnce: "flat" 4 | size: "big" 5 | onClick: (ev, btn) -> 6 | alert("Hello") -------------------------------------------------------------------------------- /docs/elements/listview/menu.cms: -------------------------------------------------------------------------------- 1 | listview=ListView 2 | listviewtree=ListViewTree 3 | listviewcolumn=ListViewColumn 4 | listviewrow=ListViewRow 5 | listviewtreenode=ListViewTreeNode -------------------------------------------------------------------------------- /src/scss/themes/fylr/fonts/SourceSansPro-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/themes/fylr/fonts/SourceSansPro-Regular.woff2 -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet/dist/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet/dist/images/marker-icon.png -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet/dist/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet/dist/images/marker-icon-2x.png -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet/dist/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet/dist/images/marker-shadow.png -------------------------------------------------------------------------------- /test/html-loader.js: -------------------------------------------------------------------------------- 1 | const htmlLoader = require('html-loader'); 2 | 3 | module.exports = { 4 | process(src, filename, config, options) { 5 | return htmlLoader(src); 6 | } 7 | } -------------------------------------------------------------------------------- /docs/intro/intro.md: -------------------------------------------------------------------------------- 1 | # Coffeescript User Interface System (CUI) 2 | 3 | Source code is public at: [https://github.com/programmfabrik/coffeescript-ui](https://github.com/programmfabrik/coffeescript-ui) 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | all: npm_ci 2 | npm run build:all 3 | 4 | watch: 5 | npm run build:watch 6 | 7 | npm_ci: 8 | npm ci 9 | 10 | npm_install: 11 | npm install 12 | 13 | .PHONY: all watch npm_install npm_ci 14 | -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/layers.png -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/layers-2x.png -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/marker-icon.png -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/marker-shadow.png -------------------------------------------------------------------------------- /src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/programmfabrik/coffeescript-ui/HEAD/src/scss/thirdparty/leaflet-defaulticon-compatibility/dist/images/marker-icon-2x.png -------------------------------------------------------------------------------- /demo/src/demos/XHR/XHRTest.php: -------------------------------------------------------------------------------- 1 | 2 | "henk")); 9 | ?> 10 | -------------------------------------------------------------------------------- /docs/elements/borderlayout/borderlayout_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter BorderLayout 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ||||| | 6 | ``` 7 | -------------------------------------------------------------------------------- /docs/elements/layer/layer.md: -------------------------------------------------------------------------------- 1 | # Layer 2 | 3 | DOM 4 | Layer 5 | 6 | *** 7 | 8 | 9 | @@include(layer_p.md) -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/_disabled.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | @mixin disabled() { 4 | user-select: none; 5 | opacity: var(--disabled-opacity, #{$disabled-opacity}); 6 | pointer-events: var(--pointer-events-when-disabled, none); 7 | } 8 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Coffeescript-UI 2 | 3 | The Coffeescript-UI (CUI) system is a simple framework to develop webapplications quickly. It's main design goal was to give the programmer an easy way to focus on problem solution without creating HTML and CSS files. 4 | 5 | -------------------------------------------------------------------------------- /docs/elements/console/console.md: -------------------------------------------------------------------------------- 1 | # Console 2 | 3 | DOM 4 | Console 5 | 6 | *** 7 | 8 | 9 | @@include(console_p.md) -------------------------------------------------------------------------------- /docs/elements/pane/paneheader/paneheader_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter PaneHeader 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ``` 6 | 7 | @@include(../../toolbar/toolbar_p.md) -------------------------------------------------------------------------------- /docs/elements/select/select_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Select 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ||||| | 6 | ``` 7 | 8 | @@include(../checkbox/checkbox_p.md) -------------------------------------------------------------------------------- /docs/elements/tabs/tab/tab.md: -------------------------------------------------------------------------------- 1 | # Tab 2 | 3 | DOM 4 | Tab 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(tab_p.md) -------------------------------------------------------------------------------- /src/elements/Slider/Slider.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 | 8 | -------------------------------------------------------------------------------- /src/scss/themes/debug/footer.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | */ 7 | 8 | // footer -------------------------------------------------------------------------------- /src/scss/themes/ng/footer.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | */ 7 | 8 | // footer -------------------------------------------------------------------------------- /tutorial/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI Tutorial 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /tutorial/src/scss/base.scss: -------------------------------------------------------------------------------- 1 | .tutorial-main-layout { 2 | background-color: #eef0f1; 3 | } 4 | 5 | .tutorial-main-layout-top { 6 | display: block; 7 | font-size: 20px; 8 | } 9 | 10 | .tutorial-main-layout-bottom { 11 | text-align: center; 12 | font-size: 10px 13 | } -------------------------------------------------------------------------------- /docs/elements/panel/panel.md: -------------------------------------------------------------------------------- 1 | # Panel 2 | 3 | DOM 4 | Panel 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(panel_p.md) -------------------------------------------------------------------------------- /docs/elements/password/password_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Password 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ||||| | 6 | 7 | ``` 8 | 9 | @@include(../input/input/input_p.md) -------------------------------------------------------------------------------- /GenerateDocs.coffee: -------------------------------------------------------------------------------- 1 | CodoCLI = require 'codo/lib/command.coffee' 2 | codoCLI = new CodoCLI() 3 | options = 4 | output: './doc' 5 | name: 'Coffeescript-UI Documentation' 6 | title: 'Coffeescript-UI Documentation' 7 | 8 | codoCLI.generate "./src", options, (exitCode) -> process.exit exitCode 9 | -------------------------------------------------------------------------------- /docs/elements/pane/panefooter/panefooter_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter PaneFooter 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ||||| | 6 | ``` 7 | 8 | @@include(../../toolbar/toolbar_p.md) -------------------------------------------------------------------------------- /docs/elements/pane/pane/pane_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Pane 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ||||| | 6 | ``` 7 | 8 | @@include(../../layout/verticallayout/verticallayout_p.md) -------------------------------------------------------------------------------- /docs/elements/layout/verticallayout/verticallayout_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter VerticalLayout 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ||||| | 6 | ``` 7 | 8 | @@include(../layout/layout_p.md) -------------------------------------------------------------------------------- /docs/elements/digidisplay/digidisplay.md: -------------------------------------------------------------------------------- 1 | # DigiDisplay 2 | 3 | DOM 4 | Tab 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(digidisplay_p.md) -------------------------------------------------------------------------------- /docs/elements/input/inputblock/inputblock.md: -------------------------------------------------------------------------------- 1 | # InputBlock 2 | 3 | CUI-Element 4 | Inputblock 5 | 6 | *** 7 | 8 | 9 | @@include(inputblock_p.md) -------------------------------------------------------------------------------- /docs/elements/layout/horizontallayout/horizontallayout_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter HorizontalLayout 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | ||||| | 6 | ``` 7 | 8 | @@include(../layout/layout_p.md) -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/_scrollbar.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | // custom thumb-color track-color (#c1c1c1 is the color of the native Chrome thumb) 4 | // works in all major browsers except Safari (and iOS) 5 | 6 | @mixin scrollbar-inverted() { 7 | scrollbar-color: #c1c1c1 $gray-800; 8 | } 9 | -------------------------------------------------------------------------------- /src/base/Events/CUIEvent.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.CUIEvent extends CUI.Event -------------------------------------------------------------------------------- /src/base/DataField/DataField.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 | -------------------------------------------------------------------------------- /docs/elements/digidisplay/digidisplay_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter DigiDisplay 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | digits |
<Array> | - | yes | Lorem | 6 | ``` 7 | 8 | @@include(../../core/dom/dom_p.md) 9 | -------------------------------------------------------------------------------- /docs/elements/progressmeter/progressmeter.md: -------------------------------------------------------------------------------- 1 | # ProgressMeter 2 | 3 | DOM 4 | ProgressMeter 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(progressmeter_p.md) -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | const cssnanoConfig = { 2 | preset: ['default', { discardComments: true }] 3 | }; 4 | 5 | module.exports = function({ file, options }) { 6 | return { 7 | plugins: { 8 | autoprefixer: { grid: false }, 9 | cssnano: options.optimize ? cssnanoConfig : false, 10 | }, 11 | }; 12 | }; 13 | -------------------------------------------------------------------------------- /src/elements/Tabs/Tab.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 | -------------------------------------------------------------------------------- /demo/postcss.config.js: -------------------------------------------------------------------------------- 1 | const cssnanoConfig = { 2 | preset: ['default', { discardComments: true }] 3 | }; 4 | 5 | module.exports = function({ file, options }) { 6 | return { 7 | plugins: { 8 | autoprefixer: { grid: false }, 9 | cssnano: options.optimize ? cssnanoConfig : false, 10 | }, 11 | }; 12 | }; 13 | -------------------------------------------------------------------------------- /docs/elements/objectdumper/objectdumper_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ObjectDumper 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | object |
not function() ? | - | yes | Lorem | 6 | ``` 7 | 8 | @@include(../../core/element/element_p.md) -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // collectCoverage: true, 3 | // collectCoverageFrom: ['src/**/*.coffee'], 4 | "setupFiles": [ 5 | "./test/setup.js" 6 | ], 7 | "transform": { 8 | "^.+\\.coffee$": "./test/preprocessor.js", 9 | "^.+\\.html$": "./test/html-loader.js" 10 | } 11 | } -------------------------------------------------------------------------------- /src/base/DataField/CheckValueError.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.CheckValueError extends window.Error 9 | -------------------------------------------------------------------------------- /src/elements/Button/Buttonbar.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 | -------------------------------------------------------------------------------- /src/elements/Tabs/Tabs.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
-------------------------------------------------------------------------------- /docs/elements/console/console_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Console 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | markdown |
<Boolean> | true | yes |
true
false
| 6 | ``` 7 | 8 | @@include(../../core/dom/dom_p.md) -------------------------------------------------------------------------------- /docs/elements/fileupload/filereader/filereader_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter FileReader 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | url | | | | | 6 | 7 | ``` 8 | 9 | @@include(../fileupload/fileupload_p.md) -------------------------------------------------------------------------------- /docs/elements/fileupload/fileupload/fileupload.md: -------------------------------------------------------------------------------- 1 | # FileUpload 2 | 3 | CUI-Element 4 | FileUpload 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | @@include(fileupload.md) -------------------------------------------------------------------------------- /docs/elements/input/emailinput/emailinput_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter EmailInput 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | checkInput | | | |   | 6 | ``` 7 | 8 | @@include(../input/input_p.md) 9 | -------------------------------------------------------------------------------- /docs/elements/objectdumper/objectdumper.md: -------------------------------------------------------------------------------- 1 | # ObjectDumper 2 | 3 | CUI-Element 4 | ObjectDumper 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(objectdumper_p.md) -------------------------------------------------------------------------------- /docs/elements/stickyheader/stickyheader/stickyheader.md: -------------------------------------------------------------------------------- 1 | # StickyHeader 2 | 3 | DOM 4 | StickyHeader 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(stickyheader_p.md) -------------------------------------------------------------------------------- /docs/elements/form/formmodal/formmodal_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter FormModal 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | popover | | | |   | 7 | ``` 8 | 9 | @@include(../formpopover/formpopover_p.md) -------------------------------------------------------------------------------- /docs/elements/multioutput/multioutput_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter MultiOutput 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | control |
<Object> = MultiInputControl | - | yes | Lorem | 6 | ``` 7 | 8 | @@include(../output/output/output_p.md) -------------------------------------------------------------------------------- /src/elements/ItemList/ItemList.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 | -------------------------------------------------------------------------------- /src/scss/themes/debug/header.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | */ 7 | 8 | // header for "ng*" 9 | body { 10 | opacity: 1 !important; 11 | } -------------------------------------------------------------------------------- /src/scss/themes/ng/main.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | */ 7 | 8 | @use 'header.scss'; 9 | @use 'body.scss'; 10 | @use 'footer.scss'; 11 | -------------------------------------------------------------------------------- /docs/elements/menu/menu.md: -------------------------------------------------------------------------------- 1 | # Menu 2 | 3 | DOM 4 | Layer 5 | Menu 6 | 7 | *** 8 | 9 | ## Description 10 | 11 | 12 | @@include(menu_p.md) -------------------------------------------------------------------------------- /src/scss/themes/debug/main.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | */ 7 | 8 | @use "header.scss"; 9 | @use "body.scss"; 10 | @use "footer.scss"; 11 | -------------------------------------------------------------------------------- /src/scss/icons/info-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /docs/elements/layerpane/layerpane.md: -------------------------------------------------------------------------------- 1 | # LayerPane 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | 7 | *** 8 | 9 | 10 | 11 | @@include(layerpane_p.md) -------------------------------------------------------------------------------- /docs/elements/layerpane/layerpane_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter LayerPane 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | pane |
<Object> = Pane
<PlainObject> | `new SimplePane()` | yes |   | 7 | ``` 8 | 9 | @@include(../layer/layer_p.md) -------------------------------------------------------------------------------- /docs/elements/fileupload/fileuploadfile/fileuploadfile.md: -------------------------------------------------------------------------------- 1 | # FileUploadFile 2 | 3 | CUI-Element 4 | FileUploadFile 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(fileuploadfile_p.md) -------------------------------------------------------------------------------- /docs/elements/stickyheader/stickyheadercontrol/stickyheadercontrol_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter StickyHeaderControl 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | element |
isElement | - | yes | Lorem | 6 | ``` 7 | 8 | @@include(../../../core/element/element_p.md) -------------------------------------------------------------------------------- /docs/elements/label/multilinelabel/multilinelabel_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter MultilineLabel 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | multiline | | true | |   | 7 | 8 | ``` 9 | 10 | @@include(../label/label_p.md) 11 | -------------------------------------------------------------------------------- /src/elements/ListView/ListViewColumnEmpty.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.ListViewColumnEmpty extends CUI.ListViewColumn 9 | render: -> 10 | -------------------------------------------------------------------------------- /docs/elements/options/options.md: -------------------------------------------------------------------------------- 1 | # Options 2 | 3 | DOM 4 | Datafield 5 | Options 6 | 7 | *** 8 | 9 | ## Description 10 | 11 | 12 | @@include(options_p.md) -------------------------------------------------------------------------------- /src/elements/ListView/ListViewTreeHeaderNode.coffee: -------------------------------------------------------------------------------- 1 | class CUI.ListViewTreeHeaderNode extends CUI.ListViewTreeNode 2 | initOpts: -> 3 | super() 4 | @addOpts 5 | headers: 6 | check: (v) -> 7 | v.length > 0 8 | 9 | render: -> 10 | @__is_rendered = true 11 | for header, idx in @_headers 12 | @addColumn(new CUI.ListViewHeaderColumn(header)) 13 | @ 14 | -------------------------------------------------------------------------------- /docs/elements/waitblock/waitblock.md: -------------------------------------------------------------------------------- 1 | # Waitblock 2 | 3 | DOM 4 | Block 5 | WaitBlock 6 | 7 | *** 8 | 9 | ## Description 10 | 11 | 12 | @@include(waitblock_p.md) -------------------------------------------------------------------------------- /src/elements/ListView/ListViewHeaderRow.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.ListViewHeaderRow extends CUI.ListViewRow 9 | isSelectable: -> 10 | false -------------------------------------------------------------------------------- /docs/elements/multiinput/multiinputcontrol/multiinputcontrol.md: -------------------------------------------------------------------------------- 1 | # MultiInputControl 2 | 3 | CUI-Element 4 | MultiInputControl 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(multiinputcontrol_p.md) -------------------------------------------------------------------------------- /docs/elements/documentbrowser/documentbrowser/documentbrowser.md: -------------------------------------------------------------------------------- 1 | # DocumentBrowser 2 | 3 | CUI-Element 4 | MultiInputControl 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | 12 | @@include(documentbrowser_p.md) -------------------------------------------------------------------------------- /docs/elements/stickyheader/stickyheadercontrol/stickyheadercontrol.md: -------------------------------------------------------------------------------- 1 | # StickyHeaderControl 2 | 3 | CUI-Element 4 | StickyHeaderControl 5 | 6 | *** 7 | 8 | ## Description 9 | 10 | 11 | @@include(stickyheadercontrol_p.md) 12 | -------------------------------------------------------------------------------- /src/base/Base.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/elements/ListView/tools/ListViewColumnRowMoveHandlePlaceholder.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.ListViewColumnRowMoveHandlePlaceholder extends CUI.ListViewColumnEmpty 9 | -------------------------------------------------------------------------------- /docs/elements/label/multilinelabel/multilinelabel.md: -------------------------------------------------------------------------------- 1 | # MultilineLabel 2 | 3 | DOM 4 | Label 5 | MultilineLabel 6 | 7 | *** 8 | 9 | 10 | @@include(multilinelabel_p.md) -------------------------------------------------------------------------------- /docs/elements/popover/popover_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Popover 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | placement | | null | | | 7 | | pointer | | arrow | |   | 8 | ``` 9 | 10 | @@include(../modal/modal_p.md) 11 | -------------------------------------------------------------------------------- /src/elements/Pane/PaneFooter.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.PaneFooter extends CUI.Toolbar 9 | init: -> 10 | super() 11 | @addClass("cui-pane-footer") 12 | 13 | -------------------------------------------------------------------------------- /src/elements/Pane/PaneHeader.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.PaneHeader extends CUI.Toolbar 9 | init: -> 10 | super() 11 | @addClass("cui-pane-header") 12 | 13 | -------------------------------------------------------------------------------- /src/elements/Pane/PaneToolbar.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.PaneToolbar extends CUI.Toolbar 9 | init: -> 10 | super() 11 | @addClass("cui-pane-toolbar") 12 | 13 | -------------------------------------------------------------------------------- /src/base/DragDropSelect/DragoverScrollEvent.coffee: -------------------------------------------------------------------------------- 1 | class CUI.DragoverScrollEvent extends CUI.Event 2 | initOpts: -> 3 | super() 4 | @addOpts 5 | count: 6 | mandatory: true 7 | check: (v) => 8 | CUI.util.isPosInt(v) 9 | originalEvent: 10 | mandatory: true 11 | check: CUI.Event 12 | 13 | getCount: -> 14 | @_count 15 | 16 | getOriginalEvent: -> 17 | @_originalEvent 18 | -------------------------------------------------------------------------------- /docs/elements/fileupload/filereaderfile/filereaderfile_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter FileReaderFile 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | format |
<String> =
"ArrayBuffer" | "Text" | "Text" | yes |   | 7 | 8 | ``` 9 | 10 | @@include(../fileuploadfile/fileuploadfile_p.md) -------------------------------------------------------------------------------- /docs/elements/input/inputblock/inputblock_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter InputBlock 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | start |
<Integer> | - | yes | Lorem | 6 | | string |
<String> | - | yes | Lorem | 7 | 8 | 9 | ``` 10 | 11 | @@include(../../../core/element/element_p.md) -------------------------------------------------------------------------------- /docs/elements/modal/modal.md: -------------------------------------------------------------------------------- 1 | # Modal 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | 8 | *** 9 | 10 | 11 | 12 | @@include(modal_p.md) -------------------------------------------------------------------------------- /src/elements/StickyHeader/StickyHeader.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
-------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_css-swatch.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | .css-swatch { 4 | width: 24px; 5 | height: 12px; 6 | box-shadow: 0 0 0 1px hsl(0deg 0% 0% / 14%) inset; 7 | background-color: var(--custom-tag-background); 8 | 9 | @each $color, $value in $colors { 10 | &.cui-swatch-color-#{$color} { 11 | // todo: sass test 12 | background-color: $value; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs/elements/borderlayout/borderlayout.md: -------------------------------------------------------------------------------- 1 | # BorderLayout 2 | 3 | DOM 4 | Layout 5 | BorderLayout 6 | 7 | *** 8 | 9 | ## Description 10 | 11 | 12 | @@include(borderlayout_p.md) 13 | -------------------------------------------------------------------------------- /src/elements/Block/Block.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
-------------------------------------------------------------------------------- /docs/elements/confirmationchoice/prompt/prompt_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Prompt 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | default |
<String> | *empty String* | no | Lorem | 7 | | choices | | | |   | 8 | 9 | ``` 10 | 11 | @@include(../confirm/confirm_p.md) 12 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_console.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | // Console 4 | .cui-console { 5 | padding: $spacer-sm; 6 | font-family: $font-family-monospace; 7 | font-size: $font-size-sm; 8 | 9 | .cui-label-multiline { 10 | margin: $spacer-xs 0 !important; 11 | } 12 | 13 | .cui-label:not(:last-child) { 14 | border-bottom: 1px solid $gray-300; 15 | padding-bottom: $spacer-xs; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /docs/elements/input/numberinputblock/numberinputblock.md: -------------------------------------------------------------------------------- 1 | # NumberInputBlock 2 | 3 | CUI-Element 4 | Inputblock 5 | NumberInputblock 6 | 7 | *** 8 | 9 | 10 | @@include(numberinputblock_p.md) -------------------------------------------------------------------------------- /docs/elements/pane/pane/pane.md: -------------------------------------------------------------------------------- 1 | # Pane 2 | 3 | DOM 4 | Layout 5 | VerticalLayout 6 | Pane 7 | 8 | *** 9 | 10 | 11 | @@include(pane_p.md) -------------------------------------------------------------------------------- /docs/elements/fileupload/filereader/filereader.md: -------------------------------------------------------------------------------- 1 | # FileReader 2 | 3 | CUI-Element 4 | FileUpload 5 | FileReader 6 | 7 | *** 8 | 9 | ## Description 10 | 11 | 12 | 13 | @@include(filereader_p.md) -------------------------------------------------------------------------------- /docs/elements/fileupload/fileuploadbutton/fileuploadbutton.md: -------------------------------------------------------------------------------- 1 | # FileUploadButton 2 | 3 | DOM 4 | Button 5 | FileUploadButton 6 | 7 | *** 8 | 9 | ## Description 10 | 11 | 12 | @@include(fileuploadbutton_p.md) -------------------------------------------------------------------------------- /docs/elements/input/input/input.md: -------------------------------------------------------------------------------- 1 | # Input 2 | 3 | DOM 4 | DataField 5 | DataFieldInput 6 | Input 7 | 8 | *** 9 | 10 | 11 | 12 | @@include(input_p.md) -------------------------------------------------------------------------------- /test/preprocessor.js: -------------------------------------------------------------------------------- 1 | const coffee = require('coffeescript'); 2 | const babelJest = require('babel-jest'); 3 | 4 | module.exports = { 5 | process: (src, path) => { 6 | if (coffee.helpers.isCoffee(path)) { 7 | return coffee.compile(src, {bare: true}); 8 | } 9 | if (!/node_modules/.test(path)) { 10 | return babelJest.process(src, path); 11 | } 12 | return src; 13 | } 14 | }; -------------------------------------------------------------------------------- /docs/elements/tooltip/tooltip.md: -------------------------------------------------------------------------------- 1 | # Tooltip 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Tooltip 7 | 8 | *** 9 | 10 | ## Description 11 | 12 | 13 | @@include(tooltip_p.md) -------------------------------------------------------------------------------- /docs/elements/toolbar/toolbar.md: -------------------------------------------------------------------------------- 1 | # Toolbar 2 | 3 | DOM 4 | Layout 5 | HorizontalLayout 6 | Toolbar 7 | 8 | *** 9 | 10 | 11 | @@include(toolbar_p.md) -------------------------------------------------------------------------------- /book.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": "./docs", 3 | "title": "Documentation of Coffeescript UI", 4 | "structure": { 5 | "summary": "SUMMARY.md" 6 | }, 7 | "plugins": [ 8 | "download-pdf-link", 9 | "-lunr", 10 | "-search", 11 | "search-plus" 12 | ], 13 | "pluginsConfig": { 14 | "download-pdf-link": { 15 | "base": "https://www.gitbook.com/download/pdf/book/programmfabrik/coffeescript-ui", 16 | "label": "Download PDF" 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/elements/Button/ButtonHref.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 |
10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /src/elements/Label/EmptyLabel.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.EmptyLabel extends CUI.MultilineLabel 9 | constructor: (opts) -> 10 | super(opts) 11 | @addClass("cui-empty-label") 12 | 13 | readOpts: -> 14 | super() 15 | 16 | -------------------------------------------------------------------------------- /src/elements/ListView/ListViewColumnRightFill.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.ListViewColumnRightFill extends CUI.ListViewColumnEmpty 9 | render: -> 10 | 11 | setElement: -> 12 | 13 | addClass: -> 14 | 15 | removeClass: -> 16 | -------------------------------------------------------------------------------- /docs/elements/verticallist/verticallist_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter VerticalList 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | content | {} | - | no | Lorem | 6 | | center | | | | | 7 | | maximize | | false | |   | 8 | ``` 9 | 10 | @@include(../layout/verticallayout/verticallayout_p.md) 11 | -------------------------------------------------------------------------------- /src/elements/Map/map-input.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | 7 |
8 |
9 |
10 |
-------------------------------------------------------------------------------- /src/elements/MultiInput/MultiInputInput.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_file-upload.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | // File Upload Drop Zone 4 | .cui-file-upload-drop-zone { 5 | position: relative; 6 | } 7 | 8 | .cui-file-upload-drag-over::after { 9 | content: ''; 10 | pointer-events: none; 11 | display: block; 12 | position: absolute; 13 | top: 0; 14 | bottom: 0; 15 | left: 0; 16 | right: 0; 17 | box-shadow: 0 0 0 2px var(--brand-color, #{$primary}) inset; 18 | z-index: 1; 19 | } 20 | -------------------------------------------------------------------------------- /demo/src/demos/StickyHeader/StickyHeaderDemo.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
-------------------------------------------------------------------------------- /docs/SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | [Introduction](README.md) 4 | 5 | #### Base 6 | * [CUI.dom](base/dom.md) 7 | * [CUI.util](base/util.md) 8 | * [CUI.Element](base/element.md) 9 | * [CUI.Deferred](base/deferred.md) 10 | * [CUI.XHR](base/xhr.md) 11 | * [CUI.Template](base/template.md) 12 | * [CUI.Events](base/events.md) 13 | * [CUI.Event](base/event.md) 14 | * [CUI.Listener](base/listener.md) 15 | 16 | #### Elements 17 | * [CUI.Map](elements/map/map.md) 18 | -------------------------------------------------------------------------------- /docs/elements/horizontallist/horizontallist_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter HorizontalList 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | content | {} | - | no | Lorem | 7 | | center | | | | | 8 | | center | | false | |   | 9 | ``` 10 | 11 | @@include(../layout/horizontallayout/horizontallayout_p.md) -------------------------------------------------------------------------------- /docs/elements/output/output/output.md: -------------------------------------------------------------------------------- 1 | # Output 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | Output 7 | 8 | *** 9 | 10 | ## Description 11 | 12 | 13 | @@include(output_p.md) -------------------------------------------------------------------------------- /src/elements/Panel/Panel.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
-------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | public/* 2 | .sass-cache 3 | *.coffee.js 4 | *~ 5 | *\# 6 | .DS_Store 7 | commit.txt 8 | node_modules 9 | .\#* 10 | .idea 11 | npm-debug.log 12 | src/**.js 13 | src/**.js.map 14 | !public/cui.js 15 | !public/cui.min.js 16 | !public/cui.css 17 | !public/cui_fylr.css 18 | !public/cui_debug.css 19 | !public/cui-tutorial.js 20 | !demo/public/cui-demo.js 21 | !demo/public/cui-demo.css 22 | !demo/public/css 23 | coverage/* 24 | *.map 25 | _obsolete.scss 26 | .node-version -------------------------------------------------------------------------------- /docs/elements/form/formpopover/formpopover.md: -------------------------------------------------------------------------------- 1 | # FormPopover 2 | 3 | DOM 4 | Datafield 5 | Form 6 | FormPopover 7 | 8 | *** 9 | 10 | ## Description 11 | 12 | @@include(formpopover_p.md) -------------------------------------------------------------------------------- /docs/elements/label/emptylabel/emptylabel.md: -------------------------------------------------------------------------------- 1 | # EmptyLabel 2 | 3 | 4 | DOM 5 | Label 6 | MultilineLabel 7 | EmptyLabel 8 | 9 | *** 10 | 11 | 12 | @@include(emptylabel_p.md) -------------------------------------------------------------------------------- /docs/elements/fileupload/filereaderfile/filereaderfile.md: -------------------------------------------------------------------------------- 1 | # FileReaderFile 2 | 3 | CUI-Element 4 | FileUploadFile 5 | FileReaderFile 6 | 7 | *** 8 | 9 | ## Description 10 | 11 | 12 | @@include(filereaderfile_p.md) -------------------------------------------------------------------------------- /tutorial/src/modules/weather/WeatherService.coffee: -------------------------------------------------------------------------------- 1 | #CUI = require("coffeescript-ui/public/cui.js") 2 | 3 | class WeatherService 4 | 5 | @urlService = "public/weather-service.json?city=" 6 | 7 | @getWeather: (city) -> 8 | deferred = new CUI.Deferred() 9 | 10 | xhr = new CUI.XHR 11 | url: @urlService + city 12 | 13 | xhr.start().done((response) => 14 | deferred.resolve(response.data) 15 | ) 16 | 17 | return deferred.promise() 18 | 19 | module.exports = WeatherService 20 | -------------------------------------------------------------------------------- /tutorial/simple-examples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI APP! 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tutorial/src/modules/weather/weather.html: -------------------------------------------------------------------------------- 1 |
2 | 16 |
-------------------------------------------------------------------------------- /docs/elements/multiinput/multiinput/multiinput.md: -------------------------------------------------------------------------------- 1 | # MultiInput 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | MultiInput 7 | 8 | *** 9 | 10 | ## Description 11 | 12 | 13 | @@include(multiinput_p.md) -------------------------------------------------------------------------------- /docs/elements/verticallist/verticallist.md: -------------------------------------------------------------------------------- 1 | # VerticalList 2 | 3 | DOM 4 | Layout 5 | VerticalLayout 6 | VerticalList 7 | 8 | *** 9 | 10 | ## Description 11 | 12 | 13 | @@include(verticallist_p.md) -------------------------------------------------------------------------------- /src/base/Events/WheelEvent.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.WheelEvent extends CUI.MouseEvent 9 | dump: -> 10 | super()+" wheelY: **"+@wheelDeltaY()+"**" 11 | 12 | wheelDeltaY: -> 13 | ne = @getNativeEvent() 14 | if not ne 15 | return 0 16 | ne.deltaY or 0 17 | -------------------------------------------------------------------------------- /src/elements/MultiOutput/MultiOutput.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 | -------------------------------------------------------------------------------- /demo/src/demos/Sudoku/Sudoku.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /docs/elements/buttonhref/buttonhref_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ButtonHref 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | href |
<String> | - | no |
Contains the URL | 7 | | target |
<String> | - | no |
_blank
Opens link in a new tab | 8 | | download |
<Boolean> | - | no |
true
false
  | 9 | ``` 10 | 11 | @@include(../button/button_p.md) 12 | -------------------------------------------------------------------------------- /docs/elements/listview/listviewrow/listviewrow_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ListviewRow 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | children |
<Array> | - | no | Defines the node's data as an array | 6 | | selectable |
<Boolean> | - | no |
true
false
| 7 | | class |
<String> | - | no | Lorem | 8 | 9 | ``` 10 | 11 | @@include(../../../core/element/element_p.md) -------------------------------------------------------------------------------- /docs/elements/output/outputcontent/outputcontent.md: -------------------------------------------------------------------------------- 1 | # OutputContent 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | OutputContent 7 | 8 | *** 9 | 10 | ## Description 11 | 12 | 13 | @@include(outputcontent_p.md) -------------------------------------------------------------------------------- /src/elements/Button/ButtonHref_ng.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 |
10 |
11 |
12 |
13 |
14 |
15 | -------------------------------------------------------------------------------- /src/elements/Label/MultilineLabel.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.MultilineLabel extends CUI.Label 9 | 10 | constructor: (opts) -> 11 | super(opts) 12 | @addClass("cui-label") 13 | 14 | initOpts: -> 15 | super() 16 | @mergeOpt("multiline", default: true) 17 | 18 | 19 | -------------------------------------------------------------------------------- /docs/elements/horizontallist/horizontallist.md: -------------------------------------------------------------------------------- 1 | # HorizontalList 2 | 3 | DOM 4 | Layout 5 | HorizontalLayout 6 | HorizontalList 7 | 8 | *** 9 | 10 | ## Description 11 | 12 | 13 | @@include(horizontallist_p.md) 14 | -------------------------------------------------------------------------------- /docs/elements/icon/icon_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Icon 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | class |
String | - | no | Lorem ipsum | 7 | | icon |
String
Icon | - | no | Lorem ipsum | 8 | | fixed_width |
true
false
| - | no | Lorem ipsum | 9 | | tooltip |
PlainObject | - | no | Lorem ipsum   | 10 | 11 | ``` 12 | 13 | @@include(../../core/element/element_p.md) -------------------------------------------------------------------------------- /docs/elements/popover/popover.md: -------------------------------------------------------------------------------- 1 | # Popover 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | Popover 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | 14 | @@include(popover_p.md) -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/_icons.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | @mixin icon($code, $font-size: $icon-font-size) { 4 | content: $code; 5 | display: inline-block; 6 | // stylelint-disable-next-line 7 | font: normal normal normal var(--icon-font-size, #{$font-size}) 'FontAwesome'; 8 | text-rendering: auto; 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | } 12 | 13 | @mixin icon-close-xs() { 14 | .svg-close { 15 | width: 9px; 16 | height: 9px; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/form/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Form 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/icon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Icon 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/modal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Modal 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/pane/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Pane 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/toaster/toaster_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Toaster 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | choices | | | | | 7 | | backdrop | | false | | | 8 | | show_ms |
<Integer> >= 0 | | |   | 9 | 10 | ``` 11 | 12 | @@include(../confirmationchoice/confirmationchoice_p.md) 13 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/button/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Button 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /doc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Coffeescript-UI Documentation 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /docs/elements/select/select.md: -------------------------------------------------------------------------------- 1 | # Select 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | Checkbox 7 | Select 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | @@include(select_p.md) -------------------------------------------------------------------------------- /docs/elements/multiinput/multiinputcontrol/multiinputcontrol_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter MultiInputControl 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | preferred_key |
<String> | - | no | Lorem | 6 | | keys |
<Array> and length > 0 | - | no | Lorem | 7 | | user_control |
<Boolean> | true | no |
true
false
| 8 | ``` 9 | 10 | @@include(../../../core/element/element_p.md) 11 | 12 | 13 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/element-props/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Element props 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /demo/src/demos/FileUpload/FileUploadDemo.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
-------------------------------------------------------------------------------- /tutorial/simple-examples/examples/custom-element/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Custom element 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/base/Layer/Layer.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 | 13 | -------------------------------------------------------------------------------- /src/elements/WaitBlock/WaitBlock.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
-------------------------------------------------------------------------------- /src/scss/icons/ruler.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/alert/alert_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Alert 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | button_text_ok |
<String> | default: CUI.defaults.class.ConfirmationChoice.defaults.ok | yes | Lorem | 7 | | choices | | | | | 8 | | text | | | yes |   | 9 | 10 | ``` 11 | 12 | @@include(../confirmationchoice/confirmationchoice_p.md) 13 | -------------------------------------------------------------------------------- /docs/elements/datafieldinput/datafieldinput_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter DataFieldInput 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | group |
<String> | - | no | *group* can be used for buttonbars to specify a group of buttons. Buttons with the same *group*-name will be displayed as a directly conntected buttonbar. | 7 | | attr |
PlainObject> | {} | no |   | 8 | 9 | ``` 10 | 11 | @@include(../datafield/datafield_p.md) 12 | -------------------------------------------------------------------------------- /docs/elements/password/password.md: -------------------------------------------------------------------------------- 1 | # Password 2 | 3 | DOM 4 | DataField 5 | DataFieldInput 6 | Input 7 | Password 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | 14 | @@include(password_p.md) -------------------------------------------------------------------------------- /docs/elements/input/emailinput/emailinput.md: -------------------------------------------------------------------------------- 1 | # EmailInput 2 | 3 | DOM 4 | DataField 5 | DataFieldInput 6 | Input 7 | EmailInput 8 | 9 | *** 10 | 11 | 12 | 13 | @@include(emailinput_p.md) -------------------------------------------------------------------------------- /docs/elements/pane/paneheader/paneheader.md: -------------------------------------------------------------------------------- 1 | # PaneHeader 2 | 3 | DOM 4 | Layout 5 | HorizontalLayout 6 | Toolbar 7 | PaneHeader 8 | 9 | *** 10 | 11 | 12 | @@include(paneheader_p.md) -------------------------------------------------------------------------------- /docs/elements/input/numberinput/numberinput.md: -------------------------------------------------------------------------------- 1 | # NumberInput 2 | 3 | DOM 4 | DataField 5 | DataFieldInput 6 | Input 7 | NumberInput 8 | 9 | *** 10 | 11 | 12 | 13 | @@include(numberinput_p.md) -------------------------------------------------------------------------------- /docs/elements/pane/panetoolbar/panetoolbar.md: -------------------------------------------------------------------------------- 1 | # PaneToolbar 2 | 3 | DOM 4 | Layout 5 | HorizontalLayout 6 | Toolbar 7 | PaneToolbar 8 | 9 | *** 10 | 11 | 12 | @@include(panetoolbar_p.md) -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/horizontal-layout/App.coffee: -------------------------------------------------------------------------------- 1 | class App 2 | constructor: -> 3 | 4 | body = new CUI.HorizontalLayout 5 | left: 6 | content: new CUI.Label 7 | centered: true 8 | text: "Left !!" 9 | center: 10 | content: new CUI.Label 11 | centered: true 12 | size: "big" 13 | text: "Hello world!" 14 | icon: "fa-building" 15 | right: 16 | content: new CUI.Label 17 | centered: true 18 | text: "Right" 19 | 20 | CUI.dom.append(document.body, body) 21 | 22 | CUI.ready -> 23 | new App() -------------------------------------------------------------------------------- /docs/elements/confirmationdialog/confirmationdialog.md: -------------------------------------------------------------------------------- 1 | # ConfirmationDialog 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | ConfirmationDialog 8 | 9 | *** 10 | 11 | 12 | 13 | @@include(confirmationdialog_p.md) -------------------------------------------------------------------------------- /docs/elements/form/formmodal/formmodal.md: -------------------------------------------------------------------------------- 1 | # FormModal 2 | 3 | DOM 4 | Datafield 5 | Form 6 | FormPopover 7 | FormModal 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | 14 | @@include(formmodal_p.md) 15 | -------------------------------------------------------------------------------- /docs/elements/multioutput/multioutput.md: -------------------------------------------------------------------------------- 1 | # MultiOutput 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | Output 7 | MultiOutput 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | 14 | @@include(multioutput_p.md) -------------------------------------------------------------------------------- /docs/elements/stickyheader/stickyheader/stickyheader_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter StickyHeader 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | control |
<Object> = StickyHeaderControl | - | yes | Lorem | 6 | | text |
<String> | - | no | Lorem | 7 | | content | {} | - | no | Lorem | 8 | | level |
<Integer> =
0 | 1 | 2 | 0 | no | Lorem | 9 | ``` 10 | 11 | @@include(../../../core/dom/dom_p.md) 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/vertical-layout/App.coffee: -------------------------------------------------------------------------------- 1 | class App 2 | constructor: -> 3 | body = new CUI.VerticalLayout 4 | top: 5 | content: new CUI.Label 6 | centered: true 7 | text: "I'm a header" 8 | center: 9 | content: new CUI.Label 10 | centered: true 11 | size: "big" 12 | text: "Hello world!" 13 | icon: "fa-building" 14 | bottom: 15 | content: new CUI.Label 16 | centered: true 17 | text: "This is the bottom" 18 | 19 | CUI.dom.append(document.body, body) 20 | 21 | CUI.ready -> 22 | new App() -------------------------------------------------------------------------------- /docs/elements/form/formbutton/formbutton.md: -------------------------------------------------------------------------------- 1 | # FormButton 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | Checkbox 7 | FormButton 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | 14 | @@include(formbutton_p.md) 15 | -------------------------------------------------------------------------------- /docs/elements/pane/panefooter/panefooter.md: -------------------------------------------------------------------------------- 1 | # PaneFooter 2 | 3 | DOM 4 | Layout 5 | HorizontalLayout 6 | Toolbar 7 | PaneFooter 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | @@include(panefooter_p.md) -------------------------------------------------------------------------------- /docs/elements/tabs/tabs/tabs_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Tabs 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | tabs |
<Array> and length > 0 | - | true | Lorem | 6 | | active_idx |
<Integer> | - | no | Lorem | 7 | | header_right | | | | | 8 | | header_center | | | | | 9 | | content | | | | | 10 | ``` 11 | 12 | @@include(../../pane/simplepane/simplepane_p.md) 13 | -------------------------------------------------------------------------------- /docs/elements/input/markdowninput/markdowninput.md: -------------------------------------------------------------------------------- 1 | # MarkdownInput 2 | 3 | DOM 4 | DataField 5 | DataFieldInput 6 | Input 7 | MarkdownInput 8 | 9 | *** 10 | 11 | ## Description 12 | 13 | 14 | @@include(markdowninput_p.md) -------------------------------------------------------------------------------- /src/elements/Pane/Pane.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
Placeholder
14 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/border-layout/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI APP! 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/base/Dummy.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | # dummy class so we can use "extend" to mark 9 | # our classes for use in CUI.Element.readOpts 10 | class CUI.Dummy 11 | constructor: (opts = {}) -> 12 | @opts = opts 13 | @__uniqueId = CUI.Dummy.uniqueId++ 14 | @__cls = CUI.util.getObjectClass(@) 15 | 16 | getUniqueId: -> 17 | @__uniqueId 18 | 19 | @uniqueId: 0 20 | 21 | CUI.Dummy -------------------------------------------------------------------------------- /src/elements/MultiInput/MultiInputInput.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | CUI.Template.loadTemplateText(require('./MultiInputInput.html')); 9 | 10 | class CUI.MultiInputInput extends CUI.Input 11 | getTemplate: -> 12 | new CUI.Template 13 | name: "data-field-multi-input" 14 | map: 15 | center: true 16 | right: true 17 | 18 | getTemplateKeyForRender: -> 19 | "center" 20 | -------------------------------------------------------------------------------- /docs/elements/toolbar/toolbar_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Toolbar 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | maximize_horizontal |
<Boolean> | true | yes |
true
false
| 6 | | maximize | | | | | 7 | | maximize_horizontal | | | | | 8 | | maximize_vertical | | | |   | 9 | ``` 10 | 11 | @@include(../layout/horizontallayout/horizontallayout_p.md) 12 | -------------------------------------------------------------------------------- /src/elements/HorizontalList/HorizontalList.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.HorizontalList extends CUI.HorizontalLayout 9 | initOpts: -> 10 | super() 11 | @mergeOpt("maximize", default: false) 12 | @removeOpt("center") 13 | @addOpts 14 | content: {} 15 | 16 | readOpts: -> 17 | super() 18 | @_center = 19 | content: @_content 20 | 21 | getSupportedPanes: -> 22 | [] 23 | -------------------------------------------------------------------------------- /src/elements/VerticalList/VerticalList.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.sorg 6 | ### 7 | 8 | class CUI.VerticalList extends CUI.VerticalLayout 9 | initOpts: -> 10 | super() 11 | @mergeOpt("maximize", default: false) 12 | @removeOpt("center") 13 | @addOpts 14 | content: {} 15 | 16 | readOpts: -> 17 | super() 18 | @_center = 19 | content: @_content 20 | 21 | getSupportedPanes: -> 22 | [] 23 | 24 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/_cursors.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:list'; 2 | 3 | $drag-cursors: default, move, col-resize, row-resize, n-resize, e-resize, s-resize, w-resize, ne-resize, nw-resize, se-resize, sw-resize, ew-resize, ns-resize, nesw-resize, nwse-resize; 4 | 5 | body[data-cursor] { 6 | user-select: none; 7 | } 8 | 9 | @for $i from 1 to list.length($drag-cursors) { 10 | $cursor: list.nth($drag-cursors, $i); 11 | 12 | body[data-cursor="#{$cursor}"] * { 13 | cursor: $cursor !important; 14 | } 15 | } 16 | 17 | // special case with prefix 18 | body[data-cursor='grabbing'] * { 19 | cursor: grabbing !important; 20 | } 21 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/layout-complete/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Layout complete 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/vertical-layout/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Vertical Layout 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/horizontal-layout/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Horizontal Layout 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /docs/elements/tabs/tabs/tabs.md: -------------------------------------------------------------------------------- 1 | # Tabs 2 | 3 | DOM 4 | Layout 5 | VerticalLayout 6 | Pane 7 | SimplePane 8 | Tabs 9 | 10 | *** 11 | 12 | ## Description 13 | 14 | 15 | @@include(tabs_p.md) -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/index.scss: -------------------------------------------------------------------------------- 1 | @forward 'block'; 2 | @forward 'breakpoints'; 3 | @forward 'buttons'; 4 | @forward 'buttonbar'; 5 | @forward 'checkbox'; 6 | @forward 'clickable'; 7 | @forward 'disabled'; 8 | @forward 'flex-layout'; 9 | @forward 'forms'; 10 | @forward 'handles'; 11 | @forward 'icons'; 12 | @forward 'labels'; 13 | @forward 'layer'; 14 | @forward 'list-view'; 15 | @forward 'list-view-use-css-grid-layout'; 16 | @forward 'pane'; 17 | @forward 'scrim-gradient'; 18 | @forward 'scrollbar'; 19 | @forward 'table'; 20 | @forward 'tabs'; 21 | @forward 'text-truncate'; 22 | @forward 'toolbar'; 23 | @forward 'typography'; -------------------------------------------------------------------------------- /docs/elements/fileupload/fileuploadbutton/fileuploadbutton_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter FileUploadButton 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | fileUpload | check: FileUpload | - | yes | Lorem | 6 | | multiple |
<Boolean> | true | no |
true
false
| 7 | | directory |
<Boolean> | - | no | Whether to allow file drop on the button.
true
false
| 8 | | drop |
<Boolean> | - | no |
true
false
| 9 | 10 | ``` 11 | 12 | @@include(../../button/button_p.md) -------------------------------------------------------------------------------- /docs/elements/layout/layout/layout.md: -------------------------------------------------------------------------------- 1 | # Layout 2 | 3 | DOM 4 | Layout 5 | *** 6 | 7 | ## Description 8 | In order to arrange elements within your UI, there are basically two concepts of alignment provided: 9 | - VerticalLayout 10 | - HorizontalLayout 11 | 12 | ## Creating a Layout 13 | 14 | VerticalLayout as well as HorizontalLayout are both derived from this Layout-class which provides the basic functionality. 15 | 16 | 17 | 18 | 19 | @@include(layout_p.md) 20 | 21 | 22 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/vertical-horizontal-list/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CUI - Vertical & Horizontal List 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /demo/src/demos/PanelDemo.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class Demo.PanelDemo extends Demo 9 | display: -> 10 | p1 = new CUI.Panel 11 | text: "Panel title" 12 | content: @getBlindText(3) 13 | 14 | p2 = new CUI.Panel 15 | text: "Schröders Katze" 16 | closed: true 17 | content: @getBlindText(5) 18 | 19 | [ p1.DOM, p2.DOM ] 20 | 21 | undisplay: -> 22 | 23 | 24 | Demo.register(new Demo.PanelDemo()) 25 | -------------------------------------------------------------------------------- /docs/elements/form/formpopover/formpopover_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter FormPopover 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | popover |
<Object> = PlainObject | {} | no | Lorem | 7 | | button |
<Object> = PlainObject | {} | no | Lorem | 8 | | trigger_data_changed_while_open |
<Boolean> | false | no |
true
false
| 9 | | renderDisplayButton | check: Function | - | no | Lorem | 10 | | renderDisplayContent | check: Function | - | no |   | 11 | 12 | ``` 13 | 14 | @@include(../form/form_p.md) -------------------------------------------------------------------------------- /src/base/Deferred/decide.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | # returns a deferred which resolves if the 9 | # decision was positive or rejects if otherwise 10 | CUI.decide = (decision) => 11 | dfr = new CUI.Deferred() 12 | if CUI.util.isPromise(decision) 13 | decision.done(dfr.resolve) 14 | decision.fail(dfr.reject) 15 | else if decision == false 16 | dfr.reject(false) 17 | else 18 | dfr.resolve(decision) 19 | dfr.promise() 20 | -------------------------------------------------------------------------------- /docs/elements/output/outputcontent/outputcontent_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter OutputContent 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | placeholder |
<String> | *emty string* | no | Lorem | 7 | | content |
isElement(v) or isElement(v.DOM) | - | no | Lorem | 8 | 9 | 10 | ## Callbacks OutputContent 11 | 12 | | Callback | Format | Default | Mandatory | Description | 13 | | --- | --- | :---: | :---: | --- | 14 | | getValue |
function() | - | no | Lorem | 15 | ``` 16 | 17 | @@include(../../datafieldinput/datafieldinput_p.md) 18 | -------------------------------------------------------------------------------- /src/elements/ListView/tools/ListViewDraggable.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.ListViewDraggable extends CUI.Draggable 9 | 10 | initOpts: -> 11 | super() 12 | @removeOpt("helper") 13 | @addOpts 14 | row: 15 | mandatory: true 16 | check: CUI.ListViewRow 17 | 18 | readOpts: -> 19 | super() 20 | @__row_i = @_row.getRowIdx() 21 | 22 | get_marker: (cls="") -> 23 | CUI.dom.element("DIV", class: "cui-lv-draggable "+cls) 24 | 25 | -------------------------------------------------------------------------------- /demo/src/demos/Form/FormDemo.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |

15 | 		
16 |
17 |
18 | -------------------------------------------------------------------------------- /src/elements/ProgressMeter/ProgressMeter.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
-------------------------------------------------------------------------------- /docs/elements/confirmationchoice/confirmationchoice/confirmationchoice.md: -------------------------------------------------------------------------------- 1 | # ConfirmationChoice 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | ConfirmationDialog 8 | ConfirmationChoice 9 | 10 | *** 11 | 12 | 13 | 14 | @@include(confirmationchoice_p.md) -------------------------------------------------------------------------------- /docs/elements/datafieldinput/datafieldinput.md: -------------------------------------------------------------------------------- 1 | # DataFieldInput 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | 7 | *** 8 | 9 | ## Description 10 | Lorem Ipsum 11 | 12 | ## Creating a DataFieldInput 13 | 14 | ##### instructions 15 | 16 | 1. 17 | To build a new button you simply create a new object of the type *Button*. 18 | ```coffeescript 19 | myDatafield = new DataFieldInput 20 | 21 | ``` 22 | 23 | 24 | 25 | @@include(datafieldinput_p.md) 26 | 27 | -------------------------------------------------------------------------------- /docs/elements/tooltip/tooltip_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Tooltip 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | text |
<String>
function() | - | no | Lorem | 7 | | markdown |
<Boolean> | false | yes |
true
false
| 8 | | content |
<String>
function()
isElement
<Array>
isElement(v?.DOM) | - | no | Lorem | 9 | | on_click |
<Boolean> | false | yes | Hide/show on click on element.
true
false
| 10 | | on_hover |
<Boolean>
function() | - | no | Lorem | 11 | 12 | ``` 13 | 14 | @@include(../layerpane/layerpane_p.md) -------------------------------------------------------------------------------- /src/elements/Map/map.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
-------------------------------------------------------------------------------- /docs/elements/listview/listviewtreenode/listviewtreenode_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ListviewTreeNode 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | children |
<Array> | - | no | Defines the node's data as an array | 7 | | open |
<Boolean> | - | no |
true
false
| 8 | | html | {} | - | no | Lorem | 9 | 10 | 11 | ## Callbacks ListviewTreeNode 12 | 13 | | Callback | Format | Default | Mandatory | Description | 14 | | --- | --- | :---: | :---: | --- | 15 | | getChildren |
function() | - | no | Lorem | 16 | ``` 17 | 18 | @@include(../listviewrow/listviewrow_p.md) -------------------------------------------------------------------------------- /src/elements/Label/Label.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
-------------------------------------------------------------------------------- /docs/elements/input/markdowninput/markdowninput_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter MarkdownInput 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | preview |
<Boolean> | - | no |
true
false
| 7 | | preview_ms |
<Integer> >= 0 | 500 | no Lorem | 8 | | textarea | | | |   | 9 | 10 | 11 | ## Callbacks MarkdownInput 12 | 13 | | Callback | Format | Default | Mandatory | Description | 14 | | --- | --- | :---: | :---: | --- | 15 | | renderFunction |
function() | marked(md) | yes | Lorem | 16 | ``` 17 | 18 | @@include(../input/inputt_p.md) 19 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/_table.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | @mixin table-zebra() { 4 | // .cui-table 5 | 6 | @include table-no-border(); 7 | 8 | .cui-table-row { 9 | &:nth-child(odd) .cui-table-td { 10 | background: $table-odd-background; 11 | } 12 | 13 | &:nth-child(even) .cui-table-td { 14 | background: $table-even-background; 15 | } 16 | } 17 | } 18 | 19 | @mixin table-row-hover() { 20 | .cui-table-row { 21 | &:hover { 22 | .cui-table-td { 23 | background-color: $table-row-hover-background; 24 | } 25 | } 26 | } 27 | } 28 | 29 | @mixin table-no-border() { 30 | border: 0; 31 | 32 | > .cui-tr + .cui-tr { 33 | > .cui-table-td { 34 | border-top: 0; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/border-layout/App.coffee: -------------------------------------------------------------------------------- 1 | class App 2 | constructor: -> 3 | 4 | body = new CUI.BorderLayout 5 | west: 6 | content: new CUI.Label 7 | centered: true 8 | text: "West" 9 | east: 10 | content: new CUI.Label 11 | centered: true 12 | text: "East" 13 | center: 14 | content: new CUI.Label 15 | centered: true 16 | size: "big" 17 | text: "Hello world!" 18 | icon: "fa-building" 19 | north: 20 | content: new CUI.Label 21 | centered: true 22 | text: "North" 23 | south: 24 | content: new CUI.Label 25 | centered: true 26 | text: "South" 27 | 28 | CUI.dom.append(document.body, body) 29 | 30 | CUI.ready -> 31 | new App() -------------------------------------------------------------------------------- /docs/elements/checkbox/checkbox.md: -------------------------------------------------------------------------------- 1 | # Checkbox 2 | 3 | DOM 4 | Datafield 5 | DatafieldInput 6 | Checkbox 7 | 8 | *** 9 | 10 | ## Description 11 | Lorem Ipsum 12 | 13 | ## Creating a Checkbox 14 | 15 | ##### instructions 16 | 17 | 1. 18 | To build a new button you simply create a new object of the type *Button*. 19 | ```coffeescript 20 | myCheckBox = new Checkbox 21 | 22 | ``` 23 | 24 | 25 | @@include(checkbox_p.md) -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/alert/alert.md: -------------------------------------------------------------------------------- 1 | # Alert 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | ConfirmationDialog 8 | ConfirmationChoice 9 | Alert 10 | 11 | *** 12 | 13 | 14 | 15 | @@include(alert_p.md) -------------------------------------------------------------------------------- /docs/elements/layout/layout/layout_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Layout 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | absolute |
<Boolean> | - | no |
true
false
| 7 | | maximize |
<Boolean> | - | no |
true
false
| 8 | | maximize_horizontal |
<Boolean> | - | no |
true
false
| 9 | | maximize_vertical |
<Boolean> | - | no |
true
false
| 10 | | auto_buttonbar |
<Boolean> | true | yes |
true
false
| 11 | | center |
<PlainObject> | {} | no |   | 12 | ``` 13 | 14 | @@include(../../../core/dom/dom_p.md) -------------------------------------------------------------------------------- /docs/elements/menu/menu_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Menu 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | itemList |
<Object> = ItemList
<Object> = PlainObject | - | no | Lorem | 7 | | auto_close_after_click |
<Boolean> | true | no |
true
false
| 8 | | parent_menu |
<Object> = Menu | - | no | Lorem | 9 | 10 | 11 | ## Callbacks Menu 12 | 13 | | Callback | Format | Default | Mandatory | Description | 14 | | --- | --- | :---: | :---: | --- | 15 | | onBeforeItemListInit |
function() | - | no |   | 16 | ``` 17 | 18 | @@include(../layer/layer_p.md) 19 | -------------------------------------------------------------------------------- /src/elements/Input/NumberInputBlock.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.NumberInputBlock extends CUI.InputBlock 9 | 10 | incrementBlock: (block, blocks) -> 11 | @__changeBlock(block, blocks, 1) 12 | 13 | decrementBlock: (block, blocks) -> 14 | @__changeBlock(block, blocks, -1) 15 | 16 | __changeBlock: (block, blocks, diff) -> 17 | number = parseInt(@__string) 18 | nn = (""+(number+diff)).split("") 19 | # while nn.length < match_len 20 | # nn.splice(0, 0, "0") 21 | block.setString(nn.join("")) 22 | -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/confirm/confirm_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Confirm 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | button_text_ok |
<String> | CUI.defaults.class.ConfirmationChoice.defaults.ok | yes | Lorem | 6 | | button_text_cancel |
<String> | CUI.defaults.class.ConfirmationChoice.defaults.cancel | yes | Lorem | 7 | | button_primary |
<String> =
"ok" | "cancel" | "ok" | yes | Lorem | 8 | | choices | | | | | 9 | | text | | | yes |   | 10 | ``` 11 | 12 | @@include(../confirmationchoice/confirmationchoice_p.md) 13 | -------------------------------------------------------------------------------- /src/elements/FileUpload/FileUploadButton.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | 16 | -------------------------------------------------------------------------------- /docs/elements/block/block_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Block 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | text |
<String> | - | no | Lorem | 7 | | header |
isContent
<String>
.DOM | - | no | Lorem | 8 | | icon |
<Icon> | - | no | Lorem | 9 | | content |
isContent
<String>
.DOM | - | no | Lorem | 10 | | level |
<Integer> = 1 | 2 | 3 | 1 | yes |
1
2
3
| 11 | | appearance |
<String> = "title" | "subtitle" | "normal" | "normal" | yes |
title
subtitle
normal
| 12 | 13 | ``` 14 | 15 | @@include(../../core/dom/dom_p.md) -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/confirm/confirm.md: -------------------------------------------------------------------------------- 1 | # Confirm 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | ConfirmationDialog 8 | ConfirmationChoice 9 | Confirm 10 | 11 | *** 12 | 13 | 14 | 15 | @@include(confirm_p.md) -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/toaster/toaster.md: -------------------------------------------------------------------------------- 1 | # Toaster 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | ConfirmationDialog 8 | ConfirmationChoice 9 | Toaster 10 | 11 | *** 12 | 13 | 14 | 15 | 16 | @@include(toaster_p.md) -------------------------------------------------------------------------------- /src/elements/Input/ByteSizeInput.coffee: -------------------------------------------------------------------------------- 1 | class CUI.ByteSizeInput extends CUI.Input 2 | 3 | render: -> 4 | super() 5 | 6 | selectData = {} 7 | select = new CUI.Select 8 | data: selectData 9 | onDataChanged: -> 10 | console.log(selectData) 11 | options: [ 12 | text: "Bytes" 13 | value: "bytes" 14 | , 15 | text: "MB" 16 | value: "mb" 17 | , 18 | text: "GB" 19 | value: "gb" 20 | ] 21 | select.start() 22 | 23 | parent = @__input.parentElement 24 | horizontalLayout = new CUI.HorizontalLayout 25 | center: 26 | content: [@__input, select] 27 | CUI.dom.replace(parent, horizontalLayout) 28 | return @ 29 | 30 | storeValue: (value) -> 31 | console.log(value) 32 | super(value, flags) 33 | @ 34 | -------------------------------------------------------------------------------- /src/scss/icons/rows.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | rows 6 | Created with Sketch. 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/icon/App.coffee: -------------------------------------------------------------------------------- 1 | class App 2 | constructor: -> 3 | 4 | body = new CUI.HorizontalLayout 5 | left: 6 | content: new CUI.Label 7 | centered: true 8 | text: "Left !!" 9 | center: 10 | content: new CUI.VerticalList 11 | content: [ 12 | new CUI.Icon 13 | icon: "fa-building" 14 | fixed_width: true 15 | , 16 | new CUI.Icon 17 | icon: CUI.Icon.icon_map.camera 18 | , 19 | new CUI.Icon 20 | icon: "fa-times" 21 | tooltip: text: "Hello, I'm a tooltip" 22 | ] 23 | right: 24 | content: new CUI.Label 25 | centered: true 26 | text: "Right" 27 | 28 | CUI.dom.append(document.body, body) 29 | 30 | CUI.ready -> 31 | new App() -------------------------------------------------------------------------------- /demo/src/demos/ObjectDumper/ObjectDumperDemo.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2017 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class Demo.ObjectDumperDemo extends Demo 9 | getGroup: -> 10 | "Extra" 11 | 12 | display: -> 13 | div = CUI.dom.div("cui-object-dumper-demo") 14 | 15 | data = require('./example2.json'); 16 | 17 | console.debug CUI.util.dump(data) 18 | od = new CUI.ObjectDumper 19 | header_left: new CUI.Label(text: 'example2.json') 20 | do_open: true 21 | object: data 22 | CUI.dom.append(div, od) 23 | 24 | div 25 | 26 | 27 | Demo.register(new Demo.ObjectDumperDemo()) 28 | -------------------------------------------------------------------------------- /demo/src/demos/ObjectDumper/example2.json: -------------------------------------------------------------------------------- 1 | { 2 | "medien_ab": { 3 | "text1": "Titel1", 4 | "schlagwoerter": [ 5 | null, 6 | null, 7 | null, 8 | null, 9 | null, 10 | { 11 | "lk_schlagwort_id": "haselnuss" 12 | } 13 | ], 14 | "personen": [ 15 | null, 16 | null, 17 | null, 18 | { 19 | "person": "Sebastian" 20 | } 21 | ], 22 | "fotograf": "Maxima, Charlotte", 23 | "zusatzliche_titel": [ 24 | null, 25 | null, 26 | null, 27 | null, 28 | null, 29 | null, 30 | null, 31 | { 32 | "zusatz_titel": "Titel8" 33 | } 34 | ], 35 | "_pool": { 36 | "pool": { 37 | "_id": 2 38 | } 39 | }, 40 | "_id_parent": null, 41 | "_version": 1 42 | }, 43 | "_mask": "medien_ab__all_fields" 44 | } -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/_text-truncate.scss: -------------------------------------------------------------------------------- 1 | // Text truncate 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-truncate() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | 10 | @mixin revert-text-truncate() { 11 | overflow: initial; 12 | text-overflow: initial; 13 | white-space: initial; 14 | } 15 | 16 | // deprecated, use text-truncate instead 17 | @mixin ellipsis() { 18 | @include text-truncate(); 19 | } 20 | 21 | @mixin line-clamp($lines: 2) { 22 | @supports (-webkit-line-clamp: 1) { 23 | white-space: normal; 24 | display: -webkit-box; 25 | -webkit-box-orient: vertical; 26 | -webkit-line-clamp: $lines; 27 | overflow: hidden; 28 | overflow-wrap: break-word; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tutorial/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cui-tutorial", 3 | "version": "1.0.0", 4 | "description": "Tutorial for Coffeescript User Interface System", 5 | "scripts": { 6 | "build": "webpack --progress", 7 | "build:watch": "webpack --watch --progress" 8 | }, 9 | "keywords": [ 10 | "coffeescript", 11 | "ui", 12 | "tutorial" 13 | ], 14 | "author": "Programmfabrik GmbH", 15 | "license": "MIT", 16 | "devDependencies": { 17 | "coffee-loader": "^1.0.0", 18 | "coffee-script": "^1.12.7", 19 | "coffeescript-ui": "v1.7.1", 20 | "sass-loader": "^10.0.0", 21 | "css-loader": "^5.0.0", 22 | "html-loader": "^1.0.0", 23 | "style-loader": "^2.0.0", 24 | "webpack": "^4.41.5", 25 | "webpack-cli": "^4.5.0" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/elements/Options/Options.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | -------------------------------------------------------------------------------- /src/scss/icons/popup.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | popup 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/scss/icons/reset.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | reset 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/scss/icons/info-circle-ng.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | info-circle-ng 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /docs/elements/modal/modal_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Modal 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | cancel |
<Boolean> | - | no |
true
false
| 7 | | cancel_action |
<String> =
"destroy" | "hide" | "destroy" | no | Lorem | 8 | | fill_screen_buttons |
<Boolean> | - | no | Show a fill screen button
true
false
| 9 | 10 | 11 | ## Callbacks Modal 12 | 13 | | Callback | Format | Default | Mandatory | Description | 14 | | --- | --- | :---: | :---: | --- | 15 | | onCancel |
function() | - | no | Lorem | 16 | | onToggleFillScreen |
function() | - | no |   | 17 | ``` 18 | 19 | @@include(../layerpane/layerpane_p.md) -------------------------------------------------------------------------------- /src/base/DataField/DataFieldInput.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.DataFieldInput extends CUI.DataField 9 | constructor: (opts) -> 10 | super(opts) 11 | CUI.dom.setAttributeMap(@DOM, @_attr) 12 | @addClass("cui-data-field-input") 13 | 14 | initOpts: -> 15 | super() 16 | @addOpts 17 | #group can be used for buttonbars to specify a group css style 18 | group: 19 | check: String 20 | # attributes for the @DOM element 21 | attr: 22 | default: {} 23 | check: "PlainObject" 24 | 25 | getGroup: -> 26 | @_group 27 | 28 | isResizable: -> 29 | true 30 | 31 | -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/confirmationchoice/confirmationchoice_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ConfirmationChoice 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | choices |
<Array> | [] | yes | Lorem | 7 | | buttons | | | | | 8 | | header_right | | | | | 9 | | cancel_action | | | |   | 10 | 11 | 12 | ## Callbacks ConfirmationChoice 13 | 14 | | Parameter | Format | Default | Mandatory | Description | 15 | | --- | --- | :---: | :---: | --- | 16 | | onChoice |
function() | - | no | Lorem | 17 | ``` 18 | 19 | @@include(../../confirmationdialog/confirmationdialog_p.md) 20 | -------------------------------------------------------------------------------- /docs/elements/output/output/output_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Output 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | placeholder |
<String> | *empty String* | no | Lorem | 7 | | text |
<String> | - | no | Lorem | 8 | | markdown |
<Boolean> | false | yes | Set to true for placeholder and text.
true
false
| 9 | | multiline |
<Boolean> | - | no |
true
false
| 10 | 11 | 12 | ## Callbacks Output 13 | 14 | | Callback | Format | Default | Mandatory | Description | 15 | | --- | --- | :---: | :---: | --- | 16 | | getValue |
function() | - | no | Lorem | 17 | ``` 18 | 19 | @@include(../../datafieldinput/datafieldinput_p.md) 20 | -------------------------------------------------------------------------------- /docs/elements/waitblock/waitblock_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter WaitBlock 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | inactive |
<Boolean> | - | no | Inactive is used to block content from being accessed.
true
false
| 7 | | element |
isElement(v) or isElement(v.DOM) | - | no | Lorem | 8 | | fullscreen |
<Boolean> | - | no | Use to put this wait block fullscreen.
true
false
| 9 | | header | | | | | 10 | | content | | | | | 11 | | icon |
<String>
<Instance of Object> = Icon | | |   | 12 | 13 | ``` 14 | 15 | @@include(../block/block_p.md) -------------------------------------------------------------------------------- /tutorial/src/App.coffee: -------------------------------------------------------------------------------- 1 | #CUI = require("coffeescript-ui/public/cui.js") 2 | require('coffeescript-ui/public/cui.css') 3 | require('./scss/base.scss') 4 | 5 | Weather = require('./modules/weather/Weather.coffee') 6 | 7 | class App 8 | constructor: -> 9 | body = new CUI.VerticalLayout 10 | class: "tutorial-main-layout" 11 | top: 12 | class: "tutorial-main-layout-top" 13 | content: new CUI.Label 14 | text: "Welcome to Coffeescript UI Tutorial" 15 | icon: "fa-star" 16 | center: 17 | content: new Weather(city: "Berlin").render() 18 | bottom: 19 | class: "tutorial-main-layout-bottom" 20 | content: new CUI.Label 21 | text: "This is the bottom" 22 | 23 | CUI.dom.append(document.body, body) 24 | 25 | CUI.ready -> 26 | new App() -------------------------------------------------------------------------------- /src/scss/themes/fylr/mixins/_toolbar.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | @mixin toolbar-gap() { 4 | --toolbar-gap: #{$spacer-sm}; 5 | 6 | // add gap between toolbar layout columns (left, center, right) 7 | gap: var(--toolbar-gap); 8 | 9 | // reset gap if a layout is empty 10 | > .cui-horizontal-layout-left:empty { 11 | margin-right: calc(-1 * var(--toolbar-gap)); 12 | } 13 | 14 | > .cui-horizontal-layout-center:empty { 15 | margin: 0 calc(-0.5 * var(--toolbar-gap)); 16 | } 17 | 18 | > .cui-horizontal-layout-right:empty { 19 | margin-left: calc(-1 * var(--toolbar-gap)); 20 | } 21 | 22 | // spacing of the content within the layout columns (content can be buttons, labels, data-input, buttonbar, buttonbar-group etc.) 23 | > [class*='cui-horizontal-layout'] { 24 | gap: var(--toolbar-gap); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /docs/elements/datetime/datetime_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter DateTime 3 | 4 | | Parameter | DateTimeat | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | locale | Array of type *DateTime* | locale | yes | Lorem | 7 | | input_types | Array |
[date_time] | no | Lorem | 8 | | display_type |
long
short | long | no | Lorem | 9 | | min_year |
Integer | 0 | yes | Lorem | 10 | | max_year |
Integer | 2499 | yes | Lorem | 11 | | getValueForDisplay | | | | | 12 | | getValueForInput | | | | | 13 | | checkInput | | | | | 14 | | getInputBlocks | | | |   | 15 | 16 | ``` 17 | 18 | @@include(../input/input/input_p.md) 19 | -------------------------------------------------------------------------------- /src/elements/Toolbar/Toolbar.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | #Organizes/Layouts tools ({Button}s or other Elements) in a horizontal Toolbar 9 | class CUI.Toolbar extends CUI.HorizontalLayout 10 | init: -> 11 | super() 12 | @addClass("cui-toolbar") 13 | 14 | initOpts: -> 15 | super() 16 | 17 | @removeOpt("maximize") 18 | @removeOpt("maximize_horizontal") 19 | @removeOpt("maximize_vertical") 20 | @addOpts 21 | maximize_horizontal: 22 | default: true 23 | mandatory: true 24 | check: Boolean 25 | 26 | hasFlexHandles: -> 27 | false 28 | 29 | getPanes: -> 30 | ["left", "right"] 31 | -------------------------------------------------------------------------------- /docs/elements/pane/simplepane/simplepane_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter SimplePane 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | title | {} | - | no | CUI-Element | 6 | | header_right | {} | - | no | CUI-Element | 7 | | header_center | {} | - | no | CUI-Element | 8 | | header_left | {} | - | no | CUI-Element | 9 | | footer_left | {} | - | no | CUI-Element 10 | | footer_right | {} | - | no | CUI-Element | 11 | | content | {} | - | no | CUI-Element | 12 | | top | | | | | 13 | | bottom | | | | | 14 | | center | | | | | 15 | | padding | | normal | |   | 16 | ``` 17 | 18 | @@include(../pane/pane_p.md) 19 | -------------------------------------------------------------------------------- /tutorial/simple-examples/index.coffee: -------------------------------------------------------------------------------- 1 | CUI.ready => 2 | examples = ["vertical-layout", "horizontal-layout", "border-layout", "vertical-horizontal-list", 3 | "layout-complete", "form", "button", "pane", "icon", "modal", "custom-element", "element-props"] 4 | exampleLinks = examples.map((example) => 5 | new CUI.ButtonHref 6 | href: "examples/#{example}/index.html" 7 | appearance: "link" 8 | text: example 9 | ) 10 | 11 | exampleLinks.push(new CUI.ButtonHref 12 | href: "https://programmfabrik.github.io/coffeescript-ui-demo/public/index.html" 13 | appearance: "link" 14 | text: "Demo" 15 | ) 16 | 17 | body = new CUI.VerticalLayout 18 | center: 19 | content: new CUI.Pane 20 | auto_buttonbar: false 21 | padded: true 22 | center: 23 | content: exampleLinks 24 | 25 | CUI.dom.append(document.body, body) -------------------------------------------------------------------------------- /docs/elements/confirmationchoice/prompt/prompt.md: -------------------------------------------------------------------------------- 1 | # Prompt 2 | 3 | DOM 4 | Layer 5 | Layerpane 6 | Modal 7 | ConfirmationDialog 8 | ConfirmationChoice 9 | Confirm 10 | Prompt 11 | 12 | *** 13 | 14 | 15 | 16 | @@include(prompt_p.md) -------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_buttonbar.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | @use '../mixins/buttonbar' as *; 3 | 4 | .cui-buttonbar { 5 | display: flex; 6 | align-items: center; 7 | 8 | @include buttonbar-horizontal(); // default stack horizontally 9 | } 10 | 11 | 12 | // * Buttonbar Group 13 | // all buttons within a buttonbar-group are visually and functionally a unit, like radio buttons, there always have a border by default, see buttonbar mixins 14 | // e.g. options, radio buttons 15 | 16 | .cui-buttonbar-group { 17 | display: flex; 18 | 19 | .cui-disabled { 20 | opacity: 1; 21 | 22 | .cui-button-visual > * { 23 | opacity: $disabled-opacity; 24 | } 25 | } 26 | } 27 | 28 | // * Buttonbar Group with input field, used for navigation 29 | .cui-buttonbar-group-navi { 30 | @include buttonbar-group-navigation(); 31 | } 32 | 33 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_data-table.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | @use '../mixins/list-view' as *; 3 | 4 | // Data Table 5 | .cui-data-table { 6 | flex-shrink: 1; 7 | display: inline-block; 8 | 9 | &.cui-maximize-horizontal { 10 | display: block; 11 | } 12 | 13 | &.cui-maximize-vertical { 14 | display: flex; 15 | flex: 1; 16 | } 17 | 18 | &.cui-maximize { 19 | flex-basis: 0; // IE 11 correct scrollbar in list-view 20 | } 21 | 22 | > .cui-vertical-layout-center { 23 | flex-shrink: 1; 24 | } 25 | 26 | input, 27 | textarea { 28 | min-width: 0; 29 | } 30 | 31 | .cui-list-view { 32 | --list-view-border-width: 1px; 33 | 34 | @include list-view-hide-double-bottom-border(); 35 | 36 | > .cui-vertical-layout-bottom > .cui-pane-footer { 37 | padding: $toolbar-padding !important; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /docs/elements/listview/listviewcolumn/listviewcolumn_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ListViewColumn 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | class |
<String> | *empty String* | no | Lorem | 7 | | attrs |
<PlainObject> | null | no | Lorem | 8 | | text |
<String> | - | no | Lorem | 9 | | colspan |
<Integer> | - | no |
1
2
...
n
| 10 | | element |
isContent
<String> | - | n | Lorem | 11 | 12 | 13 | ## Callbacks ListViewColumn 14 | 15 | | Callback | Format | Default | Mandatory | Description | 16 | | --- | --- | :---: | :---: | --- | 17 | | onSetElement |
function() | - | no |   | 18 | ``` 19 | 20 | @@include(../../../core/element/element_p.md) -------------------------------------------------------------------------------- /src/scss/icons/grid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | grid 6 | Created with Sketch. 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/elements/form/form/form.md: -------------------------------------------------------------------------------- 1 | # Form 2 | 3 | DOM 4 | Datafield 5 | Form 6 | 7 | *** 8 | 9 | ## Description 10 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 11 | 12 | ## Creating a Form 13 | 14 | ##### instructions 15 | 16 | To build a new Form you simply create a new object of the type *Form*. As input parameters 17 | 18 | ``` 19 | myForm = new Form(); 20 | ``` 21 | 22 | 23 | @@include(form_p.md) -------------------------------------------------------------------------------- /src/elements/Button/Button.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/vertical-horizontal-list/App.coffee: -------------------------------------------------------------------------------- 1 | class App 2 | 3 | bodyHorizontalList = new CUI.HorizontalList 4 | content: [ 5 | new CUI.Label 6 | centered: true 7 | text: "Label #1" 8 | , 9 | new CUI.Label 10 | centered: true 11 | text: "Label #2" 12 | , 13 | new CUI.Label 14 | centered: true 15 | text: "Label #3" 16 | ] 17 | 18 | bodyVerticalList = new CUI.VerticalList 19 | content: [ 20 | new CUI.Label 21 | centered: true 22 | text: "Label #1" 23 | , 24 | new CUI.Label 25 | centered: true 26 | text: "Label #2" 27 | , 28 | new CUI.Label 29 | centered: true 30 | text: "Label #3" 31 | ] 32 | 33 | CUI.dom.append(document.body, bodyHorizontalList) 34 | CUI.dom.append(document.body, bodyVerticalList) 35 | 36 | CUI.ready -> 37 | new App() -------------------------------------------------------------------------------- /src/base/Events/TouchEvent.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.TouchEvent extends CUI.MouseEvent 9 | initOpts: -> 10 | super() 11 | @addOpts 12 | button: 13 | check: (v) -> 14 | v >= 0 15 | pageX: 16 | check: (v) -> 17 | v > 0 18 | pageY: 19 | check: (v) -> 20 | v > 0 21 | clientX: 22 | check: (v) -> 23 | v > 0 24 | clientY: 25 | check: (v) -> 26 | v > 0 27 | 28 | setNativeEvent: (ev) -> 29 | for k in [ 30 | "button" 31 | "pageX" 32 | "pageY" 33 | "clientX" 34 | "clientY" 35 | ] 36 | prop = "_"+k 37 | if @hasOwnProperty(prop) 38 | ev[k] = @[prop] 39 | 40 | super(ev) -------------------------------------------------------------------------------- /docs/elements/documentbrowser/documentbrowser/documentbrowser_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter DocumentBrowser 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | marked_opts |
<Object> = PlainObject
*Must not contain "image" or "link" as key.* | {} | true | Lorem | 6 | | url | (v) -> !!CUI.parseLocation(v) ?? | - | no | Lorem | 7 | 8 | 9 | ## Callbacks DocumentBrowser 10 | | Parameter | Format | Default | Mandatory | Description | 11 | | gotoLocation |
function() | (nodePath, search, nodeIdx) => @loadLocation(nodePath, search, nodeIdx) | no | Lorem | 12 | | getMarkdown |
function() | (v) -> v | no | Lorem | 13 | | renderHref |
function() | default: (href, nodePath) => href | no | Lorem | 14 | ``` 15 | 16 | @@include(../../../core/element/element_p.md) -------------------------------------------------------------------------------- /docs/elements/form/formbutton/formbutton_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter FormButton 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | icon |
Instance of <Object> = Icon
<String> | - | no | Lorem | 6 | | appearance |
<String> =
"auto" | "link" | "flat" | "normal" | "important" | "auto" | yes | Describes the button's visual appearance.
`auto`
The button is automatically formatted.
`link`
Standard button without border and a underlined text.
`flat`
Button has no border and inherits its background color from its parent div.
`normal`
Standard button with border and its own background color.
`important`
emphasized button to show the user that the button is important. | 7 | ``` 8 | 9 | @@include(../../checkbox/checkbox_p.md) -------------------------------------------------------------------------------- /src/elements/FormButton/FormButton.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.FormButton extends CUI.Checkbox 9 | 10 | constructor: (opts) -> 11 | super(opts) 12 | 13 | getButtonOpts: -> 14 | opts = icon: @_icon 15 | for k in ["appearance"] 16 | opts[k] = @["_"+k] 17 | opts 18 | 19 | render: -> 20 | super() 21 | @__checkbox.addClass("cui-button-button") 22 | return 23 | 24 | getCheckboxClass: -> 25 | "cui-button-form-button" 26 | 27 | initOpts: -> 28 | super() 29 | @addOpts 30 | icon: 31 | check: (v) -> 32 | v instanceof CUI.Icon or CUI.util.isString(v) 33 | appearance: 34 | check: ["link","flat","normal","important"] 35 | -------------------------------------------------------------------------------- /src/scss/icons/asset-failed.svg: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/elements/examples/examples.md: -------------------------------------------------------------------------------- 1 | ```coffeescript 2 | ``` 3 | 4 | Note that this is a nesting of many different CUI-elements and data structures. For more information regarding their constructions and parameters, please see the corresponding documentation articles. 5 | 6 | The list below shows the nested elements and their relations to each other (in relation to the example in this step): 7 | 8 | Header:
9 | Menu
10 | ItemList
11 | Button
12 | ButtonHref
13 | Label
-------------------------------------------------------------------------------- /docs/elements/fileupload/fileuploadfile/fileuploadfile_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter FileUploadFile 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | file |
Instance of <Object> = File | - | yes | Lorem | 6 | | fileUpload |
<Object> = FileUpload | - | yes | Lorem | 7 | | batch |
<Integer> >= 0 | - | no | Lorem | 8 | 9 | 10 | ## Callbacks FileUploadFile 11 | | Parameter | Format | Default | Mandatory | Description | 12 | | --- | --- | :---: | :---: | --- | 13 | | onRemove |
function() | - | no | Lorem | 14 | | onDequeue |
function() | - | no | Lorem | 15 | | onBeforeDone |
function() | - | no | Callback which can be used to let the file reject or resolve. | 16 | ``` 17 | 18 | @@include(../../../core/element/element_p.md) -------------------------------------------------------------------------------- /src/elements/Console/Console.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Console extends CUI.DOMElement 9 | constructor: (opts) -> 10 | super(opts) 11 | @__console = CUI.dom.element("DIV", class: "cui-console") 12 | @registerDOMElement(@__console) 13 | 14 | initOpts: -> 15 | super() 16 | @addOpts 17 | markdown: 18 | mandatory: true 19 | default: true 20 | check: Boolean 21 | 22 | clear: -> 23 | @__console.innerHTML = "" 24 | 25 | log: (txt, markdown = @_markdown) -> 26 | lbl = new CUI.defaults.class.Label(text: txt, multiline: true, markdown: markdown) 27 | @__console.appendChild(lbl.DOM) 28 | @__console.scrollTop = @__console.scrollHeight 29 | -------------------------------------------------------------------------------- /doc/extra_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Coffeescript-UI Documentation 6 | 7 | 8 | 9 | 10 | 11 |
12 |

File List

13 | 24 | 28 | 30 | 31 |
32 | 33 | -------------------------------------------------------------------------------- /doc/mixin_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Coffeescript-UI Documentation 6 | 7 | 8 | 9 | 10 | 11 |
12 |

Mixin List

13 | 24 | 28 | 30 | 31 |
32 | 33 | -------------------------------------------------------------------------------- /src/elements/Popover/Popover.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Popover extends CUI.Modal 9 | 10 | initOpts: -> 11 | super() 12 | @mergeOpt "placement", 13 | default: null 14 | 15 | @mergeOpt "pointer", 16 | default: "arrow" 17 | 18 | readOpts: -> 19 | 20 | super() 21 | 22 | if not @opts.backdrop?.policy 23 | @_backdrop.policy = "click-thru" 24 | 25 | knownPlacements: ["s", "e", "w", "ws", "wn", "n", "se", "ne", "es", "en", "nw", "sw"] 26 | 27 | forceFocusOnShow: -> 28 | false 29 | 30 | # disableAllButtons: -> 31 | # super() 32 | # @disableBackdropClick() 33 | 34 | # enableAllButtons: -> 35 | # super() 36 | # @enableBackdropClick() 37 | -------------------------------------------------------------------------------- /src/scss/icons/table.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | table 6 | Created with Sketch. 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/elements/ConfirmationChoice/Spinner.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Spinner extends CUI.Toaster 9 | initOpts: -> 10 | super() 11 | @mergeOpt "text_icon", 12 | default: "spinner" 13 | @mergeOpt "show_ms", 14 | default: 0 15 | @mergeOpt "backdrop", 16 | default: 17 | policy: "modal" 18 | 19 | open: -> 20 | # super sets a deferred 21 | super() 22 | if @_show_ms > 0 23 | CUI.setTimeout 24 | ms: @_show_ms 25 | call: => 26 | @hide() 27 | @__deferred.resolve() 28 | return @__deferred.promise() 29 | 30 | CUI.spinner = (opts=text: "CUI.spinner") -> 31 | spinner = new CUI.Spinner(opts) 32 | spinner.open() 33 | spinner 34 | 35 | -------------------------------------------------------------------------------- /docs/elements/form/form/form_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Form 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | fields |
Function
Array | - | yes | Lorem | 6 | | class_table | String | - | no | Lorem | 7 | | header | Array | - | no | Lorem | 8 | | horizontal |
true
All fields are horizontal
false
Not all fields are horizontal
int
Nuber of horizontal fields | false | no | Lorem | 9 | | appearance |
normal
separators | normal | yes | Lorem | 10 | | maximize |
true
false
| - | no | Lorem | 11 | | maximize_horizontal |
true
false
| - | no | Lorem | 12 | | maximize_vertical |
true
false
| - | no | Lorem | 13 | | top | | | no | Lorem | 14 | | bottom | | | no | Lorem | 15 | 16 | ``` 17 | 18 | @@include(../../datafield/datafield_p.md) 19 | -------------------------------------------------------------------------------- /src/scss/icons/multiple.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | multiple 6 | Created with Sketch. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /docs/elements/datafield/datafield.md: -------------------------------------------------------------------------------- 1 | # DataField 2 | 3 | DOM 4 | Datafield 5 | 6 | *** 7 | 8 | ## Description 9 | Lorem Ipsum 10 | 11 | ## Creating a DataField 12 | 13 | ##### instructions 14 | 15 | 1. 16 | To build a new button you simply create a new object of the type *Button*. 17 | ```coffeescript 18 | myDatafield = new DataField 19 | 20 | ``` 21 | 2. 22 | In order to put data as an array into a -element you would take this structure: 23 | ```coffeescript 24 | myDataField = new DataField 25 | data: 26 | myData: [] 27 | ``` 28 | Take into account that the data-parameter's value requires an object with at least one key which stores an array as its value. 29 | 30 | 31 | 32 | @@include(datafield_p.md) 33 | -------------------------------------------------------------------------------- /docs/elements/listview/listviewrow/listviewrow.md: -------------------------------------------------------------------------------- 1 | # ListviewRow 2 | 3 | CUI-Element 4 | ListviewRow 5 | 6 | *** 7 | 8 | ## Description 9 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est dolor sit amet. 10 | 11 | ## Creating a ListviewRow 12 | 13 | ##### instructions 14 | 15 | 1. To build a new ListviewRow you simply create a new object of the type *ListviewRow*. 16 | ```coffeescript 17 | myListviewRow = new ListviewRow 18 | 19 | ``` 20 | 2. 21 | a 22 | 23 | 24 | 25 | @@include(listviewrow_p.md) -------------------------------------------------------------------------------- /src/scss/themes/fylr/components/_digi-display.scss: -------------------------------------------------------------------------------- 1 | @use '../variables' as *; 2 | 3 | // * DigiDisplay 4 | 5 | /* 6 |
7 |
8 |
0
9 | ... 10 |
11 | : 12 |
13 |
14 |
15 | */ 16 | 17 | .cui-digi-display { 18 | align-self: flex-start; 19 | display: flex; 20 | 21 | > div { 22 | vertical-align: bottom; 23 | height: 20px; 24 | text-align: center; 25 | overflow: hidden; 26 | padding: 1px; 27 | font-family: $digi-display-font-family; 28 | font-size: $digi-display-font-size; 29 | line-height: $digi-display-line-height; 30 | } 31 | 32 | .cui-digi-display-digit { 33 | transition: margin-top 0.3s ease; 34 | height: 18px; 35 | } 36 | 37 | .cui-digi-display-static { 38 | height: 20px; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /docs/elements/tabs/tab/tab_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Tab 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | name |
<String> | - | no | Lorem | 7 | | text |
<String> | - | yes | Lorem | 8 | | content |
<String>
inContent | check: (v) -> | yes | Lorem | 9 | | content_placeholder |
isContent | - | no | Lorem | 10 | | load_on_show |
<Boolean> | - | no |
true
false
| 11 | 12 | 13 | ## Callbacks Tab 14 | 15 | | Callback | Format | Default | Mandatory | Description | 16 | | --- | --- | :---: | :---: | --- | 17 | | onFirstActivate |
function() | - | no | Lorem | 18 | | onActivate |
function() | - | no | Lorem | 19 | | onDeactivate |
function() | - | no | Lorem | 20 | ``` 21 | 22 | @@include(../../../core/dom/dom_p.md) 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /src/scss/themes/fylr/resets/_reset.scss: -------------------------------------------------------------------------------- 1 | // Project specific resets 2 | 3 | *, 4 | *::before, 5 | *::after { 6 | box-sizing: border-box; 7 | margin: 0; 8 | padding: 0; 9 | } 10 | 11 | a { 12 | text-decoration: none; 13 | color: inherit; 14 | cursor: pointer; 15 | } 16 | 17 | button { 18 | background-color: transparent; 19 | color: inherit; 20 | border-width: 0; 21 | cursor: pointer; 22 | } 23 | 24 | input::-moz-focus-inner { 25 | border: 0; 26 | } 27 | 28 | ul, ol, dd { 29 | list-style: none; 30 | } 31 | 32 | h1, h2, h3, h4, h5, h6 { 33 | font-size: inherit; 34 | font-weight: inherit; 35 | } 36 | 37 | cite { 38 | font-style: normal; 39 | } 40 | 41 | fieldset { 42 | border-width: 0; 43 | } 44 | 45 | table { 46 | border-collapse: collapse; 47 | } 48 | 49 | td { 50 | vertical-align: top; 51 | } 52 | 53 | img { 54 | max-width: 100%; 55 | height: auto; 56 | } 57 | 58 | ::-ms-clear { 59 | display: none; 60 | } 61 | -------------------------------------------------------------------------------- /demo/src/demos/DataTableDemo.coffee: -------------------------------------------------------------------------------- 1 | class Demo.DataTableDemo extends Demo 2 | display: -> 3 | data = 4 | rowsH: [{}] 5 | 6 | fieldsH = [ 7 | type: CUI.Input 8 | name: "input" 9 | , 10 | type: CUI.Checkbox 11 | name: "boolean" 12 | , 13 | type: CUI.DateTime 14 | name: "datetime" 15 | , 16 | type: CUI.DataTable 17 | name: "datatable" 18 | rowMove: true 19 | form: 20 | label: "inner data" 21 | fields: [ 22 | type: CUI.Input 23 | name: "input" 24 | , 25 | type: CUI.Checkbox 26 | name: "boolean" 27 | , 28 | type: CUI.DateTime 29 | name: "datetime" 30 | ] 31 | ] 32 | 33 | dtH = new CUI.DataTable 34 | fields: fieldsH 35 | name: "rowsH" 36 | data: data 37 | new_rows: "append" 38 | onDataChanged: (data) => 39 | ; # @log(CUI.util.dump(data.rowsH)) 40 | 41 | [ 42 | dtH.start() 43 | ] 44 | 45 | 46 | Demo.register(new Demo.DataTableDemo()) -------------------------------------------------------------------------------- /src/scss/icons/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | folder 6 | Created with Sketch. 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /docs/elements/listview/listviewtree/listviewtree_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ListViewTree 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | rowMoveWithinNodesOnly |
<Boolean> | - | no |
true
false
| 7 | | children |
<Array> | - | no | Lorem | 8 | | selectable |
<Boolean> | - | no |
true
false
| 9 | | no_hierarchy |
<Boolean> | false | no |
true
dont display a tree hierarchy
| 10 | | root |
instanceof ListViewRow | - | no | Lorem | 11 | 12 | 13 | ## Callbacks ListViewTree 14 | 15 | | Callback | Format | Default | Mandatory | Description | 16 | | --- | --- | :---: | :---: | --- | 17 | | onOpen |
function() | - | no | Lorem | 18 | | onClose |
function() | - | no | Lorem | 19 | ``` 20 | 21 | @@include(../listview/listview_p.md) -------------------------------------------------------------------------------- /docs/elements/listview/listviewcolumn/listviewcolumn.md: -------------------------------------------------------------------------------- 1 | # ListviewColumn 2 | 3 | CUI-Element 4 | ListViewColumn 5 | 6 | *** 7 | 8 | ## Description 9 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est dolor sit amet. 10 | 11 | ## Creating a ListviewColumn 12 | 13 | ##### instructions 14 | 15 | 1. To build a new ListviewColumn you simply create a new object of the type *ListviewColumn*. 16 | ```coffeescript 17 | myListviewColumn = new ListviewColumn 18 | 19 | ``` 20 | 2. 21 | a 22 | 23 | 24 | 25 | 26 | @@include(listviewcolumn_p.md) -------------------------------------------------------------------------------- /src/scss/icons/fullscreen-expand.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scss/icons/fullscreen-compress.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/scss/icons/inherit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 11 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/base/Deferred/Promise.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | 9 | class CUI.Promise 10 | constructor: (@__deferred) -> 11 | CUI.util.assert(@__deferred instanceof CUI.Deferred,"new Promise","parameter needs to be instanceof CUI.Deferred", parameter: @__deferred) 12 | 13 | done: -> 14 | @__deferred.done.apply(@__deferred, arguments) 15 | @ 16 | 17 | fail: -> 18 | @__deferred.fail.apply(@__deferred, arguments) 19 | @ 20 | 21 | always: -> 22 | @__deferred.always.apply(@__deferred, arguments) 23 | @ 24 | 25 | progress: -> 26 | @__deferred.progress.apply(@__deferred, arguments) 27 | @ 28 | 29 | state: -> 30 | @__deferred.state.apply(@__deferred, arguments) 31 | 32 | getUniqueId: -> 33 | @__deferred.getUniqueId() 34 | 35 | -------------------------------------------------------------------------------- /demo/src/icons/inherit.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 10 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tutorial/src/modules/weather/Weather.coffee: -------------------------------------------------------------------------------- 1 | #CUI = require("coffeescript-ui/public/cui.js") 2 | WeatherService = require('./WeatherService.coffee') 3 | htmlTemplate = require('./weather.html') 4 | CUI.Template.loadTemplateText(htmlTemplate) 5 | 6 | 7 | class Weather extends CUI.Element 8 | 9 | initOpts: -> 10 | super() 11 | @addOpts 12 | city: 13 | mandatory: true 14 | check: String 15 | 16 | render: -> 17 | template = new CUI.Template 18 | name: "weather" 19 | map: 20 | temperature: true 21 | skytext: true 22 | humidity: true 23 | 24 | waitBlock = new CUI.WaitBlock(element: template) 25 | waitBlock.show() 26 | 27 | WeatherService.getWeather(@_city) 28 | .always => 29 | waitBlock.destroy() 30 | .done((data) => 31 | for key of template.map 32 | template.append(data[key], key) 33 | ) 34 | 35 | template 36 | 37 | module.exports = Weather -------------------------------------------------------------------------------- /docs/elements/menu.cms: -------------------------------------------------------------------------------- 1 | block=Block 2 | borderlayout=BorderLayout 3 | button=Button 4 | buttonhref=ButtonHref 5 | checkbox=Checkbox 6 | confirmationchoice=ConfirmationChoice 7 | confirmationdialog=ConfirmationDialog 8 | console=Console 9 | datafield=DataField 10 | datafieldinput=DataFieldInput 11 | datatable=DataTable 12 | datetime=DateTime 13 | digidisplay=DigiDisplay 14 | documentbrowser=DocumentBrowser 15 | form=Form 16 | horizontallist=HorizontalList 17 | icon=Icon 18 | input=Input 19 | label=Label 20 | layer=Layer 21 | layerpane=LayerPane 22 | layout=Layout 23 | listview=ListView 24 | menu=Menu 25 | modal=Modal 26 | multiinput=MultiInput 27 | multioutput=MultiOutput 28 | objectdumper=ObjectDumper 29 | output=Output 30 | pane=Pane 31 | password=Password 32 | popover=Popover 33 | progressmeter=ProgressMeter 34 | select=Select 35 | stickyheader=StickyHeader 36 | tabs=Tabs 37 | toolbar=Toolbar 38 | tooltip=Tooltip 39 | verticallist=VerticalList 40 | waitblock=WaitBlock 41 | examples=Examples 42 | -------------------------------------------------------------------------------- /docs/elements/confirmationdialog/confirmationdialog_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ConfirmationDialog 3 | | Parameter | Format | Default | Mandatory | Description | 4 | | --- | --- | :---: | :---: | --- | 5 | | title |
<String> | - | no | Defines the ConfirmationDialog's title | 6 | | text |
<String> | - | no | Defines the ConfirmationDialog's text | 7 | | markdown |
<Boolean> | false | no |
true
false
| 8 | | html |
<String> | - | no | Lorem | 9 | | content |
isContent
<DOM> | - | no | Lorem | 10 | | icon |
<Object> = Icon
<String> | - | no |
Icon-Element
Name of Icon as String
| 11 | | buttons |
<Array> = lenght > 0
function() | - | no | Lorem | 12 | | footer_left | {} | - | no | Lorem | 13 | | footer_right | {} | - | no | Lorem | 14 | | pane | | | |   | 15 | ``` 16 | 17 | @@include(../modal/modal_p.md) 18 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/horizontal-layout/App.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.10.0 2 | (function() { 3 | var App; 4 | 5 | App = (function() { 6 | function App() { 7 | var body; 8 | body = new CUI.HorizontalLayout({ 9 | left: { 10 | content: new CUI.Label({ 11 | centered: true, 12 | text: "Left !!" 13 | }) 14 | }, 15 | center: { 16 | content: new CUI.Label({ 17 | centered: true, 18 | size: "big", 19 | text: "Hello world!", 20 | icon: "fa-building" 21 | }) 22 | }, 23 | right: { 24 | content: new CUI.Label({ 25 | centered: true, 26 | text: "Right" 27 | }) 28 | } 29 | }); 30 | CUI.dom.append(document.body, body); 31 | } 32 | 33 | return App; 34 | 35 | })(); 36 | 37 | CUI.ready(function() { 38 | return new App(); 39 | }); 40 | 41 | }).call(this); 42 | -------------------------------------------------------------------------------- /docs/elements/layout/verticallayout/verticallayout.md: -------------------------------------------------------------------------------- 1 | # VerticalLayout 2 | 3 | DOM 4 | Layout 5 | VerticalLayout 6 | 7 | *** 8 | 9 | ## Description 10 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est dolor sit amet. 11 | 12 | ## Creating a VerticalLayout 13 | 14 | ##### instructions 15 | 16 | 1. To build a new VerticalLayout you simply create a new object of the type *VerticalLayout*. 17 | ```coffeescript 18 | myVerticalLayout = new VerticalLayout 19 | 20 | ``` 21 | 2. 22 | a 23 | 24 | 25 | 26 | 27 | 28 | @@include(verticallayout_p.md) -------------------------------------------------------------------------------- /src/elements/BorderLayout/BorderLayout.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | CUI.Template.loadTemplateText(require('./BorderLayout.html')); 8 | 9 | class CUI.BorderLayout extends CUI.Layout 10 | 11 | getName: -> 12 | "border-layout" 13 | 14 | getPanes: -> 15 | ["north", "west", "east", "south"] 16 | 17 | getSupportedPanes: -> 18 | @getPanes() 19 | 20 | getTemplateMap: -> 21 | map = super() 22 | map.row = true 23 | map 24 | 25 | __init: -> 26 | super() 27 | 28 | if @_absolute 29 | CUI.dom.addClass(@getLayout().map.row, "cui-absolute") 30 | # we need listen to viewport resize 31 | CUI.Events.listen 32 | type: "viewport-resize" 33 | node: @getLayout().map.row 34 | call: (ev) => 35 | ev.stopPropagation() 36 | CUI.Layout.setAbsolute(@getLayout().map.row) 37 | 38 | @ -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/vertical-layout/App.js: -------------------------------------------------------------------------------- 1 | // Generated by CoffeeScript 1.10.0 2 | (function() { 3 | var App; 4 | 5 | App = (function() { 6 | function App() { 7 | var body; 8 | body = new CUI.VerticalLayout({ 9 | top: { 10 | content: new CUI.Label({ 11 | centered: true, 12 | text: "I'm a header" 13 | }) 14 | }, 15 | center: { 16 | content: new CUI.Label({ 17 | centered: true, 18 | size: "big", 19 | text: "Hello world!", 20 | icon: "fa-building" 21 | }) 22 | }, 23 | bottom: { 24 | content: new CUI.Label({ 25 | centered: true, 26 | text: "This is the bottom" 27 | }) 28 | } 29 | }); 30 | CUI.dom.append(document.body, body); 31 | } 32 | 33 | return App; 34 | 35 | })(); 36 | 37 | CUI.ready(function() { 38 | return new App(); 39 | }); 40 | 41 | }).call(this); 42 | -------------------------------------------------------------------------------- /demo/src/demos/ScrollIntoViewDemo/ScrollIntoViewDemo.html: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 |
12 |
A
13 |
14 |
B
15 |
C
16 |
17 |
18 |
D
19 |
20 |
E
21 |
22 |
F
23 |
24 | 25 |
Hidden
26 |
27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /src/elements/Password/Password.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Password extends CUI.Input 9 | 10 | initOpts: -> 11 | super() 12 | @addOpts 13 | toggleButton: 14 | default: false 15 | check: Boolean 16 | 17 | readOpts: -> 18 | super() 19 | if @_toggleButton 20 | @_controlElement = new CUI.Button 21 | icon: "fa-eye" 22 | onClick: (ev, btn) => 23 | if CUI.dom.getAttribute(@__input, "type") == "password" 24 | btn.setIcon("fa-eye-slash") 25 | @showPassword() 26 | else 27 | btn.setIcon("fa-eye") 28 | @hidePassword() 29 | 30 | __createElement: -> 31 | super("password") 32 | 33 | showPassword: -> 34 | CUI.dom.setAttribute(@__input, "type", "text") 35 | 36 | hidePassword: -> 37 | CUI.dom.setAttribute(@__input, "type", "password") 38 | -------------------------------------------------------------------------------- /demo/src/demos/DigiDisplayDemo.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | moment = require('moment') 9 | 10 | class Demo.DigiDisplayDemo extends Demo 11 | getGroup: -> 12 | "Extra" 13 | 14 | display: -> 15 | dd = new CUI.DigiDisplay 16 | digits: [ 17 | mask: "[0-9]" 18 | , 19 | mask: "[0-9]" 20 | , 21 | static: ":" 22 | , 23 | mask: "[0-9]" 24 | , 25 | mask: "[0-9]" 26 | , 27 | static: ":" 28 | , 29 | mask: "[0-9]" 30 | , 31 | mask: "[0-9]" 32 | ] 33 | 34 | @__digiInterval = CUI.setInterval -> 35 | dd.display(moment().format("HH:mm:ss")) 36 | , 37 | 1000 38 | 39 | [ 40 | Demo.dividerLabel("digi time") 41 | , 42 | dd 43 | ] 44 | 45 | undisplay: -> 46 | CUI.clearInterval(@__digiInterval) 47 | 48 | Demo.register(new Demo.DigiDisplayDemo()) -------------------------------------------------------------------------------- /docs/elements/layout/horizontallayout/horizontallayout.md: -------------------------------------------------------------------------------- 1 | # HorizontalLayout 2 | 3 | DOM 4 | Layout 5 | HorizontalLayout 6 | 7 | *** 8 | 9 | ## Description 10 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est dolor sit amet. 11 | 12 | ## Creating a HorizontalLayout 13 | 14 | ##### instructions 15 | 16 | 1. To build a new HorizontalLayout you simply create a new object of the type *HorizontalLayout*. 17 | ```coffeescript 18 | myHorizontalLayout = new HorizontalLayout 19 | 20 | ``` 21 | 2. 22 | a 23 | 24 | 25 | 26 | 27 | @@include(horizontallayout_p.md) -------------------------------------------------------------------------------- /src/scss/icons/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /docs/elements/label/label/label_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter Label 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | text |
String
Integer | - | no | Lorem | 7 | | content |
Content
?
String | - | no | Lorem | 8 | | icon |
Icon
Instance of Icon
String | - | no | Lorem | 9 | | size |
auto
mini
normal
big
bigger | auto | yes | Lorem | 10 | | markdown |
true
Text is markdown
false
Text ist not markdown | false | yes | Lorem | 11 | | appearance |
auto
normal
important
title | auto | yes | Lorem | 12 | | tooltip |
PlainObject | - | no | Lorem | 13 | | rotate_90 |
true
false
| false | no | Lorem | 14 | | centered |
true
false
| false | no | Lorem | 15 | | multiline |
true
false
| false | no | Lorem | 16 | | manage_overflow |
true
false
PlainObject | - | no |   | 17 | ``` 18 | 19 | @@include(../../../core/dom/dom_p.md) -------------------------------------------------------------------------------- /src/elements/FileUpload/FileReader.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.FileReader extends CUI.FileUpload 9 | initOpts: -> 10 | super() 11 | @removeOpt("url") 12 | 13 | readOpts: -> 14 | CUI.Element::readOpts.call(@) 15 | 16 | getUploadFileClass: -> 17 | CUI.FileReaderFile 18 | 19 | uploadFile: (file) -> 20 | file.upload(file) 21 | 22 | @save: (filename, data, type = "text/csv") -> 23 | blob = new Blob([data], type: type) 24 | if (window.navigator.msSaveOrOpenBlob) 25 | window.navigator.msSaveBlob(blob, filename) 26 | else 27 | elem = window.document.createElement('a') 28 | elem.href = window.URL.createObjectURL(blob) 29 | elem.download = filename 30 | document.body.appendChild(elem); 31 | elem.click(); 32 | document.body.removeChild(elem); 33 | window.URL.revokeObjectURL(blob) 34 | -------------------------------------------------------------------------------- /src/tests/Test.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Test 9 | constructor: -> 10 | 11 | run: -> 12 | @idx = 0 13 | 14 | eq: (a, b) -> 15 | if JSON.stringify(a) == JSON.stringify(b) 16 | console.info("Test passed: eq: ", a, b) 17 | return true 18 | console.error("Test failed: eq: ", a, b, @test_func.toString()) 19 | 20 | test: (@test_func) -> 21 | # console.info CUI.util.getObjectClass(@)+"##{@idx}", f.toString() 22 | @test_func() 23 | @idx++ 24 | 25 | @tests: [] 26 | 27 | @register: (test) -> 28 | CUI.util.assert(test instanceof Test, "Test.register", "Test needs to be instance of Test", test: test) 29 | test.idx = @tests.length 30 | @tests.push(test) 31 | 32 | @run: -> 33 | for test in @tests 34 | console.info("Running Test", CUI.util.getObjectClass(test)) 35 | test.run() 36 | return 37 | -------------------------------------------------------------------------------- /docs/elements/listview/listviewtreenode/listviewtreenode.md: -------------------------------------------------------------------------------- 1 | # ListviewTreeNode 2 | 3 | CUI-Element 4 | ListViewRow 5 | ListviewTreeNode 6 | 7 | *** 8 | 9 | ## Description 10 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est dolor sit amet. 11 | 12 | ## Creating a ListviewTreeNode 13 | 14 | ##### instructions 15 | 16 | 1. To build a new ListviewTreeNode you simply create a new object of the type *ListviewTreeNode*. 17 | ```coffeescript 18 | myListviewTreeNode = new ListviewTreeNode 19 | 20 | ``` 21 | 2. 22 | a 23 | 24 | 25 | 26 | @@include(listviewtreenode_p.md) -------------------------------------------------------------------------------- /docs/elements/progressmeter/progressmeter_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter ProgressMeter 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | states |
<Array> | - | no | Lorem | 7 | | state |
(v) => @__checkState(v) | - | no | Lorem | 8 | | css_property_percent |
<String> | "width" | no | CSS-property to set to the current percent fill, filler will be hidden, if percent is null. | 9 | | size |
<String> =
"auto" | "mini" | "normal" | "big" | "auto" | yes | Lorem | 10 | | appearance |
<String> =
"auto" | "normal" | "important" | "auto" | yes | Lorem | 11 | 12 | 13 | ## Callbacks ProgressMeter 14 | 15 | | Callback | Format | Default | Mandatory | Description | 16 | | --- | --- | :---: | :---: | --- | 17 | | onUpdate |
function() | - | no | Lorem | 18 | ``` 19 | 20 | @@include(../../core/dom/dom_p.md) 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/pane/App.coffee: -------------------------------------------------------------------------------- 1 | class App 2 | constructor: -> 3 | 4 | pane = new CUI.SimplePane 5 | padded: true 6 | content: new CUI.Label 7 | text: "Content" 8 | header_left: new CUI.Label 9 | text: "Header left" 10 | header_right: CUI.Pane.getToggleFillScreenButton() 11 | header_center: new CUI.Label 12 | text: "Header center" 13 | footer_left: new CUI.Label 14 | text: "Footer left" 15 | footer_right: new CUI.Label 16 | text: "Footer right" 17 | force_header: true 18 | 19 | body = new CUI.BorderLayout 20 | west: 21 | content: new CUI.Label 22 | centered: true 23 | text: "West" 24 | east: 25 | content: new CUI.Label 26 | centered: true 27 | text: "East" 28 | center: 29 | content: pane 30 | north: 31 | content: new CUI.Label 32 | centered: true 33 | text: "North" 34 | south: 35 | content: new CUI.Label 36 | centered: true 37 | text: "South" 38 | 39 | CUI.dom.append(document.body, body) 40 | 41 | CUI.ready -> 42 | new App() -------------------------------------------------------------------------------- /demo/src/icons/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/scss/icons/remove-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /demo/src/icons/remove-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 9 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/elements/datetime/datetime.md: -------------------------------------------------------------------------------- 1 | # DateTime 2 | 3 | DOM 4 | DataField 5 | DataFieldInput 6 | Input 7 | DateTime 8 | 9 | *** 10 | 11 | 12 | ## Description 13 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 14 | 15 | ## Creating a DateTime 16 | 17 | ##### instructions 18 | 19 | To build a new DateTime you simply create a new object of the type *DateTime*. As input parameters 20 | 21 | ``` 22 | myDateTime = new DateTime(); 23 | ``` 24 | 25 | 26 | @@include(datetime_p.md) 27 | -------------------------------------------------------------------------------- /docs/elements/multiinput/multiinput/multiinput_p.md: -------------------------------------------------------------------------------- 1 | ```div-parameter 2 | ## Parameter MultiInput 3 | 4 | | Parameter | Format | Default | Mandatory | Description | 5 | | --- | --- | :---: | :---: | --- | 6 | | textarea |
<Boolean> | false | no |
true
false
| 7 | | spellcheck |
<Boolean> | false | no |
true
false
| 8 | | placeholder |
<Object> = PlainObject | - | no | Lorem | 9 | | control |
Instance of <Object> = MultiInputControl | - | yes | Lorem | 10 | | content_size |
<Boolean> | default: false | no |
true
false
| 11 | 12 | 13 | ## Callbacks MultiInput 14 | 15 | | Callback | Format | Default | Mandatory | Description | 16 | | --- | --- | :---: | :---: | --- | 17 | | onFocus |
function() | - | no | Lorem | 18 | | onClick |
function() | - | no | Lorem | 19 | | onKeyup |
function() | - | no | Lorem | 20 | | onBlur |
function() | - | no | Lorem | 21 | ``` 22 | 23 | @@include(../../datafieldinput/datafieldinput_p.md) 24 | -------------------------------------------------------------------------------- /src/elements/ListView/tools/ListViewColumnRowMoveHandle.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.ListViewColumnRowMoveHandle extends CUI.ListViewColumn 9 | 10 | setElement: (cell) -> 11 | super(cell) 12 | 13 | row = @getRow() 14 | 15 | if not row.isMovable() 16 | return 17 | 18 | moveTool = row.getListView().getRowMoveTool 19 | row: row 20 | element: cell 21 | 22 | if moveTool 23 | drag_handle = CUI.dom.children(moveTool.element)?[0] 24 | 25 | if CUI.ListView.defaults.row_move_handle_tooltip and drag_handle 26 | new CUI.Tooltip 27 | text: CUI.ListView.defaults.row_move_handle_tooltip 28 | element: drag_handle 29 | 30 | return 31 | 32 | render: -> 33 | ui = @getRow()?.getListView()?._ui 34 | return CUI.dom.element("DIV", 35 | class: "cui-drag-handle-row" 36 | ui: if ui then "#{ui}.drag.handle" 37 | ) 38 | 39 | -------------------------------------------------------------------------------- /src/scss/icons/easydb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | easydb 6 | Created with Sketch. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/custom-element/App.coffee: -------------------------------------------------------------------------------- 1 | # All classes are created in the same file to give it read simplicity, but it shouldn't be like this in a real application. 2 | 3 | class HelloWorld extends CUI.DOMElement 4 | constructor: (opts) -> 5 | super(opts) 6 | 7 | label = new CUI.Label(text: "Hello World!", centered: true) 8 | @registerDOMElement(label.DOM) 9 | 10 | class HelloWorldTemplate extends CUI.DOMElement 11 | 12 | constructor: (opts) -> 13 | super(opts) 14 | 15 | template = new CUI.Template 16 | name: "hello-world" 17 | map: 18 | title: true 19 | 20 | template.append("Hello world", "title") 21 | 22 | @registerTemplate(template) 23 | 24 | # Main class 25 | class App 26 | constructor: -> 27 | 28 | body = new CUI.VerticalLayout 29 | top: 30 | content: new HelloWorldTemplate() 31 | center: 32 | content: new HelloWorld() 33 | 34 | CUI.dom.append(document.body, body) 35 | 36 | CUI.ready -> 37 | # We need to load the templates first. 38 | CUI.Template.loadTemplateFile("hello-world.html").done( => 39 | new App() 40 | ) -------------------------------------------------------------------------------- /tutorial/simple-examples/examples/modal/App.coffee: -------------------------------------------------------------------------------- 1 | class App 2 | constructor: -> 3 | 4 | modal = new CUI.Modal 5 | cancel: true 6 | fill_screen_button: true 7 | cancel_action: "hide" 8 | onToggleFillScreen: => 9 | CUI.alert(text: "Fillscreen!") 10 | onCancel: => 11 | CUI.alert(text: "Cancel!") 12 | pane: 13 | padded: true 14 | header_left: new CUI.Label 15 | text: "I'm the header" 16 | content: new CUI.Label 17 | icon: "fa-building" 18 | text: "Modal Content!" 19 | footer_right: [ 20 | text: "Destroy!" 21 | onClick: => 22 | modal.destroy() 23 | ] 24 | 25 | openModal = new CUI.Button 26 | text: "Open modal!" 27 | onClick: => 28 | modal.show() 29 | 30 | body = new CUI.HorizontalLayout 31 | left: 32 | content: new CUI.Label 33 | centered: true 34 | text: "Left" 35 | center: 36 | content: openModal 37 | right: 38 | content: new CUI.Label 39 | centered: true 40 | text: "Right" 41 | 42 | CUI.dom.append(document.body, body) 43 | 44 | CUI.ready -> 45 | new App() -------------------------------------------------------------------------------- /src/elements/ConfirmationChoice/Alert.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Alert extends CUI.ConfirmationChoice 9 | initOpts: -> 10 | super() 11 | # @removeOpt("choices") 12 | # @mergeOpt("text", mandatory: true) 13 | @mergeOpt("choices", mandatory: false, default: undefined) 14 | 15 | @addOpts 16 | button_text_ok: 17 | mandatory: true 18 | default: CUI.defaults.class.ConfirmationChoice.defaults.ok 19 | check: String 20 | 21 | isKeyboardCancellable: (ev) -> 22 | return @_allow_cancel 23 | 24 | readOpts: -> 25 | super() 26 | if not @_choices 27 | @_choices = [ 28 | text: @_button_text_ok 29 | primary: true 30 | ] 31 | 32 | CUI.alert = (opts=text: "CUI.alert") -> 33 | new CUI.Alert(opts).open() 34 | 35 | class CUI.AlertProblem extends CUI.Alert 36 | 37 | CUI.problem = (opts=text: "CUI.problem") -> 38 | new CUI.AlertProblem(opts).open() 39 | -------------------------------------------------------------------------------- /src/elements/Output/OutputContent.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.OutputContent extends CUI.DataFieldInput 9 | initOpts: -> 10 | super() 11 | @addOpts 12 | placeholder: 13 | default: "" 14 | check: String 15 | content: 16 | check: (v) -> 17 | CUI.util.isElement(v) or CUI.util.isElement(v.DOM) 18 | getValue: 19 | check: Function 20 | 21 | setContent: (content=null) -> 22 | if not content 23 | CUI.dom.addClass(@DOM, "cui-output-empty") 24 | @empty() 25 | else 26 | CUI.dom.removeClass(@DOM, "cui-output-empty") 27 | @replace(content) 28 | 29 | displayValue: -> 30 | super() 31 | if @getName() 32 | @setContent(@getValue()) 33 | @ 34 | 35 | getValue: -> 36 | value = super() 37 | if @_getValue 38 | @_getValue.call(@, value, @) 39 | else 40 | value 41 | 42 | render: -> 43 | super() 44 | @setContent(@_content) 45 | -------------------------------------------------------------------------------- /src/base/DragDropSelect/Dragscroll.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Dragscroll extends CUI.Draggable 9 | 10 | initOpts: -> 11 | super() 12 | @removeOpt("helper") 13 | @addOpts 14 | scroll_element: 15 | check: (v) -> 16 | CUI.util.isElement(v) 17 | 18 | readOpts: -> 19 | super() 20 | if @_scroll_element 21 | @__scroll_element = @_scroll_element 22 | else 23 | @__scroll_element = @_element 24 | 25 | supportTouch: -> 26 | if @_support_touch != undefined 27 | super() 28 | else 29 | true 30 | 31 | start_drag: -> 32 | @__scroll = 33 | top: @__scroll_element.scrollTop 34 | left: @__scroll_element.scrollLeft 35 | 36 | do_drag: (ev, $target, diff) -> 37 | scrollTop = @__scroll.top - diff.bare_y 38 | scrollLeft = @__scroll.left - diff.bare_x 39 | @__scroll_element.scrollTop = scrollTop 40 | @__scroll_element.scrollLeft = scrollLeft 41 | -------------------------------------------------------------------------------- /src/elements/ConfirmationChoice/Toaster.coffee: -------------------------------------------------------------------------------- 1 | ### 2 | * coffeescript-ui - Coffeescript User Interface System (CUI) 3 | * Copyright (c) 2013 - 2016 Programmfabrik GmbH 4 | * MIT Licence 5 | * https://github.com/programmfabrik/coffeescript-ui, http://www.coffeescript-ui.org 6 | ### 7 | 8 | class CUI.Toaster extends CUI.ConfirmationChoice 9 | initOpts: -> 10 | super() 11 | @removeOpt("choices") 12 | @mergeOpt "backdrop", 13 | default: false 14 | @mergeOpt "show_ms", 15 | check: (v) -> 16 | v >= 0 17 | 18 | readOpts: -> 19 | if @opts.show_ms == 0 and @opts.backdrop == undefined 20 | @opts.backdrop = policy: "modal" 21 | 22 | super() 23 | 24 | @_choices = [] 25 | 26 | open: -> 27 | if @__deferred 28 | return @__deferred.promise() 29 | 30 | # super sets a deferred 31 | super() 32 | 33 | if @_show_ms > 0 34 | CUI.setTimeout 35 | ms: @_show_ms 36 | call: => 37 | @hide() 38 | @__deferred.resolve() 39 | return @__deferred.promise() 40 | 41 | CUI.toaster = (opts = text: "CUI.toaster") -> 42 | toaster = new CUI.Toaster(opts) 43 | toaster.open() 44 | toaster 45 | --------------------------------------------------------------------------------