├── .github └── workflows │ └── publish-to-redaxo.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── assets └── css │ └── styles.css ├── boot.php ├── help.php ├── lang └── de_de.lang ├── package.yml ├── pages ├── index.php ├── info.changelog.php ├── info.info.php └── info.lizenz.php └── plugins ├── bootstrap-datetimepicker ├── LESS.md ├── SCSS.md ├── assets │ └── bootstrap-datetimepicker │ │ ├── LICENSE │ │ ├── README.md │ │ ├── css │ │ ├── bootstrap-datetimepicker-standalone.css │ │ ├── bootstrap-datetimepicker.css │ │ └── bootstrap-datetimepicker.min.css │ │ ├── js │ │ ├── bootstrap-datetimepicker.min.js │ │ └── moment-with-locales.js │ │ └── rex_bootstrap-datetimepicker.js ├── boot.php ├── help.php ├── lang │ └── de_de.lang ├── lib │ └── yform │ │ └── value │ │ └── datepicker.php ├── package.yml ├── pages │ ├── bootstrap-datetimepicker_less.php │ ├── bootstrap-datetimepicker_license.php │ ├── bootstrap-datetimepicker_readme.php │ ├── bootstrap-datetimepicker_scss.php │ └── index.php └── ytemplates │ └── bootstrap │ └── value.datepicker.tpl.php ├── jquery-minicolors ├── assets │ └── jquery-minicolors │ │ ├── .editorconfig │ │ ├── .eslintrc │ │ ├── .github │ │ └── FUNDING.yml │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── bower.json │ │ ├── component.json │ │ ├── composer.json │ │ ├── gulpfile.js │ │ ├── index.html │ │ ├── jquery-minicolors.js │ │ ├── jquery.minicolors.css │ │ ├── jquery.minicolors.js │ │ ├── jquery.minicolors.min.js │ │ ├── jquery.minicolors.png │ │ ├── package.json │ │ └── without-bootstrap.html ├── boot.php ├── help.php ├── install.php ├── lang │ └── de_de.lang ├── package.yml └── pages │ ├── index.php │ ├── jquery-minicolors_license.php │ └── jquery-minicolors_readme.php └── selectize ├── assets ├── rex_selectize.js └── selectize │ ├── .browserslistrc │ ├── .editorconfig │ ├── .github │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ ├── dependabot.yml │ └── workflows │ │ ├── UpdateContributors.yml │ │ ├── codeql-analysis.yml │ │ ├── node.js.yml │ │ └── stale.yml │ ├── .gitignore │ ├── CHANGELOG.md │ ├── CODE_OF_CONDUCT.md │ ├── CONTRIBUTING.md │ ├── CONTRIBUTORS.md │ ├── Gruntfile.js │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── SECURITY.md │ ├── dist │ ├── css │ │ ├── selectize.bootstrap2.css │ │ ├── selectize.bootstrap3.css │ │ ├── selectize.bootstrap4.css │ │ ├── selectize.bootstrap5.css │ │ ├── selectize.css │ │ ├── selectize.default.css │ │ └── selectize.legacy.css │ ├── js │ │ ├── selectize.js │ │ ├── selectize.min.js │ │ └── standalone │ │ │ ├── selectize.js │ │ │ └── selectize.min.js │ ├── less │ │ ├── plugins │ │ │ ├── drag_drop.less │ │ │ ├── dropdown_header.less │ │ │ ├── optgroup_columns.less │ │ │ └── remove_button.less │ │ ├── selectize.bootstrap2.less │ │ ├── selectize.bootstrap3.less │ │ ├── selectize.default.less │ │ ├── selectize.legacy.less │ │ └── selectize.less │ └── scss │ │ ├── plugins │ │ ├── drag_drop.scss │ │ ├── dropdown_header.scss │ │ ├── optgroup_columns.scss │ │ └── remove_button.scss │ │ ├── selectize.bootstrap3.scss │ │ ├── selectize.bootstrap4.scss │ │ ├── selectize.bootstrap5.scss │ │ ├── selectize.default.scss │ │ └── selectize.scss │ ├── docs │ ├── api.md │ ├── events.md │ ├── plugins.md │ ├── selectize-logo.png │ ├── selectize-wordmark.png │ └── usage.md │ ├── examples │ ├── api.html │ ├── basic.html │ ├── cities.html │ ├── confirm.html │ ├── contacts.html │ ├── create-filter.html │ ├── css │ │ ├── normalize.css │ │ └── stylesheet.css │ ├── customization.html │ ├── dynamic.html │ ├── events.html │ ├── github.html │ ├── images │ │ ├── bg.png │ │ ├── check@2x.png │ │ ├── repo-forked.png │ │ ├── repo-source.png │ │ └── spinner.gif │ ├── js │ │ ├── es5.js │ │ ├── index.js │ │ ├── jquery.min.js │ │ └── jqueryui.js │ ├── lock.html │ ├── movies.html │ ├── optgroups.html │ ├── performance.html │ ├── plugins.html │ ├── required.html │ └── rtl.html │ ├── index.d.ts │ ├── karma.conf.js │ ├── selectize.jquery.json │ ├── src │ ├── .wrapper.js │ ├── constants.js │ ├── contrib │ │ ├── highlight.js │ │ └── microevent.js │ ├── defaults.js │ ├── less │ │ ├── .wrapper.css │ │ ├── selectize.bootstrap2.less │ │ ├── selectize.bootstrap3.less │ │ ├── selectize.default.less │ │ ├── selectize.legacy.less │ │ └── selectize.less │ ├── plugins │ │ ├── auto_position │ │ │ └── plugin.js │ │ ├── auto_select_on_type │ │ │ └── plugin.js │ │ ├── autofill_disable │ │ │ └── plugin.js │ │ ├── drag_drop │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── dropdown_header │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── optgroup_columns │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── remove_button │ │ │ ├── plugin.js │ │ │ ├── plugin.less │ │ │ └── plugin.scss │ │ ├── restore_on_backspace │ │ │ └── plugin.js │ │ ├── select_on_focus │ │ │ └── plugin.js │ │ └── tag_limit │ │ │ └── plugin.js │ ├── scss │ │ ├── selectize.bootstrap3.scss │ │ ├── selectize.bootstrap4.scss │ │ ├── selectize.bootstrap5.scss │ │ ├── selectize.default.scss │ │ └── selectize.scss │ ├── selectize.jquery.js │ ├── selectize.js │ └── utils.js │ └── test │ ├── api.js │ ├── events.js │ ├── events_dom.js │ ├── interaction.js │ ├── setup.js │ ├── support │ ├── base.js │ └── syn.js │ └── xss.js ├── boot.php ├── help.php ├── lang └── de_de.lang ├── package.yml └── pages ├── index.php ├── selectize_changelog.php ├── selectize_license.php └── selectize_readme.php /.github/workflows/publish-to-redaxo.yml: -------------------------------------------------------------------------------- 1 | name: Publish release 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | jobs: 9 | redaxo_publish: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - uses: FriendsOfREDAXO/installer-action@v1 14 | with: 15 | myredaxo-username: ${{ secrets.MYREDAXO_USERNAME }} 16 | myredaxo-api-key: ${{ secrets.MYREDAXO_API_KEY }} 17 | description: ${{ github.event.release.body }} 18 | 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | plugins/.DS_Store 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ### UI Tools 2 | 3 | #### 14.03.2019 - v1.0.0 4 | imglist entfernt, wird in mform fortgeführt 5 | 6 | #### 17.12.2018 - v0.4.1 7 | 8 | - minicolors for customizer fixed 9 | - img imgListWidget support for selectMediaListArray('selectedmedia[]') added 10 | - added imgListWidget helper class for rex_form element 11 | ``` 12 | $field = imglist::addImglistField($rex_form, 'media'); 13 | $field->setLabel('Image'); 14 | $field->setTooltip(true); 15 | ``` 16 | 17 | #### 17.12.2018 - v0.4.0 18 | 19 | - add imgListWidget 20 | 21 | #### 25.10.2018 - v0.3.0 22 | 23 | - scss compiling caused performance problems, so deleted @skerbis 24 | - includeCurrentPageSubPath @christophboecker 25 | 26 | #### 29.09.2017 - v0.2.5 Add help files 27 | 28 | - add general, datetimepicker, minicolors, selectize help files 29 | 30 | #### 28.09.2017 - v0.2.4 Add jquery-minicolors support for System Customizer Color Field 31 | 32 | - standard is on, set to color format `hex` for backwards compatibility - fixes #2 33 | 34 | #### 27.08.2017 - v0.2.3 Make Plugin jquery-minicolors functional 35 | 36 | - added classes .minicolors for direct usage in modules 37 | 38 | #### 27.08.2017 - v0.2.2 Make Plugin selectize functional 39 | 40 | - added classes .selectize for direct usage in modules 41 | 42 | #### 26.08.2017 - v0.2.1 Make Plugin bootstrap-datetimepicker functional 43 | 44 | - added classes .datetimepicker, .datepicker, .timepicker for direct usage in modules 45 | 46 | #### 25.08.2017 - v0.2.0 Plugin bootstrap-datetimepicker added 47 | 48 | - added vendor plugin bootstrap-datetimepicker 49 | 50 | #### 25.08.2017 - v0.1.5 Refactoring 51 | 52 | - refactored repository from be_utilities to ui_tools 53 | 54 | #### 22.08.2017 - v0.1.0 Initial commit 55 | 56 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Friends Of REDAXO 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## UI Tools für REDAXO 5 2 | 3 | Ziel des Addons ist es, einige Vendoren und nützliche Erweiterungen für REDAXO 5.x installieren zu können. Damit ist es sehr einfach möglich ein benötigtes Werkzeug für das Backend (und Frontend) zur Verfügung zu stellen. 4 | 5 | ## PlugIns für das Backend 6 | 7 | Diese PlugIns erweitern das Backend um nachfolgende Skripte 8 | 9 | - Minicolors 10 | - DateTimePicker 11 | - Selectize 12 | 13 | Die Verwendung in yForm ist über die **individuellen Attribute** möglich. 14 | Weitere Informationen finden sich in der Dokumentation des jeweiligen Plugin. 15 | 16 | z.B. Minicolors: `{"class":"minicolors"}` 17 | 18 | ___ 19 | * Changelog -> [CHANGELOG.md](CHANGELOG.md) 20 | * Lizenz -> [LICENSE.md](LICENSE.md) 21 | 22 | 23 | --- 24 | 25 | ### Autor 26 | 27 | **Friends Of REDAXO** 28 | 29 | * http://www.redaxo.org 30 | * https://github.com/FriendsOfREDAXO 31 | 32 | **Projekt-Lead** 33 | 34 | [Tim Filler](https://github.com/elricco) 35 | 36 | ___ 37 | ### Credits 38 | 39 | - [jQuery-minicolors](https://github.com/claviska/jquery-minicolors) 40 | - [selectize](https://github.com/selectize/selectize.js/) 41 | -------------------------------------------------------------------------------- /assets/css/styles.css: -------------------------------------------------------------------------------- 1 | #ui_tools{border:1px solid transparent} 2 | -------------------------------------------------------------------------------- /boot.php: -------------------------------------------------------------------------------- 1 | setProperty('author', 'Friends Of REDAXO'); 4 | 5 | if (rex::isBackend() && rex::getUser()) { 6 | rex_perm::register('ui_tools[]'); 7 | rex_view::addCssFile($this->getAssetsUrl('css/styles.css')); 8 | } 9 | 10 | -------------------------------------------------------------------------------- /help.php: -------------------------------------------------------------------------------- 1 | 12 |

UI Tools AddOn v0.3.0

13 | 14 | 15 |

16 | Dieses AddOn bindet dient als Container zur Einbindung verschiedener Vendoren.
17 | Momentan verfügbar: 18 |

23 | Issues bitte hier: https://github.com/FriendsOfREDAXO/ui_tools/issues 24 |

25 | 26 | -------------------------------------------------------------------------------- /lang/de_de.lang: -------------------------------------------------------------------------------- 1 | ui_tools_title = UI Tools 2 | ui_tools_general_dummy[] = Rechte für UI Tools-Addon 3 | 4 | ui_tools_changelog = Changelog 5 | ui_tools_license = Lizenz 6 | -------------------------------------------------------------------------------- /package.yml: -------------------------------------------------------------------------------- 1 | # Alle hier gesetzten Werte können über $addon->getProperty($key) abgefragt werden 2 | 3 | package: ui_tools 4 | version: '1.2.2' 5 | author: 'Friends Of REDAXO' 6 | supportpage: https://github.com/FriendsOfREDAXO/ui_tools/issues 7 | info: 'Idee und Realisierung der ersten Version: Tim Filler / timfiller.de' 8 | 9 | page: 10 | title: 'translate:title' 11 | perm: ui_tools[] 12 | icon: rex-icon fa-wrench 13 | pjax: false 14 | subpages: 15 | info: 16 | title: 'Info' 17 | itemclass: 'pull-right' 18 | subpages: 19 | info: { title: 'Info'} 20 | changelog: { title: 'translate:changelog'} 21 | lizenz: { title: 'translate:license'} 22 | 23 | requires: 24 | redaxo: '>=5.12.0' 25 | -------------------------------------------------------------------------------- /pages/index.php: -------------------------------------------------------------------------------- 1 | i18n('title')); // $this->i18n('title') ist eine Kurzform für rex_i18n::msg('dummy_title') 9 | 10 | // Die Subpages werden nicht mehr über den "subpage"-Parameter gesteuert, sondern mit über "page" (getrennt mit einem Slash, z. B. page=dummy/config) 11 | // Die einzelnen Teile des page-Pfades können mit der folgenden Funktion ausgelesen werden. 12 | $subpage = rex_be_controller::getCurrentPagePart(2); 13 | 14 | // Subpages können über diese Methode eingebunden werden. So ist sichergestellt, dass auch Subpages funktionieren, 15 | // die von anderen Addons/Plugins hinzugefügt wurden 16 | rex_be_controller::includeCurrentPageSubPath(); 17 | -------------------------------------------------------------------------------- /pages/info.changelog.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 7 | 8 | $fragment = new rex_fragment(); 9 | $fragment->setVar('title', 'Changelog'); 10 | $fragment->setVar('body', $content, false); 11 | echo $fragment->parse('core/page/section.php'); 12 | 13 | 14 | -------------------------------------------------------------------------------- /pages/info.info.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file); 6 | 7 | 8 | $fragment = new rex_fragment(); 9 | $fragment->setVar('title', 'Info'); 10 | $fragment->setVar('body', $content, false); 11 | echo $fragment->parse('core/page/section.php'); 12 | -------------------------------------------------------------------------------- /pages/info.lizenz.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 6 | 7 | $fragment = new rex_fragment(); 8 | $fragment->setVar('title', 'Lizenz'); 9 | $fragment->setVar('body', $content, false); 10 | echo $fragment->parse('core/page/section.php'); 11 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/assets/bootstrap-datetimepicker/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Jonathan Peterson (@Eonasdan) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/assets/bootstrap-datetimepicker/README.md: -------------------------------------------------------------------------------- 1 | # Bootstrap 3 Date/Time Picker v4.17.47 2 | 3 | We are in code freeze and this issue tracker is no longer actively monitored. I'll be closing PR that do not contribute emergency fixes and leaving some open as they are evaluated for migration into the new repo. I’ll be closing issues that do not meet minimum requirements or have been answered by the community. Issues that have been closed for longer than 30 days will be locked. 4 | 5 | ## [View the manual and demos](http://eonasdan.github.io/bootstrap-datetimepicker/) 6 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/assets/bootstrap-datetimepicker/css/bootstrap-datetimepicker-standalone.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Glyphicons Halflings'; 3 | src: url('../fonts/glyphicons-halflings-regular.eot'); 4 | src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); 5 | } 6 | 7 | .glyphicon { 8 | position: relative; 9 | top: 1px; 10 | display: inline-block; 11 | font-family: 'Glyphicons Halflings'; 12 | font-style: normal; 13 | font-weight: normal; 14 | line-height: 1; 15 | -webkit-font-smoothing: antialiased; 16 | -moz-osx-font-smoothing: grayscale; 17 | } 18 | 19 | .glyphicon-time:before { 20 | content: "\e023"; 21 | } 22 | 23 | .glyphicon-chevron-left:before { 24 | content: "\e079"; 25 | } 26 | 27 | .glyphicon-chevron-right:before { 28 | content: "\e080"; 29 | } 30 | 31 | .glyphicon-chevron-up:before { 32 | content: "\e113"; 33 | } 34 | 35 | .glyphicon-chevron-down:before { 36 | content: "\e114"; 37 | } 38 | 39 | .glyphicon-calendar:before { 40 | content: "\e109"; 41 | } 42 | 43 | .btn { 44 | display: inline-block; 45 | padding: 6px 12px; 46 | margin-bottom: 0; 47 | font-size: 14px; 48 | font-weight: normal; 49 | line-height: 1.42857143; 50 | text-align: center; 51 | white-space: nowrap; 52 | vertical-align: middle; 53 | -ms-touch-action: manipulation; 54 | touch-action: manipulation; 55 | cursor: pointer; 56 | -webkit-user-select: none; 57 | -moz-user-select: none; 58 | -ms-user-select: none; 59 | user-select: none; 60 | background-image: none; 61 | border: 1px solid transparent; 62 | border-radius: 4px; 63 | } 64 | 65 | .collapse { 66 | display: none; 67 | } 68 | 69 | .collapse.in { 70 | display: block; 71 | } 72 | 73 | .dropdown-menu { 74 | position: absolute; 75 | left: 0; 76 | z-index: 1000; 77 | display: none; 78 | float: left; 79 | min-width: 160px; 80 | padding: 5px 0; 81 | margin: 2px 0 0; 82 | font-size: 14px; 83 | text-align: left; 84 | list-style: none; 85 | background-color: #fff; 86 | -webkit-background-clip: padding-box; 87 | background-clip: padding-box; 88 | border: 1px solid #ccc; 89 | border: 1px solid rgba(0, 0, 0, .15); 90 | border-radius: 4px; 91 | -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); 92 | box-shadow: 0 6px 12px rgba(0, 0, 0, .175); 93 | } 94 | 95 | .list-unstyled { 96 | padding-left: 0; 97 | list-style: none; 98 | } 99 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/assets/bootstrap-datetimepicker/rex_bootstrap-datetimepicker.js: -------------------------------------------------------------------------------- 1 | $(document).on('rex:ready', function() { 2 | $('.datetimepicker').datetimepicker({ 3 | locale: 'de' 4 | }); 5 | $('.datepicker').datetimepicker({ 6 | locale: 'de', 7 | format: 'DD.MM.YYYY', 8 | extraFormats: ['YYYY-MM-DD'] 9 | }); 10 | $('.timepicker').datetimepicker({ 11 | locale: 'de', 12 | format: 'HH:mm' 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/boot.php: -------------------------------------------------------------------------------- 1 | getAssetsUrl('bootstrap-datetimepicker/css/bootstrap-datetimepicker.css')); 5 | rex_view::addJsFile($plugin->getAssetsUrl('bootstrap-datetimepicker/js/moment-with-locales.js')); 6 | rex_view::addJsFile($plugin->getAssetsUrl('bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js')); 7 | rex_view::addJsFile($plugin->getAssetsUrl('bootstrap-datetimepicker/rex_bootstrap-datetimepicker.js')); 8 | } 9 | 10 | if (rex_plugin::get('yform', 'manager')->isAvailable()) { 11 | rex_yform::addTemplatePath($plugin->getPath('ytemplates')); 12 | } -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/help.php: -------------------------------------------------------------------------------- 1 | 12 |

UI Tools Bootstrap Datetimepicker Plugin

13 | 14 |

15 | Dieses Plugin bindet den Bootstrap Datetimepicker (https://github.com/Eonasdan/bootstrap-datetimepicker) ein. 16 |

17 | 18 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/lang/de_de.lang: -------------------------------------------------------------------------------- 1 | bootstrap-datetimepicker_menu_entry = Date/Time Picker 2 | bootstrap-datetimepicker_info = Info 3 | bootstrap-datetimepicker_config_title = Einstellungen Bootstrap 3 Date/Time Picker 4 | bootstrap-datetimepicker_readme = Info 5 | bootstrap-datetimepicker_license = Lizenz 6 | bootstrap-datetimepicker_less = LESS 7 | bootstrap-datetimepicker_scss = SCSS 8 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/lib/yform/value/datepicker.php: -------------------------------------------------------------------------------- 1 | www.yakamara.de 8 | */ 9 | 10 | class rex_yform_value_datepicker extends rex_yform_value_abstract 11 | { 12 | public function enterObject() 13 | { 14 | $this->setValue((string) $this->getValue()); 15 | 16 | if ('' == $this->getValue() && !$this->params['send']) { 17 | $this->setValue($this->getElement('default')); 18 | } 19 | 20 | if ($this->needsOutput() && $this->isViewable()) { 21 | $templateParams = []; 22 | $templateParams['prepend'] = $this->getElement('prepend'); 23 | $templateParams['append'] = $this->getElement('append'); 24 | if (!$this->isEditable()) { 25 | $attributes = empty($this->getElement('attributes')) ? [] : json_decode($this->getElement('attributes'), true); 26 | $attributes['readonly'] = 'readonly'; 27 | $this->setElement('attributes', json_encode($attributes)); 28 | $this->params['form_output'][$this->getId()] = $this->parse(['value.text-view.tpl.php', 'value.view.tpl.php', 'value.text.tpl.php'], $templateParams); 29 | } else { 30 | $this->params['form_output'][$this->getId()] = $this->parse('value.text.tpl.php', $templateParams); 31 | } 32 | } 33 | 34 | $this->params['value_pool']['email'][$this->getName()] = $this->getValue(); 35 | 36 | if ($this->saveInDb()) { 37 | $this->params['value_pool']['sql'][$this->getName()] = $this->getValue(); 38 | } 39 | } 40 | 41 | public function getDescription(): string 42 | { 43 | return 'text|name|label|defaultwert|[no_db]|[attributes]|[notice]|[prepend]|[append]'; 44 | } 45 | 46 | public function getDefinitions(): array 47 | { 48 | return [ 49 | 'type' => 'value', 50 | 'name' => 'datepicker', 51 | 'values' => [ 52 | 'name' => ['type' => 'name', 'label' => rex_i18n::msg('yform_values_defaults_name')], 53 | 'label' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_label')], 54 | 'default' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_text_default')], 55 | 'current_date' => ['type' => 'boolean', 'label' => rex_i18n::msg('yform_values_date_current_date')], 56 | 'attributes' => ['type' => 'choice', 'label' => 'Class', 'choices' => ['{"class":"datepicker"}' => 'datepicker', '{"class":"datetimepicker"}' => 'datetimepicker' , '{"data-yform-tools-datetimepicker":"YYYY-MM-DD HH:ii"}' => 'data-yform-tools-datetimepicker', '{"data-yform-tools-datepicker":"YYYY-MM-DD"}' => 'data-yform-tools-datepicker' ], 'default' => 'select'], 57 | 'notice' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_notice')], 58 | // 'prepend' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_prepend')], 59 | // 'append' => ['type' => 'text', 'label' => rex_i18n::msg('yform_values_defaults_append')], // >> class="glyphicon glyphicon-calendar" ?? 60 | ], 61 | 'description' => rex_i18n::msg('yform_values_datepicker_description'), // 'Datepicker', // 62 | 'db_type' => ['varchar(191)'], 63 | 'famous' => true, 64 | 'hooks' => [ 65 | 'preDefault' => static function (rex_yform_manager_field $field) { 66 | return $field->getElement('default'); 67 | }, 68 | ], 69 | ]; 70 | } 71 | 72 | public static function getSearchField($params) 73 | { 74 | $params['searchForm']->setValueField('text', ['name' => $params['field']->getName(), 'label' => $params['field']->getLabel(), 'notice' => rex_i18n::msg('yform_search_defaults_wildcard_notice')]); 75 | } 76 | 77 | public static function getSearchFilter($params) 78 | { 79 | $value = trim($params['value']); 80 | /** @var rex_yform_manager_query $query */ 81 | $query = $params['query']; 82 | $field = $query->getTableAlias() . '.' . $params['field']->getName(); 83 | 84 | if ('(empty)' == $value) { 85 | return $query->whereNested(static function (rex_yform_manager_query $query) use ($field) { 86 | $query 87 | ->where($field, '') 88 | ->where($field, null) 89 | ; 90 | }, 'OR'); 91 | } 92 | if ('!(empty)' == $value) { 93 | return $query->whereNested(static function (rex_yform_manager_query $query) use ($field) { 94 | $query 95 | ->where($field, '', '<>') 96 | ->where($field, null, '<>') 97 | ; 98 | }, 'OR'); 99 | } 100 | 101 | $pos = strpos($value, '*'); 102 | if (false !== $pos) { 103 | $value = str_replace('%', '\%', $value); 104 | $value = str_replace('*', '%', $value); 105 | return $query->where($field, $value, 'LIKE'); 106 | } 107 | return $query->where($field, $value); 108 | } 109 | 110 | public static function getListValue($params) 111 | { 112 | $value = $params['subject']; 113 | $length = mb_strlen($value); 114 | $title = $value; 115 | if ($length > 40) { 116 | $value = mb_substr($value, 0, 20).' ... '.mb_substr($value, -20); 117 | } 118 | return ''.rex_escape($value).''; 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/package.yml: -------------------------------------------------------------------------------- 1 | package: ui_tools/bootstrap-datetimepicker 2 | version: '4.17.47' 3 | author: 'Friends Of REDAXO' 4 | supportpage: github.com/FriendsOfREDAXO 5 | 6 | page: 7 | title: 'translate:bootstrap-datetimepicker_menu_entry' 8 | perm: admin[] 9 | subpages: 10 | index: { title: 'translate:bootstrap-datetimepicker_config_title', perm: admin} 11 | bootstrap-datetimepicker_readme: { title: 'translate:bootstrap-datetimepicker_readme', perm: admin} 12 | bootstrap-datetimepicker_license: { title: 'translate:bootstrap-datetimepicker_license', perm: admin} 13 | bootstrap-datetimepicker_scss: { title: 'translate:bootstrap-datetimepicker_scss', perm: admin} 14 | bootstrap-datetimepicker_less: { title: 'translate:bootstrap-datetimepicker_less', perm: admin} 15 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_less.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 10 | 11 | $fragment = new rex_fragment(); 12 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_less')); 13 | $fragment->setVar('body', $content, false); 14 | echo $fragment->parse('core/page/section.php'); 15 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_license.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 10 | 11 | $fragment = new rex_fragment(); 12 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_license')); 13 | $fragment->setVar('body', $content, false); 14 | echo $fragment->parse('core/page/section.php'); -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_readme.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file); 8 | 9 | 10 | $fragment = new rex_fragment(); 11 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_readme')); 12 | $fragment->setVar('body', $content, false); 13 | echo $fragment->parse('core/page/section.php'); -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/bootstrap-datetimepicker_scss.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 10 | 11 | $fragment = new rex_fragment(); 12 | $fragment->setVar('title', rex_i18n::msg('bootstrap-datetimepicker_scss')); 13 | $fragment->setVar('body', $content, false); 14 | echo $fragment->parse('core/page/section.php'); 15 | -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/pages/index.php: -------------------------------------------------------------------------------- 1 |
7 |

8 | .datetimepicker auf einem Input fügt einen Date und Time Picker hinzu. 9 |

10 |

11 | .datepicker auf einem Input fügt einen Date Picker hinzu. 12 |

13 |

14 | .timepicker auf einem Input fügt einen Time Picker hinzu. 15 |

16 | '; 17 | 18 | $fragment = new rex_fragment(); 19 | $fragment->setVar('title', rex_i18n::rawMsg('bootstrap-datetimepicker_config_title'), false); 20 | $fragment->setVar('body', $body, false); 21 | $title = $fragment->parse('core/page/section.php'); 22 | 23 | echo $title; -------------------------------------------------------------------------------- /plugins/bootstrap-datetimepicker/ytemplates/bootstrap/value.datepicker.tpl.php: -------------------------------------------------------------------------------- 1 | getValue(); 12 | } 13 | 14 | $notice = []; 15 | if ('' != $this->getElement('notice')) { 16 | $notice[] = rex_i18n::translate($this->getElement('notice'), false); 17 | } 18 | if (isset($this->params['warning_messages'][$this->getId()]) && !$this->params['hide_field_warning_messages']) { 19 | $notice[] = '' . rex_i18n::translate($this->params['warning_messages'][$this->getId()]) . ''; // var_dump(); 20 | } 21 | if (count($notice) > 0) { 22 | $notice = '

' . implode('
', $notice) . '

'; 23 | } else { 24 | $notice = ''; 25 | } 26 | 27 | $class_group = []; 28 | $class_group['form-group'] = 'form-group'; 29 | if (!empty($this->getWarningClass())) { 30 | $class_group[$this->getWarningClass()] = $this->getWarningClass(); 31 | } 32 | 33 | $class_label[] = 'control-label'; 34 | 35 | $attributes = [ 36 | 'class' => 'form-control', 37 | 'name' => $this->getFieldName(), 38 | 'type' => $type, 39 | 'id' => $this->getFieldId(), 40 | 'value' => $value, 41 | ]; 42 | 43 | $attributes = $this->getAttributeElements($attributes, ['placeholder', 'autocomplete', 'pattern', 'required', 'disabled', 'readonly']); 44 | 45 | $input_group_start = ''; 46 | $input_group_end = ''; 47 | 48 | $prepend_view = ''; 49 | if (!empty($prepend)) { 50 | $prepend_view = ''.$prepend.''; 51 | $input_group_start = '
'; 52 | $input_group_end = '
'; 53 | } 54 | 55 | $append_view = ''; 56 | if (!empty($append)) { 57 | $append_view = ''.$append.''; 58 | $input_group_start = '
'; 59 | $input_group_end = '
'; 60 | } 61 | 62 | echo '
63 | 64 | ' . $input_group_start . $prepend_view . '' . $append_view . $input_group_end . $notice .' 65 |
'; 66 | 67 | ?> 68 | 69 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-console": ["off"], 4 | "indent": ["error", 2], 5 | "quotes": ["error", "single"], 6 | "linebreak-style": ["error", "unix"], 7 | "no-unused-vars": ["warn", { "vars": "all", "args": "after-used" }], 8 | "semi": ["error", "always"] 9 | }, 10 | "env": { 11 | "browser": true, 12 | "jquery": true 13 | }, 14 | "extends": "eslint:recommended", 15 | "globals": { 16 | "define": true, 17 | "module": true, 18 | "require": true 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [claviska] 2 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2017 A Beautiful Site, LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/README.md: -------------------------------------------------------------------------------- 1 | # jQuery MiniColors: A tiny color picker built on jQuery 2 | 3 | Developed by Cory LaViska for A Beautiful Site, LLC 4 | 5 | Licensed under the MIT license: http://opensource.org/licenses/MIT 6 | 7 | ## Install via NPM 8 | 9 | This is the official NPM version of MiniColors: 10 | 11 | ``` 12 | npm install --save @claviska/jquery-minicolors 13 | ``` 14 | 15 | **Note:** There is another version on NPM without the namespace that is out of date and not supported. I did not create it nor do I have control of it. Please use the official NPM version to ensure you have the latest updates. 16 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-minicolors", 3 | "version": "2.3.6", 4 | "homepage": "https://github.com/claviska/jquery-minicolors", 5 | "authors": ["Cory LaViska"], 6 | "description": "jQuery MiniColors Plugin", 7 | "main": ["./jquery.minicolors.js", "./jquery.minicolors.css"], 8 | "keywords": ["jquery", "colorpicker"], 9 | "license": "MIT", 10 | "ignore": ["**/.*", "node_modules", "bower_components", "test", "tests"] 11 | } 12 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-minicolors", 3 | "version": "2.3.6", 4 | "description": "jQuery MiniColors Plugin", 5 | "homepage": "", 6 | "main": ["./jquery.minicolors.js", "./jquery.minicolors.css"], 7 | "dependencies": { 8 | "jquery": ">= 1.7.x" 9 | }, 10 | "keywords": ["jquery", "colorpicker"], 11 | "author": { 12 | "name": "Cory LaViska", 13 | "web": "http://www.abeautifulsite.net/" 14 | }, 15 | "license": ["http://www.opensource.org/licenses/mit-license.php"] 16 | } 17 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "abeautifulsite/jquery-minicolors", 3 | "type": "component", 4 | "description": "jQuery MiniColors Plugin", 5 | "homepage": "http://www.abeautifulsite.net/", 6 | "license": "MIT", 7 | "extra": { 8 | "component": { 9 | "scripts": [ 10 | "jquery.minicolors.js" 11 | ], 12 | "files": [ 13 | "jquery.minicolors.js", 14 | "jquery.minicolors.min.js", 15 | "jquery.minicolors.css", 16 | "jquery.minicolors.png" 17 | ] 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/gulpfile.js: -------------------------------------------------------------------------------- 1 | /* eslint-env node, es6 */ 2 | 'use strict'; 3 | 4 | const gulp = require('gulp'); 5 | const del = require('del'); 6 | const rename = require('gulp-rename'); 7 | const uglify = require('gulp-uglify'); 8 | 9 | // Clean 10 | gulp.task('clean', gulp.series(() => { 11 | return del('jquery.minicolors.min.js'); 12 | })); 13 | 14 | // Minify 15 | gulp.task('minify', gulp.series('clean', () => { 16 | return gulp.src('jquery.minicolors.js') 17 | .pipe(uglify({ 18 | output: { 19 | comments: require('uglify-save-license') 20 | } 21 | })) 22 | .on('error', (err) => { 23 | console.error(err); 24 | this.emit('end'); 25 | }) 26 | .pipe(rename({ suffix: '.min' })) 27 | .pipe(gulp.dest(__dirname)); 28 | })); 29 | 30 | // Watch for changes 31 | gulp.task('watch', gulp.series(() => { 32 | gulp.watch('jquery.minicolors.js', ['minify']); 33 | })); 34 | 35 | // Default 36 | gulp.task('default', gulp.series('minify')); 37 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/jquery-minicolors.js: -------------------------------------------------------------------------------- 1 | $(document).on('rex:ready', function() { 2 | settings = { 3 | animationSpeed: 50, 4 | animationEasing: 'swing', 5 | change: null, 6 | changeDelay: 0, 7 | control: 'hue', 8 | defaultValue: '', 9 | format: 'rgb', 10 | hide: null, 11 | hideSpeed: 100, 12 | inline: false, 13 | keywords: '', 14 | letterCase: 'lowercase', 15 | opacity: true, 16 | position: 'bottom left', 17 | show: null, 18 | showSpeed: 100, 19 | theme: 'bootstrap', 20 | swatches: [] 21 | }; 22 | 23 | $('input.minicolors').minicolors(settings); 24 | }); 25 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/jquery.minicolors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/jquery-minicolors/assets/jquery-minicolors/jquery.minicolors.png -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@claviska/jquery-minicolors", 3 | "version": "2.3.6", 4 | "homepage": "https://github.com/claviska/jquery-minicolors", 5 | "author": "Cory LaViska", 6 | "description": "jQuery MiniColors Plugin", 7 | "main": "jquery.minicolors.js", 8 | "keywords": [ 9 | "jquery", 10 | "colorpicker" 11 | ], 12 | "license": "MIT", 13 | "peerDependencies": { 14 | "jquery": ">= 1.7.x" 15 | }, 16 | "devDependencies": { 17 | "del": "^5.1.0", 18 | "gulp": "^4.0.2", 19 | "gulp-rename": "^2.0.0", 20 | "gulp-uglify": "^3.0.2", 21 | "uglify-save-license": "^0.4.1" 22 | }, 23 | "repository": { 24 | "type": "git", 25 | "url": "https://github.com/claviska/jquery-minicolors.git" 26 | }, 27 | "bugs": { 28 | "url": "https://github.com/claviska/jquery-minicolors/issues" 29 | }, 30 | "scripts": { 31 | "build": "gulp", 32 | "watch": "gulp watch" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/boot.php: -------------------------------------------------------------------------------- 1 | getConfig(); 5 | 6 | rex_view::addCssFile($this->getAssetsUrl('jquery-minicolors/jquery.minicolors.css')); 7 | rex_view::addJsFile($this->getAssetsUrl('jquery-minicolors/jquery.minicolors.min.js')); 8 | rex_view::addJsFile($this->getAssetsUrl('jquery-minicolors/jquery-minicolors.js')); 9 | } 10 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/help.php: -------------------------------------------------------------------------------- 1 | 12 |

UI Tools jQuery minicolors Plugin

13 | 14 |

15 | Dieses Plugin bindet die jQuery minicolors (https://github.com/claviska/jquery-minicolors) ein. 16 |

17 | 18 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/install.php: -------------------------------------------------------------------------------- 1 | hasConfig()) { 4 | $this->setConfig('for-customizer', 1); 5 | } 6 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/lang/de_de.lang: -------------------------------------------------------------------------------- 1 | jquery-minicolors_menu_entry = jQuery minicolors 2 | jquery-minicolors_info = Info 3 | jquery-minicolors_config_title = Einstellungen 4 | jquery-minicolors_readme = Info 5 | jquery-minicolors_license = Lizenz 6 | jquery-minicolors_for-customizer_check = Für Customizer aktivieren? 7 | jquery-minicolors_for-customizer_info = Aktiviert den Colorpicker für das Customizer Farbfeld 8 | jquery-minicolors_update = Einstellungen aktualisieren 9 | jquery-minicolors_config_updated = Speichern erfolgreich! 10 | jquery-minicolors_config_updated_failed = Nicht gespeichert! 11 | jquery-minicolors_features = Funktionen 12 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/package.yml: -------------------------------------------------------------------------------- 1 | package: ui_tools/jquery-minicolors 2 | version: '2.4.0' 3 | author: 'Friends Of REDAXO' 4 | supportpage: github.com/FriendsOfREDAXO 5 | 6 | page: 7 | title: 'translate:jquery-minicolors_menu_entry' 8 | perm: admin[] 9 | subpages: 10 | index: { title: 'translate:jquery-minicolors_config_title', perm: admin} 11 | jquery-minicolors_readme: { title: 'translate:jquery-minicolors_readme', perm: admin} 12 | jquery-minicolors_license: { title: 'translate:jquery-minicolors_license', perm: admin} 13 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/pages/index.php: -------------------------------------------------------------------------------- 1 | setConfig($tempConfig)) { 29 | $success = rex_i18n::msg('jquery-minicolors_config_updated'); 30 | } else { 31 | $error[] = rex_i18n::msg('jquery-minicolors_config_update_failed'); 32 | } 33 | } 34 | 35 | // load config 36 | 37 | $config = rex_plugin::get('ui_tools', 'jquery-minicolors')->getConfig(); 38 | 39 | 40 | // messages 41 | 42 | if (!empty($error)) { 43 | echo rex_view::error(implode('
', $error)); 44 | } 45 | 46 | if ($info != '') { 47 | echo rex_view::info($info); 48 | } 49 | 50 | if ($success != '') { 51 | echo rex_view::success($success); 52 | } 53 | 54 | // output 55 | 56 | $content = ''; 57 | 58 | // form - Funktionen 59 | 60 | $content .= '
' . rex_i18n::msg('jquery-minicolors_features') . ''; 61 | 62 | $formElements = []; 63 | 64 | $n = []; 65 | $n['label'] = ''; 66 | $n['field'] = ''; 67 | $formElements[] = $n; 68 | 69 | 70 | $n = []; 71 | $n['label'] = ''; 72 | $n['field'] = '

' . rex_i18n::msg('jquery-minicolors_for-customizer_info') . '

'; 73 | $formElements[] = $n; 74 | 75 | $fragment = new rex_fragment(); 76 | $fragment->setVar('elements', $formElements, false); 77 | $content .= $fragment->parse('core/form/form.php'); 78 | 79 | $content .= '
'; 80 | 81 | // form - Button 82 | 83 | $formElements = []; 84 | 85 | $n = []; 86 | $n['field'] = ''; 87 | $formElements[] = $n; 88 | 89 | $fragment = new rex_fragment(); 90 | $fragment->setVar('flush', true); 91 | $fragment->setVar('elements', $formElements, false); 92 | $buttons = $fragment->parse('core/form/submit.php'); 93 | 94 | // section 95 | $fragment = new rex_fragment(); 96 | $fragment->setVar('class', 'edit', false); 97 | $fragment->setVar('title', rex_i18n::msg('jquery-minicolors_menu_entry'), false); 98 | $fragment->setVar('body', $content, false); 99 | $fragment->setVar('buttons', $buttons, false); 100 | $content = $fragment->parse('core/page/section.php'); 101 | 102 | echo ' 103 |
104 | ' . $content . ' 105 |
106 | '; 107 | 108 | 109 | $body = ' 110 | @ToDO

111 |

112 | .minicolors auf einem Input fügt einen Color Picker hinzu. In YForm ein Text-Eingabefeld wählen und über JSON-Attribute die Klassen {"class":"minicolors form-control"} mitgeben. 113 |

114 | '; 115 | 116 | $fragment = new rex_fragment(); 117 | $fragment->setVar('title', rex_i18n::rawMsg('jquery-minicolors_config_title'), false); 118 | $fragment->setVar('body', $body, false); 119 | $title = $fragment->parse('core/page/section.php'); 120 | 121 | echo $title; 122 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/pages/jquery-minicolors_license.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 10 | 11 | $fragment = new rex_fragment(); 12 | $fragment->setVar('title', rex_i18n::msg('jquery-minicolors_license')); 13 | $fragment->setVar('body', $content, false); 14 | echo $fragment->parse('core/page/section.php'); -------------------------------------------------------------------------------- /plugins/jquery-minicolors/pages/jquery-minicolors_readme.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file); 8 | 9 | 10 | $fragment = new rex_fragment(); 11 | $fragment->setVar('title', rex_i18n::msg('jquery-minicolors_readme')); 12 | $fragment->setVar('body', $content, false); 13 | echo $fragment->parse('core/page/section.php'); -------------------------------------------------------------------------------- /plugins/selectize/assets/rex_selectize.js: -------------------------------------------------------------------------------- 1 | $(document).on('rex:ready', function() { 2 | $('.selectize').selectize({ 3 | delimiter: ',', 4 | persist: false, 5 | create: function(input) { 6 | return { 7 | value: input, 8 | text: input 9 | } 10 | } 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.browserslistrc: -------------------------------------------------------------------------------- 1 | [production] 2 | defaults 3 | > 5% in US 4 | last 2 versions 5 | Firefox ESR 6 | iOS >= 12 7 | 8 | [development] 9 | last 1 version 10 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | 3 | root = true 4 | 5 | [*] 6 | charset = utf-8 7 | end_of_line = lf 8 | indent_size = 2 9 | indent_style = space 10 | insert_final_newline = true 11 | trim_trailing_whitespace = true 12 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [risadams] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Welcome to the Selectize bug tracker. Thank you for taking the time to 2 | make Selectize a better library! 3 | 4 | Please keep in mind this repository has an important issue backlog and 5 | that maintainers have limited time to fix issues, triage, and understand 6 | them. 7 | 8 | If you've never done so, please read the 9 | [guide to reporting issues](https://github.com/selectize/selectize.js/wiki/Reporting-issues-guide) 10 | in the Wiki to help us better understand your issue. 11 | 12 | Place an `x` in the checklist steps (`[ ]` becomes `[x]`) to demonstrate 13 | you have done/verified all the steps you needed to do. 14 | 15 | Thank you for reading this! You can now erase everything up to the 16 | following dashes, and then complete what's after. 17 | 18 | ISSUES THAT EITHER: 19 | 20 | * IGNORE THE ISSUE GUIDELINES 21 | * ERASE THE FOLLOWING TEMPLATE 22 | * DON'T FOLLOW THE PROPER NUMBERED FORMAT FOR STEPS TO REPRODUCE 23 | 24 | COULD BE CLOSED. 25 | 26 | --- 27 | 28 | I did: 29 | 30 | * [ ] Search for if my issue has already been submitted 31 | * [ ] Make sure I'm reporting something precise that needs to be fixed 32 | * [ ] Give my issue a descriptive and concise title 33 | * [ ] Create a *minimal* working example on JsFiddle or Codepen 34 | (or gave a link to a demo on the Selectize docs) 35 | * [ ] Indicate *precise* steps to reproduce in *numbers* and the result, 36 | like below 37 | 38 | [replace me with a short description of issue] 39 | 40 | Steps to reproduce: 41 | 42 | 1. 43 | 2. 44 | 3. 45 | 46 | Expected result: 47 | 48 | Actual result: 49 | 50 | [you can add explanations here of the context/what you were trying to 51 | do, and if you have findings about what the cause might be] 52 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "npm" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "daily" 12 | labels: 13 | - "npm" 14 | - "dependencies" 15 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.github/workflows/UpdateContributors.yml: -------------------------------------------------------------------------------- 1 | name: Update Contributors 2 | on: 3 | schedule: 4 | - cron: "0 0 1 * *" 5 | workflow_dispatch: 6 | jobs: 7 | main: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: risadams/contributors-update@v3.1.1 11 | with: 12 | repo: selectize/selectize.js 13 | output: CONTRIBUTORS.md 14 | exclude_bots: true 15 | - name: Commit changes 16 | uses: test-room-7/action-update-file@v1 17 | with: 18 | file-path: CONTRIBUTORS.md 19 | commit-msg: Update Contributors 20 | github-token: ${{ secrets.GITHUB_TOKEN }} 21 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ master ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ master ] 20 | schedule: 21 | - cron: '20 7 * * 0' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | permissions: 28 | actions: read 29 | contents: read 30 | security-events: write 31 | 32 | strategy: 33 | fail-fast: false 34 | matrix: 35 | language: [ 'javascript' ] 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] 37 | # Learn more: 38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed 39 | 40 | steps: 41 | - name: Checkout repository 42 | uses: actions/checkout@v2 43 | 44 | # Initializes the CodeQL tools for scanning. 45 | - name: Initialize CodeQL 46 | uses: github/codeql-action/init@v1 47 | with: 48 | languages: ${{ matrix.language }} 49 | # If you wish to specify custom queries, you can do so here or in a config file. 50 | # By default, queries listed here will override any specified in a config file. 51 | # Prefix the list here with "+" to use these queries and those in the config file. 52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 53 | 54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 55 | # If this step fails, then you should remove it and run the build manually (see below) 56 | - name: Autobuild 57 | uses: github/codeql-action/autobuild@v1 58 | 59 | # ℹ️ Command-line programs to run using the OS shell. 60 | # 📚 https://git.io/JvXDl 61 | 62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 63 | # and modify them (or add more) to build your code if your project 64 | # uses a compiled language 65 | 66 | #- run: | 67 | # make bootstrap 68 | # make release 69 | 70 | - name: Perform CodeQL Analysis 71 | uses: github/codeql-action/analyze@v1 72 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.github/workflows/node.js.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [master] 9 | pull_request: 10 | branches: [master] 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | 16 | strategy: 17 | matrix: 18 | node-version: [10.x, 12.x, 14.x] 19 | os: [ubuntu-latest, windows-latest, macOS-latest] 20 | 21 | steps: 22 | - uses: actions/checkout@v2 23 | - name: Use Node.js ${{ matrix.node-version }} 24 | uses: actions/setup-node@v2 25 | with: 26 | node-version: ${{ matrix.node-version }} 27 | cache: npm 28 | - run: npm ci 29 | - run: npm run build --if-present 30 | - run: npm test 31 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Mark stale issues and pull requests 2 | 3 | on: 4 | schedule: 5 | - cron: "30 1 * * *" 6 | 7 | jobs: 8 | stale: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/stale@v3 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days' 17 | stale-pr-message: 'This pull request is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 5 days' 18 | stale-issue-label: 'no-issue-activity' 19 | stale-pr-label: 'no-pr-activity' 20 | exempt-issue-labels: 'awaiting-approval,work-in-progress,pending review,discussion' 21 | exempt-pr-labels: 'awaiting-approval,work-in-progress,pending review,discussion' 22 | days-before-stale: 90 23 | days-before-close: 5 24 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .DAV 3 | node_modules 4 | bower_components 5 | *.log 6 | .vscode 7 | build -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | 3 | 4 | ## v0.13.0 · 03 11 2020 5 | 6 | * Support for Bootstrap v4.x. 7 | * Adding SASS styles, LESS styles still available for bootstrap 2.x 8 | * Fixed bug (#851) for placeholder text clipping 9 | * Fixed bug (#870) for remove button plugin closing bootstrap modals 10 | 11 | *@risadams* 12 | 13 | ## v0.12.4, v0.12.5 · 27 June 2018 14 | 15 | * Allow the dropdown to reopen on click if it is closed without losing focus 16 | by closeAfterSelect: true 17 | 18 | *@fishpercolator* 19 | 20 | 21 | * Fixed bug making `clearOptions` function. Now it doesn't remove already selected options. 22 | 23 | *(thanks @caseymct - #1079)* 24 | 25 | * New feature: allow to disable single options or complete optgroups 26 | 27 | *@zeitiger* 28 | 29 | ## v0.12.3 · 24 August 2016 30 | * Make `label[for]` work after applying Selectize (#755) 31 | 32 | *Barrett Sonntag* (@barretts) 33 | 34 | * Output friendly error message when Microplguin is missing (#1137). 35 | Special thanks to @styxxx for proposing the improvement. 36 | 37 | * Add local server command `grunt server`. 38 | 39 | * Stop creating items automatically when text is pasted, only create 40 | them when pasted text contains delimiter. 41 | 42 | * Fix regression 'Required fields can not be focusable' in Chrome 43 | (#733) 44 | 45 | * Fix detection of Validity API, we had false negatives before. 46 | 47 | *Jonathan Allard* (@joallard) 48 | 49 | * Fix open keyboard bug under iOS after closing selection (#1127) 50 | 51 | *@zeitiger* 52 | 53 | * Fix highlighting more than one character (#1099, #1098) 54 | 55 | *@skimi* 56 | 57 | 58 | ## v0.12.2 · 23 June 2016 59 | * Fix issue preventing build ("Cannot assign to read only property 60 | 'subarray'") because of bug in uglifyjs. (#1072) 61 | 62 | *@jaridmargolin* 63 | 64 | * Fix tabbing issue (#877) on IE11. (#997) 65 | 66 | *@bwilson-ux* 67 | 68 | * Fix jQuery initialization for jQuery >= 1.9 (#1045) 69 | 70 | *@mpokrywka* 71 | 72 | * Make `remove_button` work for single-option usage (#848) 73 | 74 | *@ChoppyThing* 75 | 76 | * Fixed bug that made `allowEmptyOption: true` useless (#739) 77 | 78 | *@mcavalletto* 79 | 80 | * Functions in option `render` can now return a DOM node in addition to 81 | text. (#617) 82 | 83 | *@topaxi* 84 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | https://keybase.io/team/selectize. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/CONTRIBUTORS.md: -------------------------------------------------------------------------------- 1 | # Contributors 2 | 3 | Thank you to our top contributors! 4 | 5 | - @[brianreavis](https://github.com/brianreavis) 6 | - @[joallard](https://github.com/joallard) 7 | - @[risadams](https://github.com/risadams) 8 | - @[sjhewitt](https://github.com/sjhewitt) 9 | - @[jhash](https://github.com/jhash) 10 | - @[Scottmitch](https://github.com/Scottmitch) 11 | - @[abhij89](https://github.com/abhij89) 12 | - @[parsonsmatt](https://github.com/parsonsmatt) 13 | - @[olegatro](https://github.com/olegatro) 14 | - @[Pictor13](https://github.com/Pictor13) 15 | - @[zeitiger](https://github.com/zeitiger) 16 | - @[marcandre](https://github.com/marcandre) 17 | - @[micahjon](https://github.com/micahjon) 18 | - @[roblevintennis](https://github.com/roblevintennis) 19 | - @[graingert](https://github.com/graingert) 20 | - @[comerc](https://github.com/comerc) 21 | - @[topaxi](https://github.com/topaxi) 22 | - @[ankit](https://github.com/ankit) 23 | - @[barretts](https://github.com/barretts) 24 | - @[bradleypriest](https://github.com/bradleypriest) 25 | - @[dpeyou](https://github.com/dpeyou) 26 | - @[martinmaillard](https://github.com/martinmaillard) 27 | - @[mikemaccana](https://github.com/mikemaccana) 28 | - @[paulkolbovich](https://github.com/paulkolbovich) 29 | - @[reklatsmasters](https://github.com/reklatsmasters) 30 | - @[ryanwersal](https://github.com/ryanwersal) 31 | - @[TiuSh](https://github.com/TiuSh) 32 | - @[urban](https://github.com/urban) 33 | - @[ViktorQvarfordt](https://github.com/ViktorQvarfordt) 34 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: compile release test 2 | plugins=* 3 | GRUNT=node_modules/.bin/grunt 4 | CURRENT_VERSION := $(shell sed -n '/"version":/{s/.*"version": "\([^"]*\)".*/\1/p;q}' package.json) 5 | 6 | all: compile 7 | test: 8 | npm test 9 | compile: 10 | rm -rf build 11 | rm -rf dist 12 | $(GRUNT) --plugins=$(plugins) 13 | release: 14 | ifeq ($(strip $(version)),) 15 | @echo "\033[31mERROR:\033[0;39m No version provided." 16 | @echo "\033[1;30mmake release version=1.0.0\033[0;39m" 17 | else 18 | sed -i.bak 's/"version": "[^"]*"/"version": "$(version)"/' selectize.jquery.json 19 | sed -i.bak 's/"version": "[^"]*"/"version": "$(version)"/' package.json 20 | sed -i.bak "s/\"version\": \"$(CURRENT_VERSION)\"/\"version\": \"$(version)\"/" package-lock.json 21 | rm *.bak 22 | make compile 23 | npm test || exit 1 24 | cp dist/js/standalone/selectize.js ../.selectize.js 25 | git add . 26 | git commit -a -m "Released $(version)." 27 | git tag v$(version) 28 | git push origin master 29 | git push origin --tags 30 | npm publish 31 | git checkout gh-pages 32 | mv -f ../.selectize.js js/selectize.js 33 | git commit -a -m "Updated selectize.js to latest version." 34 | git push origin gh-pages 35 | git checkout master 36 | @echo "\033[32mv${version} released\033[0;39m" 37 | endif 38 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | The following versions are currently being supported with security updates. 6 | 7 | | Version | Supported | 8 | | -------- | ------------------ | 9 | | 0.13.x | :white_check_mark: | 10 | | 0.12.x | :white_check_mark: | 11 | | < 0.12.0 | :x: | 12 | 13 | ## Reporting a Vulnerability 14 | 15 | File an issue with details and create a pull request with proposed changes 16 | 17 | - [Open an issue!](https://github.com/selectize/selectize.js/issues/new) 18 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/less/plugins/drag_drop.less: -------------------------------------------------------------------------------- 1 | .selectize-control.plugin-drag_drop { 2 | &.multi > .selectize-input > div.ui-sortable-placeholder { 3 | visibility: visible !important; 4 | background: #f2f2f2 !important; 5 | background: rgba(0,0,0,0.06) !important; 6 | border: 0 none !important; 7 | .selectize-box-shadow(inset 0 0 12px 4px #fff); 8 | } 9 | .ui-sortable-placeholder::after { 10 | content: '!'; 11 | visibility: hidden; 12 | } 13 | .ui-sortable-helper { 14 | .selectize-box-shadow(0 2px 5px rgba(0,0,0,0.2)); 15 | } 16 | } -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/less/plugins/dropdown_header.less: -------------------------------------------------------------------------------- 1 | .selectize-dropdown-header { 2 | position: relative; 3 | padding: @selectize-padding-dropdown-item-y @selectize-padding-dropdown-item-x; 4 | border-bottom: 1px solid @selectize-color-border; 5 | background: mix(@selectize-color-dropdown, @selectize-color-border, 85%); 6 | .selectize-border-radius(@selectize-border-radius @selectize-border-radius 0 0); 7 | } 8 | .selectize-dropdown-header-close { 9 | position: absolute; 10 | right: @selectize-padding-dropdown-item-x; 11 | top: 50%; 12 | color: @selectize-color-text; 13 | opacity: 0.4; 14 | margin-top: -12px; 15 | line-height: 20px; 16 | font-size: 20px !important; 17 | } 18 | .selectize-dropdown-header-close:hover { 19 | color: darken(@selectize-color-text, 25%); 20 | } -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/less/plugins/optgroup_columns.less: -------------------------------------------------------------------------------- 1 | .selectize-dropdown.plugin-optgroup_columns { 2 | .optgroup { 3 | border-right: 1px solid #f2f2f2; 4 | border-top: 0 none; 5 | float: left; 6 | .selectize-box-sizing(border-box); 7 | } 8 | .optgroup:last-child { 9 | border-right: 0 none; 10 | } 11 | .optgroup:before { 12 | display: none; 13 | } 14 | .optgroup-header { 15 | border-top: 0 none; 16 | } 17 | } -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/less/plugins/remove_button.less: -------------------------------------------------------------------------------- 1 | .selectize-control.plugin-remove_button { 2 | [data-value] { 3 | position: relative; 4 | padding-right: 24px !important; 5 | } 6 | [data-value] .remove { 7 | z-index: 1; /* fixes ie bug (see #392) */ 8 | position: absolute; 9 | top: 0; 10 | right: 0; 11 | bottom: 0; 12 | width: 17px; 13 | text-align: center; 14 | font-weight: bold; 15 | font-size: 12px; 16 | color: inherit; 17 | text-decoration: none; 18 | vertical-align: middle; 19 | display: inline-block; 20 | padding: @selectize-padding-item-y 0 0 0; 21 | border-left: 1px solid @selectize-color-item-border; 22 | .selectize-border-radius(0 2px 2px 0); 23 | .selectize-box-sizing(border-box); 24 | } 25 | [data-value] .remove:hover { 26 | background: rgba(0,0,0,0.05); 27 | } 28 | [data-value].active .remove { 29 | border-left-color: @selectize-color-item-active-border; 30 | } 31 | .disabled [data-value] .remove:hover { 32 | background: none; 33 | } 34 | .disabled [data-value] .remove { 35 | border-left-color: lighten(desaturate(@selectize-color-item-border, 100%), @selectize-lighten-disabled-item-border); 36 | } 37 | .remove-single { 38 | position: absolute; 39 | right: 0; 40 | top: 0; 41 | font-size: 23px; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/less/selectize.bootstrap3.less: -------------------------------------------------------------------------------- 1 | /** 2 | * selectize.css (v0.13.3) 3 | * Copyright (c) 2013–2015 Brian Reavis & contributors 4 | * Copyright (c) 2020 Selectize Team & contributors 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this 7 | * file except in compliance with the License. You may obtain a copy of the License at: 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under 11 | * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 12 | * ANY KIND, either express or implied. See the License for the specific language 13 | * governing permissions and limitations under the License. 14 | * 15 | * @author Brian Reavis 16 | * @author Ris Adams 17 | */ 18 | 19 | @import "selectize"; 20 | 21 | @selectize-font-family: inherit; 22 | @selectize-font-size: inherit; 23 | @selectize-line-height: @line-height-computed; 24 | 25 | @selectize-color-text: @text-color; 26 | @selectize-color-highlight: rgba(255,237,40,0.4); 27 | @selectize-color-input: @input-bg; 28 | @selectize-color-input-full: @input-bg; 29 | @selectize-color-input-error: @state-danger-text; 30 | @selectize-color-input-error-focus: darken(@selectize-color-input-error, 10%); 31 | @selectize-color-disabled: @input-bg; 32 | @selectize-color-item: #efefef; 33 | @selectize-color-item-border: rgba(0,0,0,0); 34 | @selectize-color-item-active: @component-active-bg; 35 | @selectize-color-item-active-text: #fff; 36 | @selectize-color-item-active-border: rgba(0,0,0,0); 37 | @selectize-color-optgroup: @dropdown-bg; 38 | @selectize-color-optgroup-text: @dropdown-header-color; 39 | @selectize-color-optgroup-border: @dropdown-divider-bg; 40 | @selectize-color-dropdown: @dropdown-bg; 41 | @selectize-color-dropdown-border-top: mix(@input-border, @input-bg, 0.8); 42 | @selectize-color-dropdown-item-active: @dropdown-link-hover-bg; 43 | @selectize-color-dropdown-item-active-text: @dropdown-link-hover-color; 44 | @selectize-color-dropdown-item-create-active-text: @dropdown-link-hover-color; 45 | @selectize-opacity-disabled: 0.5; 46 | @selectize-shadow-input: none; 47 | @selectize-shadow-input-focus: inset 0 1px 2px rgba(0,0,0,0.15); 48 | @selectize-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, .075); 49 | @selectize-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px lighten(@selectize-color-input-error, 20%); 50 | @selectize-border: 1px solid @input-border; 51 | @selectize-border-radius: @input-border-radius; 52 | 53 | @selectize-width-item-border: 0; 54 | @selectize-padding-x: @padding-base-horizontal; 55 | @selectize-padding-y: @padding-base-vertical; 56 | @selectize-padding-dropdown-item-x: @padding-base-horizontal; 57 | @selectize-padding-dropdown-item-y: 3px; 58 | @selectize-padding-item-x: 3px; 59 | @selectize-padding-item-y: 1px; 60 | @selectize-margin-item-x: 3px; 61 | @selectize-margin-item-y: 3px; 62 | @selectize-caret-margin: 0; 63 | 64 | @selectize-arrow-size: 5px; 65 | @selectize-arrow-color: @selectize-color-text; 66 | @selectize-arrow-offset: @selectize-padding-x + 5px; 67 | 68 | .selectize-dropdown, .selectize-dropdown.form-control { 69 | height: auto; 70 | padding: 0; 71 | margin: 2px 0 0 0; 72 | z-index: @zindex-dropdown; 73 | background: @selectize-color-dropdown; 74 | border: 1px solid @dropdown-fallback-border; 75 | border: 1px solid @dropdown-border; 76 | .selectize-border-radius(@border-radius-base); 77 | .selectize-box-shadow(0 6px 12px rgba(0,0,0,.175)); 78 | } 79 | 80 | .selectize-dropdown { 81 | .optgroup-header { 82 | font-size: @font-size-small; 83 | line-height: @line-height-base; 84 | } 85 | .optgroup:first-child:before { 86 | display: none; 87 | } 88 | .optgroup:before { 89 | content: ' '; 90 | display: block; 91 | .nav-divider(); 92 | margin-left: @selectize-padding-dropdown-item-x * -1; 93 | margin-right: @selectize-padding-dropdown-item-x * -1; 94 | } 95 | } 96 | 97 | .selectize-dropdown-content { 98 | padding: 5px 0; 99 | } 100 | 101 | .selectize-dropdown-header { 102 | padding: @selectize-padding-dropdown-item-y * 2 @selectize-padding-dropdown-item-x; 103 | } 104 | 105 | .selectize-input { 106 | min-height: @input-height-base; 107 | 108 | &.dropdown-active { 109 | .selectize-border-radius(@selectize-border-radius); 110 | } 111 | &.dropdown-active::before { 112 | display: none; 113 | } 114 | &.focus { 115 | @color: @input-border-focus; 116 | @color-rgba: rgba(red(@color), green(@color), blue(@color), .6); 117 | border-color: @color; 118 | outline: 0; 119 | .selectize-box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}"); 120 | } 121 | } 122 | 123 | .has-error .selectize-input { 124 | border-color: @selectize-color-input-error; 125 | .selectize-box-shadow(@selectize-shadow-input-error); 126 | 127 | &:focus { 128 | border-color: @selectize-color-input-error-focus; 129 | .selectize-box-shadow(@selectize-shadow-input-error-focus); 130 | } 131 | } 132 | 133 | .selectize-control { 134 | &.multi { 135 | .selectize-input.has-items { 136 | padding-left: @selectize-padding-x - @selectize-padding-item-x; 137 | padding-right: @selectize-padding-x - @selectize-padding-item-x; 138 | } 139 | .selectize-input > div { 140 | .selectize-border-radius(@selectize-border-radius - 1px); 141 | } 142 | } 143 | } 144 | 145 | .form-control.selectize-control { 146 | padding: 0; 147 | height: auto; 148 | border: none; 149 | background: none; 150 | .selectize-box-shadow(none); 151 | .selectize-border-radius(0); 152 | } 153 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/less/selectize.default.less: -------------------------------------------------------------------------------- 1 | /** 2 | * selectize.css (v0.13.3) 3 | * Copyright (c) 2013–2015 Brian Reavis & contributors 4 | * Copyright (c) 2020 Selectize Team & contributors 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this 7 | * file except in compliance with the License. You may obtain a copy of the License at: 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under 11 | * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 12 | * ANY KIND, either express or implied. See the License for the specific language 13 | * governing permissions and limitations under the License. 14 | * 15 | * @author Brian Reavis 16 | * @author Ris Adams 17 | */ 18 | 19 | @import "selectize"; 20 | 21 | @selectize-color-item: #1da7ee; 22 | @selectize-color-item-text: #fff; 23 | @selectize-color-item-active-text: #fff; 24 | @selectize-color-item-border: #0073bb; 25 | @selectize-color-item-active: #92c836; 26 | @selectize-color-item-active-border: #00578d; 27 | @selectize-width-item-border: 1px; 28 | @selectize-caret-margin: 0 1px; 29 | 30 | .selectize-control { 31 | &.multi { 32 | .selectize-input { 33 | &.has-items { 34 | @padding-x: @selectize-padding-x - 3px; 35 | padding-left: @padding-x; 36 | padding-right: @padding-x; 37 | } 38 | &.disabled [data-value] { 39 | color: #999; 40 | text-shadow: none; 41 | background: none; 42 | .selectize-box-shadow(none); 43 | 44 | &, .remove { 45 | border-color: #e6e6e6; 46 | } 47 | .remove { 48 | background: none; 49 | } 50 | } 51 | [data-value] { 52 | text-shadow: 0 1px 0 rgba(0,51,83,0.3); 53 | .selectize-border-radius(3px); 54 | .selectize-vertical-gradient(#1da7ee, #178ee9); 55 | .selectize-box-shadow(~"0 1px 0 rgba(0,0,0,0.2),inset 0 1px rgba(255,255,255,0.03)"); 56 | &.active { 57 | .selectize-vertical-gradient(#008fd8, #0075cf); 58 | } 59 | } 60 | } 61 | } 62 | &.single { 63 | .selectize-input { 64 | .selectize-box-shadow(~"0 1px 0 rgba(0,0,0,0.05), inset 0 1px 0 rgba(255,255,255,0.8)"); 65 | .selectize-vertical-gradient(#fefefe, #f2f2f2); 66 | } 67 | } 68 | } 69 | 70 | .selectize-control.single .selectize-input, .selectize-dropdown.single { 71 | border-color: #b8b8b8; 72 | } 73 | 74 | .selectize-dropdown { 75 | .optgroup-header { 76 | padding-top: @selectize-padding-dropdown-item-y + 2px; 77 | font-weight: bold; 78 | font-size: 0.85em; 79 | } 80 | .optgroup { 81 | border-top: 1px solid @selectize-color-dropdown-border-top; 82 | &:first-child { 83 | border-top: 0 none; 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/less/selectize.legacy.less: -------------------------------------------------------------------------------- 1 | /** 2 | * selectize.css (v0.13.3) 3 | * Copyright (c) 2013–2015 Brian Reavis & contributors 4 | * Copyright (c) 2020 Selectize Team & contributors 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this 7 | * file except in compliance with the License. You may obtain a copy of the License at: 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software distributed under 11 | * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 12 | * ANY KIND, either express or implied. See the License for the specific language 13 | * governing permissions and limitations under the License. 14 | * 15 | * @author Brian Reavis 16 | * @author Ris Adams 17 | */ 18 | 19 | @import "selectize"; 20 | 21 | @selectize-font-size: 13px; 22 | @selectize-line-height: 20px; 23 | 24 | @selectize-color-input-full: #f2f2f2; 25 | @selectize-color-item: #b8e76f; 26 | @selectize-color-item-text: #3d5d18; 27 | @selectize-color-item-border: #74b21e; 28 | @selectize-color-item-active: #92c836; 29 | @selectize-color-item-active-border: #6f9839; 30 | @selectize-color-highlight: rgba(255,237,40,0.4); 31 | @selectize-color-dropdown-item-active: #fffceb; 32 | @selectize-color-dropdown-item-active-text: @selectize-color-text; 33 | @selectize-color-optgroup: #f8f8f8; 34 | @selectize-color-optgroup-text: @selectize-color-text; 35 | @selectize-width-item-border: 1px; 36 | 37 | @selectize-padding-x: 10px; 38 | @selectize-padding-y: 10px; 39 | @selectize-padding-item-x: 5px; 40 | @selectize-padding-item-y: 1px; 41 | @selectize-padding-dropdown-item-x: 10px; 42 | @selectize-padding-dropdown-item-y: 7px; 43 | @selectize-margin-item-x: 4px; 44 | @selectize-margin-item-y: 4px; 45 | 46 | .selectize-control { 47 | &.multi { 48 | .selectize-input [data-value] { 49 | text-shadow: 0 1px 0 rgba(255,255,255,0.1); 50 | .selectize-border-radius(3px); 51 | .selectize-vertical-gradient(#b8e76f, #a9e25c); 52 | .selectize-box-shadow(0 1px 1px rgba(0,0,0,0.1)); 53 | &.active { 54 | .selectize-vertical-gradient(#92c836, #7abc2c); 55 | } 56 | } 57 | } 58 | &.single { 59 | .selectize-input { 60 | .selectize-box-shadow(~"inset 0 1px 0 rgba(255,255,255,0.8), 0 2px 0 #e0e0e0, 0 3px 0 #c8c8c8, 0 4px 1px rgba(0,0,0,0.1)"); 61 | .selectize-vertical-gradient(#f5f5f5, #efefef); 62 | } 63 | } 64 | } 65 | 66 | .selectize-control.single .selectize-input, .selectize-dropdown.single { 67 | border-color: #b8b8b8; 68 | } 69 | 70 | .selectize-dropdown { 71 | .optgroup-header { 72 | font-weight: bold; 73 | font-size: 0.8em; 74 | border-bottom: 1px solid @selectize-color-dropdown-border-top; 75 | border-top: 1px solid @selectize-color-dropdown-border-top; 76 | } 77 | } -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/scss/plugins/drag_drop.scss: -------------------------------------------------------------------------------- 1 | .#{$selectize}-control.plugin-drag_drop { 2 | &.multi > .#{$selectize}-input > div.ui-sortable-placeholder { 3 | visibility: visible !important; 4 | background: #f2f2f2 !important; 5 | background: rgba(0, 0, 0, 0.06) !important; 6 | border: 0 none !important; 7 | box-shadow: inset 0 0 12px 4px #fff; 8 | } 9 | .ui-sortable-placeholder::after { 10 | content: "!"; 11 | visibility: hidden; 12 | } 13 | .ui-sortable-helper { 14 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/scss/plugins/dropdown_header.scss: -------------------------------------------------------------------------------- 1 | .#{$selectize}-control { 2 | .dropdown-header { 3 | position: relative; 4 | padding: ($select-padding-dropdown-item-y * 2) 5 | $select-padding-dropdown-item-x; 6 | border-bottom: 1px solid $select-color-border; 7 | background: mix($select-color-dropdown, $select-color-border, 85%); 8 | border-radius: $select-border-radius $select-border-radius 0 0; 9 | } 10 | .dropdown-header-close { 11 | position: absolute; 12 | right: $select-padding-dropdown-item-x; 13 | top: 50%; 14 | color: $select-color-text; 15 | opacity: 0.4; 16 | margin-top: -12px; 17 | line-height: 20px; 18 | font-size: 20px !important; 19 | } 20 | .dropdown-header-close:hover { 21 | color: darken($select-color-text, 25%); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/scss/plugins/optgroup_columns.scss: -------------------------------------------------------------------------------- 1 | .#{$selectize}-dropdown.plugin-optgroup_columns { 2 | .#{$selectize}-dropdown-content { 3 | display: flex; 4 | } 5 | 6 | .optgroup { 7 | border-right: 1px solid #f2f2f2; 8 | border-top: 0 none; 9 | flex-grow: 1; 10 | flex-basis: 0; 11 | min-width: 0; 12 | } 13 | .optgroup:last-child { 14 | border-right: 0 none; 15 | } 16 | .optgroup:before { 17 | display: none; 18 | } 19 | .optgroup-header { 20 | border-top: 0 none; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/scss/plugins/remove_button.scss: -------------------------------------------------------------------------------- 1 | .#{$selectize}-control.plugin-remove_button { 2 | .item { 3 | display: inline-flex; 4 | align-items: center; 5 | padding-right: 0 !important; 6 | } 7 | 8 | .item .remove { 9 | color: inherit; 10 | text-decoration: none; 11 | vertical-align: middle; 12 | display: inline-block; 13 | padding: $select-padding-item-y $select-padding-item-x; 14 | border-left: 1px solid $select-color-item-border; 15 | border-radius: 0 2px 2px 0; 16 | box-sizing: border-box; 17 | margin-left: $select-padding-item-x; 18 | } 19 | 20 | .item .remove:hover { 21 | background: rgba(0, 0, 0, 0.05); 22 | } 23 | 24 | .item.active .remove { 25 | border-left-color: $select-color-item-active-border; 26 | } 27 | 28 | .disabled .item .remove:hover { 29 | background: none; 30 | } 31 | 32 | .disabled .item .remove { 33 | border-left-color: lighten( 34 | desaturate($select-color-item-border, 100%), 35 | $select-lighten-disabled-item-border 36 | ); 37 | } 38 | 39 | .remove-single { 40 | position: absolute; 41 | right: 0; 42 | top: 0; 43 | font-size: 23px; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/scss/selectize.bootstrap3.scss: -------------------------------------------------------------------------------- 1 | @import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/_variables.scss"; 2 | @import "../../node_modules/bootstrap-sass/assets/stylesheets/bootstrap/mixins/_nav-divider.scss"; 3 | 4 | $select-font-family: inherit; 5 | $select-font-size: inherit; 6 | $select-line-height: $line-height-computed; 7 | 8 | $select-color-text: $text-color; 9 | $select-color-highlight: rgba(255, 237, 40, 0.4); 10 | $select-color-input: $input-bg; 11 | $select-color-input-full: $input-bg; 12 | $select-color-input-error: $state-danger-text; 13 | $select-color-input-error-focus: darken($select-color-input-error, 10%); 14 | $select-color-disabled: $input-bg; 15 | $select-color-item: #efefef; 16 | $select-color-item-border: rgba(0, 0, 0, 0); 17 | $select-color-item-active: $component-active-bg; 18 | $select-color-item-active-text: #fff; 19 | $select-color-item-active-border: rgba(0, 0, 0, 0); 20 | $select-color-optgroup: $dropdown-bg; 21 | $select-color-optgroup-text: $dropdown-header-color; 22 | $select-color-optgroup-border: $dropdown-divider-bg; 23 | $select-color-dropdown: $dropdown-bg; 24 | $select-color-dropdown-border-top: mix($input-border, $input-bg, 0.8); 25 | $select-color-dropdown-item-active: $dropdown-link-hover-bg; 26 | $select-color-dropdown-item-active-text: $dropdown-link-hover-color; 27 | $select-color-dropdown-item-create-active-text: $dropdown-link-hover-color; 28 | $select-opacity-disabled: 0.5; 29 | $select-shadow-input: none; 30 | $select-shadow-input-focus: inset 0 1px 2px rgba(0, 0, 0, 0.15); 31 | $select-shadow-input-error: inset 0 1px 1px rgba(0, 0, 0, 0.075); 32 | $select-shadow-input-error-focus: inset 0 1px 1px rgba(0, 0, 0, 0.075), 33 | 0 0 6px lighten($select-color-input-error, 20%); 34 | $select-border: 1px solid $input-border; 35 | $select-border-radius: $input-border-radius; 36 | 37 | $select-width-item-border: 0; 38 | $select-padding-x: $padding-base-horizontal; 39 | $select-padding-y: $padding-base-vertical; 40 | $select-padding-dropdown-item-x: $padding-base-horizontal; 41 | $select-padding-dropdown-item-y: 3px; 42 | $select-padding-item-x: 5px; 43 | $select-padding-item-y: 1px; 44 | $select-margin-item-x: 3px; 45 | $select-margin-item-y: 3px; 46 | 47 | $select-arrow-size: 5px; 48 | $select-arrow-color: $select-color-text; 49 | $select-arrow-offset: $select-padding-x + 5px; 50 | 51 | @import "selectize"; 52 | 53 | .#{$selectize}-dropdown, 54 | .#{$selectize}-dropdown.form-control { 55 | height: auto; 56 | padding: 0; 57 | margin: 2px 0 0 0; 58 | z-index: $zindex-dropdown; 59 | background: $select-color-dropdown; 60 | border: 1px solid $dropdown-fallback-border; 61 | border: 1px solid $dropdown-border; 62 | border-radius: $border-radius-base; 63 | box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); 64 | } 65 | 66 | .#{$selectize}-dropdown { 67 | .optgroup-header { 68 | font-size: $font-size-small; 69 | line-height: $line-height-base; 70 | } 71 | .optgroup:first-child:before { 72 | display: none; 73 | } 74 | .optgroup:before { 75 | content: " "; 76 | display: block; 77 | @include nav-divider(); 78 | margin-left: $select-padding-dropdown-item-x * -1; 79 | margin-right: $select-padding-dropdown-item-x * -1; 80 | } 81 | } 82 | 83 | .#{$selectize}-dropdown-content { 84 | padding: 5px 0; 85 | } 86 | 87 | .#{$selectize}-dropdown-emptyoptionlabel { 88 | text-align: center; 89 | } 90 | 91 | .#{$selectize}-input { 92 | min-height: $input-height-base; 93 | 94 | &.dropdown-active { 95 | border-radius: $select-border-radius; 96 | } 97 | &.dropdown-active::before { 98 | display: none; 99 | } 100 | &.focus { 101 | $color: $input-border-focus; 102 | $color-rgba: rgba(red($color), green($color), blue($color), 0.6); 103 | border-color: $color; 104 | outline: 0; 105 | box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px $color-rgba; 106 | } 107 | } 108 | 109 | .has-error .#{$selectize}-input { 110 | border-color: $select-color-input-error; 111 | box-shadow: $select-shadow-input-error; 112 | 113 | &:focus { 114 | border-color: $select-color-input-error-focus; 115 | box-shadow: $select-shadow-input-error-focus; 116 | } 117 | } 118 | 119 | .#{$selectize}-control { 120 | &.multi { 121 | .#{$selectize}-input.has-items { 122 | padding-left: $select-padding-x - $select-padding-item-x; 123 | padding-right: $select-padding-x - $select-padding-item-x; 124 | } 125 | .#{$selectize}-input > div { 126 | border-radius: $select-border-radius - 1px; 127 | } 128 | } 129 | } 130 | 131 | .form-control.#{$selectize}-control { 132 | padding: 0; 133 | height: auto; 134 | border: none; 135 | background: none; 136 | box-shadow: none; 137 | border-radius: 0; 138 | } 139 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/dist/scss/selectize.default.scss: -------------------------------------------------------------------------------- 1 | $select-color-item: #1da7ee; 2 | $select-color-item-text: #fff; 3 | $select-color-item-active-text: #fff; 4 | $select-color-item-border: #0073bb; 5 | $select-color-item-active: #92c836; 6 | $select-color-item-active-border: #00578d; 7 | $select-width-item-border: 1px; 8 | 9 | @import "selectize"; 10 | 11 | .#{$selectize}-control { 12 | &.multi { 13 | .#{$selectize}-input { 14 | &.has-items { 15 | $padding-x: $select-padding-x - 3px; 16 | padding-left: $padding-x; 17 | padding-right: $padding-x; 18 | } 19 | &.disabled [data-value] { 20 | color: #999; 21 | text-shadow: none; 22 | background: none; 23 | box-shadow: none; 24 | 25 | &, 26 | .remove { 27 | border-color: #e6e6e6; 28 | } 29 | .remove { 30 | background: none; 31 | } 32 | } 33 | [data-value] { 34 | text-shadow: 0 1px 0 rgba(0, 51, 83, 0.3); 35 | border-radius: 3px; 36 | @include selectize-vertical-gradient(#1da7ee, #178ee9); 37 | box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2), 38 | inset 0 1px rgba(255, 255, 255, 0.03); 39 | &.active { 40 | @include selectize-vertical-gradient(#008fd8, #0075cf); 41 | } 42 | } 43 | } 44 | } 45 | &.single { 46 | .#{$selectize}-input { 47 | box-shadow: 0 1px 0 rgba(0, 0, 0, 0.05), 48 | inset 0 1px 0 rgba(255, 255, 255, 0.8); 49 | @include selectize-vertical-gradient(#fefefe, #f2f2f2); 50 | } 51 | } 52 | } 53 | 54 | .#{$selectize}-control.single .#{$selectize}-input, 55 | .#{$selectize}-dropdown.single { 56 | border-color: #b8b8b8; 57 | } 58 | 59 | .#{$selectize}-dropdown { 60 | .optgroup-header { 61 | padding-top: $select-padding-dropdown-item-y + 2px; 62 | font-weight: bold; 63 | font-size: 0.85em; 64 | } 65 | .optgroup { 66 | border-top: 1px solid $select-color-dropdown-border-top; 67 | &:first-child { 68 | border-top: 0 none; 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/docs/events.md: -------------------------------------------------------------------------------- 1 | ## Selectize API – Events 2 | 3 | In the [usage documentation](usage.md), a few callbacks are listed that 4 | allow you to listen for certain events. Callbacks aren't always ideal though; 5 | specifically when you wish to have multiple handlers. 6 | 7 | Selectize instances have a basic event emitter interface that mimics jQuery, Backbone.js, et al: 8 | 9 | ```js 10 | var handler = function() { /* ... */ }; 11 | selectize.on('event_name', handler); 12 | selectize.off('event_name'); 13 | selectize.off('event_name', handler); 14 | ``` 15 | 16 | ### List of Events 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 |
EventParamsDescription
"initialize"Invoked once the control is completely initialized.
"change"valueInvoked when the value of the control changes.
"focus"Invoked when the control gains focus.
"blur"Invoked when the control loses focus.
"item_add"value, $itemInvoked when an item is selected.
"item_remove"value, $itemInvoked when an item is deselected.
"clear"Invoked when the control is manually cleared via the clear() method.
"option_add"value, dataInvoked when a new option is added to the available options list.
"option_remove"valueInvoked when an option is removed from the available options.
"option_clear"Invoked when all options are removed from the control.
"optgroup_add"id, dataInvoked when a new option is added to the available options list.
"optgroup_remove"idInvoked when an option group is removed.
"optgroup_clear"Invoked when all option groups are removed.
"dropdown_open"$dropdownInvoked when the dropdown opens.
"dropdown_close"$dropdownInvoked when the dropdown closes.
"type"strInvoked when the user types while filtering options.
"load"dataInvoked when new options have been loaded and added to the control (via the load option or load API method).
"destroy"Invoked right before the control is destroyed.
115 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/docs/plugins.md: -------------------------------------------------------------------------------- 1 | ## Selectize API – Plugins 2 | 3 | Via the [microplugin](https://github.com/brianreavis/microplugin.js) interface, 4 | features can be added to Selectize without modifying the main library. 5 | This is great because it protects against code bloat, allows for lean builds, 6 | and allows for addons to be sanely isolated. The plugin system isn't meant 7 | to be sexy; it's lean, makes very few assumptions, and gives the developer 8 | complete control. 9 | 10 | [**Example Plugins**](../src/plugins) 11 | 12 | **A few notes:** 13 | - All plugins live in their own folders in ["src/plugins"](../src/plugins). 14 | - Plugin names should be in follow the format: `/[a-z_]+$` 15 | - JS source should live in a "plugin.js" file (required). 16 | - CSS should live in a "plugin.less" file (optional). It will be bundled at build time. 17 | - Plugins are initialized right before the control is setup. 18 | This means that if you want to listen for events on any of the control's 19 | elements, you should override the `setup()` method (see ["DOM Events"](#dom-events)). 20 | 21 | ### Boilerplate 22 | 23 | ```js 24 | Selectize.define('plugin_name', function(options) { 25 | // options: plugin-specific options 26 | // this: Selectize instance 27 | }); 28 | ``` 29 | 30 | #### Adding Dependencies 31 | 32 | ```js 33 | Selectize.define('plugin_name', function(options) { 34 | this.require('another_plugin'); 35 | }); 36 | ``` 37 | 38 | ## Overriding Methods 39 | 40 | Methods should be extended by [wrapping them](http://coreymaynard.com/blog/extending-a-javascript-function/): 41 | 42 | ```js 43 | var self = this; 44 | this.someMethod = (function() { 45 | var original = self.someMethod; 46 | return function() { 47 | // do your logic 48 | return original.apply(this, arguments); 49 | }; 50 | })(); 51 | ``` 52 | 53 | **Important:** If the method you're overriding returns a value, make sure the 54 | overridden function returns a value as well. 55 | 56 | ## DOM Events 57 | 58 | Because all elements for the control are created within the `setup()` method (which is 59 | invoked after the plugin initialized) events should be added by overriding the setup method, 60 | like so: 61 | 62 | ```js 63 | Selectize.define('plugin_name', function(options) { 64 | var self = this; 65 | 66 | // override the setup method to add an extra `click` handler 67 | this.setup = (function() { 68 | var original = self.setup; 69 | return function() { 70 | original.apply(this, arguments); 71 | this.$control.on('click', 'div', function(e) { 72 | alert('A div was clicked!'); 73 | }); 74 | }; 75 | })(); 76 | 77 | }); 78 | ``` 79 | 80 | ## Plugin Usage 81 | 82 | #### List (without options) 83 | 84 | ```js 85 | $('select').selectize({ 86 | plugins: ['plugin_a', 'plugin_b'] 87 | }); 88 | ``` 89 | 90 | #### List (with options) 91 | 92 | ```js 93 | $('select').selectize({ 94 | plugins: { 95 | 'plugin_a': { /* ... */ }, 96 | 'plugin_b': { /* ... */ } 97 | } 98 | }); 99 | ``` 100 | 101 | For a more detailed description of plugin option formats and how the plugin system works, check out the [microplugin](https://github.com/brianreavis/microplugin.js) documentation. 102 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/docs/selectize-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/selectize/assets/selectize/docs/selectize-logo.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/docs/selectize-wordmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/selectize/assets/selectize/docs/selectize-wordmark.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/api.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 |
23 |

API

24 |

Examples of how to interact with the control programmatically.

25 |
26 | 27 | 28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 88 |
89 |
90 | 91 | 92 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/confirm.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 | 23 |
24 |

Confirm Delete

25 |
26 | 27 | 28 |
29 | 38 |
39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/create-filter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 |
23 |

Create Filter

24 |

Examples of how to filter created results.

25 |
26 | 27 |

28 | 29 | 30 |
31 |
32 | 33 |

34 | 35 | 36 |
37 |
38 | 39 | 40 |
41 | 62 |
63 |
64 | 65 | 66 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/css/stylesheet.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 70px 0; 3 | padding: 0; 4 | font-family: Helvetica, arial, sans-serif; 5 | font-size: 15px; 6 | color: #454545; 7 | background: #fff url(../images/bg.png); 8 | text-shadow: 0 1px 0 rgba(0,0,0,0.02); 9 | -webkit-font-smoothing: antialiased; 10 | } 11 | a, a:visited { 12 | color: #3fabff; 13 | text-decoration: none; 14 | } 15 | a:hover { 16 | color: #008af5; 17 | } 18 | h1 { 19 | margin: 0; 20 | font-weight: 300; 21 | font-size: 35px; 22 | letter-spacing: -1px; 23 | } 24 | h2 { 25 | font-size: 15px; 26 | color: #a0a0a0; 27 | margin: 30px 0; 28 | } 29 | label { 30 | display: block; 31 | font-weight: bold; 32 | margin-bottom: 10px; 33 | } 34 | p, .control-group { 35 | margin: 0 0 20px 0; 36 | } 37 | .demo { 38 | border-bottom: 1px solid #e8e8e8; 39 | padding-top: 50px; 40 | padding-bottom: 50px; 41 | -webkit-border-radius: 3px; 42 | -moz-border-radius: 3px; 43 | border-radius: 3px; 44 | } 45 | .demo:last-child { 46 | border-bottom: 0 none; 47 | } 48 | .demo select, .demo input, .demo .selectize-control { 49 | width: 100%; 50 | } 51 | .demo > *:first-child { 52 | margin-top: 0; 53 | } 54 | .demo > *:last-child { 55 | margin-bottom: 0; 56 | } 57 | .demo .value { 58 | margin: 0 0 10px 0; 59 | font-size: 12px; 60 | } 61 | .demo .value span { 62 | font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; 63 | } 64 | .theme-selector { 65 | margin-top: 10px; 66 | font-size: 13px; 67 | } 68 | .theme-selector:before { 69 | content: 'Themes: '; 70 | } 71 | .theme-selector a { 72 | margin: 0 5px; 73 | } 74 | .theme-selector a.active { 75 | color: #202020; 76 | font-weight: bold; 77 | } 78 | #wrapper { 79 | margin: 0; 80 | } 81 | #wrapper > * { 82 | padding-left: 100px; 83 | padding-right: 100px; 84 | } 85 | pre { 86 | background: #f8f8f8; 87 | border: 1px solid #f2f2f2; 88 | padding: 10px; 89 | font-size: 12px; 90 | font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; 91 | -webkit-border-radius: 3px; 92 | -moz-border-radius: 3px; 93 | border-radius: 3px; 94 | } 95 | input[type=button] { 96 | margin: 0 10px 0 0; 97 | padding: 6px 10px; 98 | color: #606060; 99 | background: #e0e0e0; 100 | border: 0 none; 101 | width: auto; 102 | display: inline-block; 103 | -webkit-border-radius: 3px; 104 | -moz-border-radius: 3px; 105 | border-radius: 3px; 106 | -webkit-font-smoothing: antialiased; 107 | } 108 | .buttons { 109 | margin: 0 0 25px 0; 110 | } 111 | input[type=button]:hover { 112 | background: #dadada; 113 | } 114 | 115 | @media only screen and (max-width : 320px) { 116 | body { 117 | margin: 20px 0; 118 | } 119 | #wrapper { 120 | margin: 0; 121 | } 122 | #wrapper > * { 123 | padding-left: 10px; 124 | padding-right: 10px; 125 | } 126 | .demo { 127 | padding: 20px; 128 | -webkit-border-radius: 0; 129 | -moz-border-radius: 0; 130 | border-radius: 0; 131 | } 132 | } -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/customization.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 34 | 35 | 36 |
37 |

Selectize.js

38 |
39 |

Customizing Appearance

40 |

Render items on your own & apply unique CSS styles.

41 |
42 | 43 | 44 |
45 | 78 |

TODO: explain how to bind events.

79 |
80 |
81 | 82 | 83 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/dynamic.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 |
23 |

Dynamic Options

24 |

The options are created straight from an array.

25 |
26 | 27 | 28 |
29 | 45 |
46 |
47 | 48 | 49 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/events.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js Demos

22 |
23 |

Events

24 |

Check out the console for more details about each event.

25 |
26 | 27 | 81 |
82 |

Event Log

83 |

 84 | 				

Source

85 | 106 |
107 |
108 | 109 | 110 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/github.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 94 | 95 | 96 |
97 |

Selectize.js

98 |
99 |

Loading + Custom Scoring

100 |

This demo shows how to integrate third-party data and override the scoring method.

101 |
102 | 103 | 104 |
105 | 150 |
151 |
152 | 153 | 154 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/selectize/assets/selectize/examples/images/bg.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/check@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/selectize/assets/selectize/examples/images/check@2x.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/repo-forked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/selectize/assets/selectize/examples/images/repo-forked.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/repo-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/selectize/assets/selectize/examples/images/repo-source.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/581f23e151dc50f8aff9762166d6da8b17cac262/plugins/selectize/assets/selectize/examples/images/spinner.gif -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/js/index.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | var $wrapper = $('#wrapper'); 3 | 4 | // theme switcher 5 | var theme_match = String(window.location).match(/[?&]theme=([a-z0-9]+)/); 6 | var theme = (theme_match && theme_match[1]) || 'default'; 7 | var themes = ['default','legacy','bootstrap2','bootstrap3','bootstrap4','bootstrap5']; 8 | $('head').append(''); 9 | 10 | var $themes = $('
').addClass('theme-selector').insertAfter('h1'); 11 | for (var i = 0; i < themes.length; i++) { 12 | $themes.append('' + themes[i] + ''); 13 | } 14 | 15 | // display scripts on the page 16 | $('script', $wrapper).each(function() { 17 | var code = this.text; 18 | if (code && code.length) { 19 | var lines = code.split('\n'); 20 | var indent = null; 21 | 22 | for (var i = 0; i < lines.length; i++) { 23 | if (/^[ ]*$/.test(lines[i])) continue; 24 | if (!indent) { 25 | var lineindent = lines[i].match(/^([ ]+)/); 26 | if (!lineindent) break; 27 | indent = lineindent[1]; 28 | } 29 | lines[i] = lines[i].replace(new RegExp('^' + indent), ''); 30 | } 31 | 32 | var code = $.trim(lines.join('\n')).replace(/ /g, ' '); 33 | var $pre = $('
').addClass('js').text(code);
34 | 			$pre.insertAfter(this);
35 | 		}
36 | 	});
37 | 
38 | 	// show current input values
39 | 	$('select.selectized,input.selectized', $wrapper).each(function() {
40 | 		var $container = $('
').addClass('value').html('Current Value: '); 41 | var $value = $('').appendTo($container); 42 | var $input = $(this); 43 | var update = function(e) { $value.text(JSON.stringify($input.val())); } 44 | 45 | $(this).on('change', update); 46 | update(); 47 | 48 | $container.insertAfter($input); 49 | }); 50 | }); 51 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/lock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 |
23 |

Locking

24 |

Selectize controls can be locked to prevent user interaction.

25 |
26 | 27 | 32 |
33 |
34 | 35 | 40 |
41 |
42 | 43 | 48 |
49 |
50 | 51 | 56 |
57 | 63 |
64 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/movies.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 103 | 104 | 105 |
106 |

Selectize.js

107 |
108 |

Loading from API

109 |

This demo shows how to integrate third-party data, loaded asynchronously.

110 |
111 | 112 | 113 |
114 | 161 |
162 |
163 | 164 | 165 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/performance.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 |
23 |

Performance

24 |

This shows how it performs with 25,000 items.

25 |
26 | 27 | 28 |
29 | 56 |
57 |
58 | 59 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/required.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 | 23 |
24 |

Required Element

25 |
26 |
27 | 28 | 36 |
37 | 38 |
39 |
40 |
41 | 50 |
51 | 52 |
53 | 54 | 55 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/rtl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Selectize.js Demo 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |

Selectize.js

22 | 23 |
24 |

Right-to-left Support (RTL)

25 |
26 | 27 | 28 |
29 | 35 |
36 | 37 |
38 |

Right-to-left Support (RTL) – Single

39 |
40 | 41 | 48 |
49 | 52 |
53 | 54 |
55 | 56 | 57 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | // workaround for https://github.com/karma-runner/karma-sauce-launcher/issues/40 3 | var saucelabsBatchID = Number(process.env.SAUCELABS_BATCH) - 1; 4 | var saucelabsConcurrency = 4; 5 | var saucelabsBrowsers = [ 6 | // mobile 7 | {platform: 'OS X 10.10', browserName: 'iPhone', version: '8.1'}, 8 | //{platform: 'OS X 10.10 ', browserName: 'iPhone', version: '6.0'}, 9 | {platform: 'OS X 10.10', browserName: 'iPad', version: '8.1'}, 10 | //{platform: 'OS X 10.10', browserName: 'iPad', version: '6.0'}, 11 | {platform: 'Linux', browserName: 'android', version: '4.4'}, 12 | {platform: 'Linux', browserName: 'android', version: '4.3'}, 13 | // desktop (safari) 14 | {platform: 'OS X 10.8', browserName: 'safari', version: 6}, 15 | {platform: 'OS X 10.9', browserName: 'safari', version: 7}, 16 | {platform: 'OS X 10.10', browserName: 'safari', version: 8}, 17 | // desktop (chrome) 18 | {platform: 'OS X 10.10', browserName: 'chrome', version: 39}, 19 | {platform: 'OS X 10.10', browserName: 'chrome', version: 38}, 20 | {platform: 'OS X 10.10', browserName: 'chrome', version: 37}, 21 | {platform: 'Windows 7', browserName: 'chrome', version: 39}, 22 | {platform: 'Windows 7', browserName: 'chrome', version: 38}, 23 | {platform: 'Windows 7', browserName: 'chrome', version: 37}, 24 | // desktop (firefox) 25 | {platform: 'Windows 7', browserName: 'firefox', version: 35}, 26 | {platform: 'Windows 8', browserName: 'firefox', version: 35}, 27 | {platform: 'OS X 10.10', browserName: 'firefox', version: 34}, 28 | {platform: 'OS X 10.10', browserName: 'firefox', version: 33}, 29 | {platform: 'OS X 10.10', browserName: 'firefox', version: 32}, 30 | // desktop (internet explorer) 31 | {platform: 'Windows 8', browserName: 'iexplore', version: 10}, 32 | {platform: 'Windows 8.1', browserName: 'iexplore', version: 11}, 33 | {platform: 'Windows 7', browserName: 'iexplore', version: 9} 34 | ]; 35 | 36 | if (process.env.TARGET === 'saucelabs') { 37 | saucelabsBrowsers = saucelabsBrowsers.slice(saucelabsBatchID * saucelabsConcurrency, saucelabsBatchID * saucelabsConcurrency + saucelabsConcurrency); 38 | if (!saucelabsBrowsers.length) process.exit(0); 39 | } 40 | 41 | var customLaunchers = {}; 42 | saucelabsBrowsers.forEach(function(browser, i) { 43 | browser.base = 'SauceLabs'; 44 | customLaunchers['SL_' + i] = browser; 45 | }); 46 | 47 | var targets = { 48 | 'saucelabs': Object.keys(customLaunchers), 49 | 'phantomjs': ['PhantomJS'] 50 | }; 51 | 52 | var browsers = targets[process.env.TARGET || 'phantomjs']; 53 | if (process.env.BROWSERS) { 54 | browsers = process.env.BROWSERS.split(','); 55 | } 56 | 57 | config.set({ 58 | frameworks: ['mocha', 'chai'], 59 | files: [ 60 | 'dist/css/selectize.default.css', 61 | 'node_modules/jquery/dist/jquery.js', 62 | 'node_modules/microplugin/src/microplugin.js', 63 | 'node_modules/sifter/sifter.js', 64 | 'test/support/*.js', 65 | 'src/contrib/*.js', 66 | 'src/constants.js', 67 | 'src/utils.js', 68 | 'src/selectize.js', 69 | 'src/defaults.js', 70 | 'src/selectize.jquery.js', 71 | 'test/*.js' 72 | ], 73 | preprocessors: { 74 | 'src/*.js': ['coverage'] 75 | }, 76 | customLaunchers: customLaunchers, 77 | port: 8888, 78 | colors: true, 79 | captureTimeout: 0, 80 | logLevel: config.LOG_INFO, 81 | browsers: browsers, 82 | browserDisconnectTolerance: 2, 83 | browserDisconnectTimeout: 10000, 84 | browserNoActivityTimeout: 120000, 85 | singleRun: true 86 | }); 87 | }; 88 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/selectize.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "selectize", 3 | "version": "0.13.3", 4 | "title": "Selectize.js", 5 | "author": { 6 | "name": "Brian Reavis", 7 | "email": "brian@thirdroute.com", 8 | "url": "http://thirdroute.com" 9 | }, 10 | "keywords": ["select", "ui", "form", "input", "control", "autocomplete", "tagging", "tag"], 11 | "description": "Selectize is a jQuery-based custom