├── .gitignore ├── plugins ├── selectize │ ├── assets │ │ ├── selectize │ │ │ ├── CONTRIBUTING.md │ │ │ ├── .gitignore │ │ │ ├── docs │ │ │ │ ├── selectize-logo.png │ │ │ │ ├── selectize-wordmark.png │ │ │ │ ├── plugins.md │ │ │ │ └── events.md │ │ │ ├── examples │ │ │ │ ├── images │ │ │ │ │ ├── bg.png │ │ │ │ │ ├── check@2x.png │ │ │ │ │ ├── spinner.gif │ │ │ │ │ ├── repo-forked.png │ │ │ │ │ └── repo-source.png │ │ │ │ ├── confirm.html │ │ │ │ ├── js │ │ │ │ │ └── index.js │ │ │ │ ├── dynamic.html │ │ │ │ ├── required.html │ │ │ │ ├── performance.html │ │ │ │ ├── rtl.html │ │ │ │ ├── create-filter.html │ │ │ │ ├── lock.html │ │ │ │ ├── customization.html │ │ │ │ ├── css │ │ │ │ │ └── stylesheet.css │ │ │ │ ├── api.html │ │ │ │ ├── events.html │ │ │ │ ├── github.html │ │ │ │ └── movies.html │ │ │ ├── .browserslistrc │ │ │ ├── .editorconfig │ │ │ ├── dist │ │ │ │ ├── less │ │ │ │ │ ├── plugins │ │ │ │ │ │ ├── optgroup_columns.less │ │ │ │ │ │ ├── drag_drop.less │ │ │ │ │ │ ├── dropdown_header.less │ │ │ │ │ │ └── remove_button.less │ │ │ │ │ ├── selectize.default.less │ │ │ │ │ ├── selectize.legacy.less │ │ │ │ │ └── selectize.bootstrap3.less │ │ │ │ └── scss │ │ │ │ │ ├── plugins │ │ │ │ │ ├── optgroup_columns.scss │ │ │ │ │ ├── drag_drop.scss │ │ │ │ │ ├── dropdown_header.scss │ │ │ │ │ └── remove_button.scss │ │ │ │ │ ├── selectize.default.scss │ │ │ │ │ └── selectize.bootstrap3.scss │ │ │ ├── src │ │ │ │ ├── plugins │ │ │ │ │ ├── optgroup_columns │ │ │ │ │ │ ├── plugin.less │ │ │ │ │ │ ├── plugin.scss │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── drag_drop │ │ │ │ │ │ ├── plugin.less │ │ │ │ │ │ ├── plugin.scss │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── auto_select_on_type │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── dropdown_header │ │ │ │ │ │ ├── plugin.less │ │ │ │ │ │ ├── plugin.scss │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── remove_button │ │ │ │ │ │ ├── plugin.scss │ │ │ │ │ │ ├── plugin.less │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── select_on_focus │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── autofill_disable │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── tag_limit │ │ │ │ │ │ └── plugin.js │ │ │ │ │ ├── auto_position │ │ │ │ │ │ └── plugin.js │ │ │ │ │ └── restore_on_backspace │ │ │ │ │ │ └── plugin.js │ │ │ │ ├── constants.js │ │ │ │ ├── less │ │ │ │ │ ├── .wrapper.css │ │ │ │ │ ├── selectize.default.less │ │ │ │ │ ├── selectize.legacy.less │ │ │ │ │ └── selectize.bootstrap3.less │ │ │ │ ├── .wrapper.js │ │ │ │ ├── contrib │ │ │ │ │ ├── microevent.js │ │ │ │ │ └── highlight.js │ │ │ │ ├── scss │ │ │ │ │ ├── selectize.default.scss │ │ │ │ │ └── selectize.bootstrap3.scss │ │ │ │ ├── defaults.js │ │ │ │ └── selectize.jquery.js │ │ │ ├── SECURITY.md │ │ │ ├── .github │ │ │ │ ├── dependabot.yml │ │ │ │ ├── workflows │ │ │ │ │ ├── UpdateContributors.yml │ │ │ │ │ ├── node.js.yml │ │ │ │ │ ├── stale.yml │ │ │ │ │ └── codeql-analysis.yml │ │ │ │ ├── FUNDING.yml │ │ │ │ └── ISSUE_TEMPLATE.md │ │ │ ├── test │ │ │ │ ├── support │ │ │ │ │ └── base.js │ │ │ │ ├── events_dom.js │ │ │ │ └── xss.js │ │ │ ├── selectize.jquery.json │ │ │ ├── Makefile │ │ │ ├── CONTRIBUTORS.md │ │ │ ├── CHANGELOG.md │ │ │ ├── karma.conf.js │ │ │ └── CODE_OF_CONDUCT.md │ │ └── rex_selectize.js │ ├── lang │ │ └── de_de.lang │ ├── boot.php │ ├── help.php │ ├── pages │ │ ├── index.php │ │ ├── selectize_readme.php │ │ ├── selectize_license.php │ │ └── selectize_changelog.php │ └── package.yml ├── jquery-minicolors │ ├── assets │ │ └── jquery-minicolors │ │ │ ├── .github │ │ │ └── FUNDING.yml │ │ │ ├── jquery.minicolors.png │ │ │ ├── .editorconfig │ │ │ ├── bower.json │ │ │ ├── component.json │ │ │ ├── .eslintrc │ │ │ ├── composer.json │ │ │ ├── README.md │ │ │ ├── jquery-minicolors.js │ │ │ ├── package.json │ │ │ ├── gulpfile.js │ │ │ └── LICENSE.md │ ├── install.php │ ├── boot.php │ ├── help.php │ ├── package.yml │ ├── pages │ │ ├── jquery-minicolors_readme.php │ │ ├── jquery-minicolors_license.php │ │ └── index.php │ └── lang │ │ └── de_de.lang └── bootstrap-datetimepicker │ ├── lang │ └── de_de.lang │ ├── help.php │ ├── assets │ └── bootstrap-datetimepicker │ │ ├── rex_bootstrap-datetimepicker.js │ │ ├── README.md │ │ ├── LICENSE │ │ └── css │ │ └── bootstrap-datetimepicker-standalone.css │ ├── pages │ ├── bootstrap-datetimepicker_less.php │ ├── bootstrap-datetimepicker_scss.php │ ├── bootstrap-datetimepicker_readme.php │ ├── bootstrap-datetimepicker_license.php │ └── index.php │ ├── boot.php │ ├── package.yml │ ├── ytemplates │ └── bootstrap │ │ └── value.datepicker.tpl.php │ └── lib │ └── yform │ └── value │ └── datepicker.php ├── assets └── css │ └── styles.css ├── lang └── de_de.lang ├── boot.php ├── pages ├── info.info.php ├── info.lizenz.php ├── info.changelog.php └── index.php ├── .github └── workflows │ └── publish-to-redaxo.yml ├── package.yml ├── help.php ├── README.md ├── LICENSE.md └── CHANGELOG.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | plugins/.DS_Store 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/css/styles.css: -------------------------------------------------------------------------------- 1 | #ui_tools{border:1px solid transparent} 2 | -------------------------------------------------------------------------------- /plugins/jquery-minicolors/assets/jquery-minicolors/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [claviska] 2 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .DAV 3 | node_modules 4 | bower_components 5 | *.log 6 | .vscode 7 | build -------------------------------------------------------------------------------- /plugins/jquery-minicolors/install.php: -------------------------------------------------------------------------------- 1 | hasConfig()) { 4 | $this->setConfig('for-customizer', 1); 5 | } 6 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/docs/selectize-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/HEAD/plugins/selectize/assets/selectize/docs/selectize-logo.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/HEAD/plugins/selectize/assets/selectize/examples/images/bg.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/docs/selectize-wordmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/HEAD/plugins/selectize/assets/selectize/docs/selectize-wordmark.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/check@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/HEAD/plugins/selectize/assets/selectize/examples/images/check@2x.png -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/HEAD/plugins/selectize/assets/selectize/examples/images/spinner.gif -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/examples/images/repo-forked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/HEAD/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/HEAD/plugins/selectize/assets/selectize/examples/images/repo-source.png -------------------------------------------------------------------------------- /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/jquery-minicolors/assets/jquery-minicolors/jquery.minicolors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/ui_tools/HEAD/plugins/jquery-minicolors/assets/jquery-minicolors/jquery.minicolors.png -------------------------------------------------------------------------------- /plugins/selectize/lang/de_de.lang: -------------------------------------------------------------------------------- 1 | selectize_menu_entry = selectize 2 | selectize_config_title = Einstellungen 3 | selectize_info = Info 4 | selectize_readme = Info 5 | selectize_license = Lizenz 6 | selectize_changelog = Changelog -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /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/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/selectize/boot.php: -------------------------------------------------------------------------------- 1 | getAssetsUrl('selectize/dist/css/selectize.css')); 5 | rex_view::addCssFile($this->getAssetsUrl('selectize/dist/css/selectize.bootstrap3.css')); 6 | rex_view::addJsFile($this->getAssetsUrl('selectize/dist/js/standalone/selectize.min.js')); 7 | rex_view::addJsFile($this->getAssetsUrl('rex_selectize.js')); 8 | } -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /plugins/selectize/help.php: -------------------------------------------------------------------------------- 1 | 12 |

UI Tools selectize.js Plugin

13 | 14 |

15 | Dieses Plugin bindet selectize.js (https://github.com/selectize/selectize.js) ein. 16 |

17 | 18 | -------------------------------------------------------------------------------- /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/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/src/plugins/optgroup_columns/plugin.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/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/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/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 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /plugins/selectize/pages/index.php: -------------------------------------------------------------------------------- 1 |
7 |

8 | .selectize auf einem Input fügt eine Art Tag-Verhalten hinzu, die übergebenen Werte sind per Komma getrennt. 9 |

10 | '; 11 | 12 | $fragment = new rex_fragment(); 13 | $fragment->setVar('title', rex_i18n::rawMsg('selectize_config_title'), false); 14 | $fragment->setVar('body', $body, false); 15 | $title = $fragment->parse('core/page/section.php'); 16 | 17 | echo $title; -------------------------------------------------------------------------------- /plugins/selectize/pages/selectize_readme.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file); 9 | 10 | $fragment = new rex_fragment(); 11 | $fragment->setVar('title', rex_i18n::msg('selectize_info')); 12 | $fragment->setVar('body', $content, false); 13 | echo $fragment->parse('core/page/section.php'); -------------------------------------------------------------------------------- /plugins/selectize/pages/selectize_license.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 9 | 10 | $fragment = new rex_fragment(); 11 | $fragment->setVar('title', rex_i18n::msg('selectize_license')); 12 | $fragment->setVar('body', $content, false); 13 | echo $fragment->parse('core/page/section.php'); 14 | -------------------------------------------------------------------------------- /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/selectize/pages/selectize_changelog.php: -------------------------------------------------------------------------------- 1 | '.$Parsedown->text($file).''; 9 | 10 | $fragment = new rex_fragment(); 11 | $fragment->setVar('title', rex_i18n::msg('selectize_changelog')); 12 | $fragment->setVar('body', $content, false); 13 | echo $fragment->parse('core/page/section.php'); 14 | -------------------------------------------------------------------------------- /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/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/src/plugins/optgroup_columns/plugin.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/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/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/src/plugins/drag_drop/plugin.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/package.yml: -------------------------------------------------------------------------------- 1 | package: ui_tools/selectize 2 | version: '0.2.0' 3 | author: 'Friends Of REDAXO' 4 | supportpage: github.com/FriendsOfREDAXO 5 | 6 | page: 7 | title: 'translate:selectize_menu_entry' 8 | perm: admin[] 9 | subpages: 10 | index: { title: 'translate:selectize_config_title', perm: admin} 11 | selectize_readme: { title: 'translate:selectize_readme', perm: admin} 12 | selectize_changelog: { title: 'translate:selectize_changelog', perm: admin} 13 | selectize_license: { title: 'translate:selectize_license', perm: admin} 14 | -------------------------------------------------------------------------------- /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/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/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/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/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/src/plugins/drag_drop/plugin.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/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/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_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/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/selectize/assets/selectize/src/plugins/auto_select_on_type/plugin.js: -------------------------------------------------------------------------------- 1 | Selectize.define('auto_select_on_type', function(options) { 2 | var self = this; 3 | 4 | self.onBlur = (function() { 5 | var originalBlur = self.onBlur; 6 | return function(e) { 7 | var $matchedItem = self.getFirstItemMatchedByTextContent(self.lastValue, true); 8 | if (typeof $matchedItem.attr('data-value') !== 'undefined' && self.getValue() !== $matchedItem.attr('data-value')) 9 | { 10 | self.setValue($matchedItem.attr('data-value')); 11 | } 12 | return originalBlur.apply(this, arguments); 13 | } 14 | }()); 15 | }); 16 | -------------------------------------------------------------------------------- /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/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/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/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/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/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/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/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/src/plugins/dropdown_header/plugin.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/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/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/src/plugins/dropdown_header/plugin.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/src/constants.js: -------------------------------------------------------------------------------- 1 | var IS_MAC = /Mac/.test(navigator.userAgent); 2 | 3 | var KEY_A = 65; 4 | var KEY_COMMA = 188; 5 | var KEY_RETURN = 13; 6 | var KEY_ESC = 27; 7 | var KEY_LEFT = 37; 8 | var KEY_UP = 38; 9 | var KEY_P = 80; 10 | var KEY_RIGHT = 39; 11 | var KEY_DOWN = 40; 12 | var KEY_N = 78; 13 | var KEY_BACKSPACE = 8; 14 | var KEY_DELETE = 46; 15 | var KEY_SHIFT = 16; 16 | var KEY_CMD = IS_MAC ? 91 : 17; 17 | var KEY_CTRL = IS_MAC ? 18 : 17; 18 | var KEY_TAB = 9; 19 | 20 | var TAG_SELECT = 1; 21 | var TAG_INPUT = 2; 22 | 23 | // for now, android support in general is too spotty to support validity 24 | var SUPPORTS_VALIDITY_API = !/android/i.test(window.navigator.userAgent) && !!document.createElement('input').validity; 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 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/src/less/.wrapper.css: -------------------------------------------------------------------------------- 1 | /** 2 | * selectize.css (v@@version) 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 | @@css -------------------------------------------------------------------------------- /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/selectize/assets/selectize/test/support/base.js: -------------------------------------------------------------------------------- 1 | window.expect = chai.expect; 2 | window.assert = chai.assert; 3 | window.has_focus = function(elem) { 4 | return !!(elem === document.activeElement); 5 | }; 6 | 7 | var sandbox = document.createElement('form'); 8 | document.body.appendChild(sandbox); 9 | 10 | window.setup_test = function(html, options, callback) { 11 | if (window.test_last) window.test_last.teardown(); 12 | 13 | var $select = $(html).appendTo(sandbox).selectize(options); 14 | var instance = $select[0].selectize; 15 | var test = window.test_last = { 16 | $select: $select, 17 | callback: callback, 18 | selectize: instance, 19 | teardown: function() { 20 | instance.destroy(); 21 | $select.remove(); 22 | window.test_last = null; 23 | } 24 | }; 25 | 26 | return test; 27 | }; 28 | 29 | after(function() { 30 | if (window.test_last) { 31 | window.test_last.teardown(); 32 | } 33 | }); 34 | 35 | $(sandbox).on('submit', function(e) { e.preventDefault(); }); -------------------------------------------------------------------------------- /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/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/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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 28 | 29 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/src/contrib/microevent.js: -------------------------------------------------------------------------------- 1 | /** 2 | * MicroEvent - to make any js object an event emitter 3 | * 4 | * - pure javascript - server compatible, browser compatible 5 | * - don't rely on the browser doms 6 | * - super simple - you get it immediately, no mystery, no magic involved 7 | * 8 | * @author Jerome Etienne (https://github.com/jeromeetienne) 9 | */ 10 | 11 | var MicroEvent = function() {}; 12 | MicroEvent.prototype = { 13 | on: function(event, fct){ 14 | this._events = this._events || {}; 15 | this._events[event] = this._events[event] || []; 16 | this._events[event].push(fct); 17 | }, 18 | off: function(event, fct){ 19 | var n = arguments.length; 20 | if (n === 0) return delete this._events; 21 | if (n === 1) return delete this._events[event]; 22 | 23 | this._events = this._events || {}; 24 | if (event in this._events === false) return; 25 | this._events[event].splice(this._events[event].indexOf(fct), 1); 26 | }, 27 | trigger: function(event /* , args... */){ 28 | this._events = this._events || {}; 29 | if (event in this._events === false) return; 30 | for (var i = 0; i < this._events[event].length; i++){ 31 | this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1)); 32 | } 33 | } 34 | }; 35 | 36 | /** 37 | * Mixin will delegate all MicroEvent.js function in the destination object. 38 | * 39 | * - MicroEvent.mixin(Foobar) will make Foobar able to use MicroEvent 40 | * 41 | * @param {object} the object which will support MicroEvent 42 | */ 43 | MicroEvent.mixin = function(destObject){ 44 | var props = ['on', 'off', 'trigger']; 45 | for (var i = 0; i < props.length; i++){ 46 | destObject.prototype[props[i]] = MicroEvent.prototype[props[i]]; 47 | } 48 | }; -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/test/events_dom.js: -------------------------------------------------------------------------------- 1 | describe('DOM Events', function() { 2 | describe('"change"', function() { 3 | it('should be triggered once by addItem()', function(done) { 4 | var test = setup_test('', { 25 | valueField: 'value', 26 | labelField: 'value', 27 | options: [ 28 | {value: 'a'}, 29 | {value: 'b'}, 30 | ], 31 | items: ['a','b'] 32 | }); 33 | 34 | var counter = 0; 35 | test.$select.on('change', function() { counter++; }); 36 | test.selectize.removeItem('b'); 37 | 38 | window.setTimeout(function() { 39 | expect(counter).to.be.equal(1); 40 | done(); 41 | }, 0); 42 | }); 43 | it('should be triggered once by clear()', function(done) { 44 | var test = setup_test(' 28 | 29 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /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/test/xss.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | 3 | window.setup_xss_test = function(html, options, done) { 4 | window.xss = function() { 5 | window.clearTimeout(timeout); 6 | complete(new Error('Exploit executed')); 7 | }; 8 | 9 | var test = setup_test(html, options); 10 | var complete = function(err) { 11 | window.xss = function() {}; 12 | done(err); 13 | }; 14 | var timeout = window.setTimeout(complete, 75); 15 | return test; 16 | }; 17 | 18 | describe('XSS', function() { 19 | 20 | describe('Raw HTML in original input value', function() { 21 | it('should not trigger exploit', function(done) { 22 | setup_xss_test('', {}, done); 23 | }); 24 | }); 25 | 26 | describe('Raw HTML in optgroup label', function() { 27 | it('should not trigger exploit', function(done) { 28 | var test = setup_xss_test('', {}, done); 29 | test.selectize.refreshOptions(); 30 | test.selectize.open(); 31 | }); 32 | }); 33 | 34 | describe('Raw HTML in option label should not trigger exploit', function() { 35 | it('should not trigger exploit', function(done) { 36 | setup_xss_test('', { 37 | options: [ 38 | {value: '1', label: ''} 39 | ], 40 | items: ['1'], 41 | labelField: 'label', 42 | valueField: 'value' 43 | }, done); 44 | }); 45 | }); 46 | 47 | describe('Raw HTML in option value should not trigger exploit', function() { 48 | it('should not trigger exploit', function(done) { 49 | setup_xss_test('', { 50 | options: [ 51 | {value: '', label: '1'} 52 | ], 53 | items: [''], 54 | labelField: 'label', 55 | valueField: 'value' 56 | }, done); 57 | }); 58 | }); 59 | }); 60 | 61 | })(); -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/src/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/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/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/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/src/contrib/highlight.js: -------------------------------------------------------------------------------- 1 | /** 2 | * highlight v3 | MIT license | Johann Burkard 3 | * Highlights arbitrary terms in a node. 4 | * 5 | * - Modified by Marshal 2011-6-24 (added regex) 6 | * - Modified by Brian Reavis 2012-8-27 (cleanup) 7 | */ 8 | 9 | var highlight = function($element, pattern) { 10 | if (typeof pattern === 'string' && !pattern.length) return; 11 | var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern; 12 | 13 | var highlight = function(node) { 14 | var skip = 0; 15 | // Wrap matching part of text node with highlighting , e.g. 16 | // Soccer -> Soccer for regex = /soc/i 17 | if (node.nodeType === 3) { 18 | var pos = node.data.search(regex); 19 | if (pos >= 0 && node.data.length > 0) { 20 | var match = node.data.match(regex); 21 | var spannode = document.createElement('span'); 22 | spannode.className = 'highlight'; 23 | var middlebit = node.splitText(pos); 24 | var endbit = middlebit.splitText(match[0].length); 25 | var middleclone = middlebit.cloneNode(true); 26 | spannode.appendChild(middleclone); 27 | middlebit.parentNode.replaceChild(spannode, middlebit); 28 | skip = 1; 29 | } 30 | } 31 | // Recurse element node, looking for child text nodes to highlight, unless element 32 | // is childless, 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/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/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/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/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/src/less/selectize.legacy.less: -------------------------------------------------------------------------------- 1 | /** 2 | * selectize.css (v@@version) 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/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/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/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/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/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/selectize/assets/selectize/src/plugins/optgroup_columns/plugin.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Plugin: "optgroup_columns" (selectize.js) 3 | * Copyright (c) 2013 Simon Hewitt & 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 Simon Hewitt 16 | */ 17 | 18 | Selectize.define('optgroup_columns', function(options) { 19 | var self = this; 20 | 21 | options = $.extend({ 22 | equalizeWidth : true, 23 | equalizeHeight : true 24 | }, options); 25 | 26 | this.getAdjacentOption = function($option, direction) { 27 | var $options = $option.closest('[data-group]').find('[data-selectable]'); 28 | var index = $options.index($option) + direction; 29 | 30 | return index >= 0 && index < $options.length ? $options.eq(index) : $(); 31 | }; 32 | 33 | this.onKeyDown = (function() { 34 | var original = self.onKeyDown; 35 | return function(e) { 36 | var index, $option, $options, $optgroup; 37 | 38 | if (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) { 39 | self.ignoreHover = true; 40 | $optgroup = this.$activeOption.closest('[data-group]'); 41 | index = $optgroup.find('[data-selectable]').index(this.$activeOption); 42 | 43 | if(e.keyCode === KEY_LEFT) { 44 | $optgroup = $optgroup.prev('[data-group]'); 45 | } else { 46 | $optgroup = $optgroup.next('[data-group]'); 47 | } 48 | 49 | $options = $optgroup.find('[data-selectable]'); 50 | $option = $options.eq(Math.min($options.length - 1, index)); 51 | if ($option.length) { 52 | this.setActiveOption($option); 53 | } 54 | return; 55 | } 56 | 57 | return original.apply(this, arguments); 58 | }; 59 | })(); 60 | 61 | var getScrollbarWidth = function() { 62 | var div; 63 | var width = getScrollbarWidth.width; 64 | var doc = document; 65 | 66 | if (typeof width === 'undefined') { 67 | div = doc.createElement('div'); 68 | div.innerHTML = '
'; 69 | div = div.firstChild; 70 | doc.body.appendChild(div); 71 | width = getScrollbarWidth.width = div.offsetWidth - div.clientWidth; 72 | doc.body.removeChild(div); 73 | } 74 | return width; 75 | }; 76 | 77 | var equalizeSizes = function() { 78 | var i, n, height_max, width, width_last, width_parent, $optgroups; 79 | 80 | $optgroups = $('[data-group]', self.$dropdown_content); 81 | n = $optgroups.length; 82 | if (!n || !self.$dropdown_content.width()) return; 83 | 84 | if (options.equalizeHeight) { 85 | height_max = 0; 86 | for (i = 0; i < n; i++) { 87 | height_max = Math.max(height_max, $optgroups.eq(i).height()); 88 | } 89 | $optgroups.css({height: height_max}); 90 | } 91 | 92 | if (options.equalizeWidth) { 93 | width_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth(); 94 | width = Math.round(width_parent / n); 95 | $optgroups.css({width: width}); 96 | if (n > 1) { 97 | width_last = width_parent - width * (n - 1); 98 | $optgroups.eq(n - 1).css({width: width_last}); 99 | } 100 | } 101 | }; 102 | 103 | if (options.equalizeHeight || options.equalizeWidth) { 104 | hook.after(this, 'positionDropdown', equalizeSizes); 105 | hook.after(this, 'refreshOptions', equalizeSizes); 106 | } 107 | 108 | 109 | }); -------------------------------------------------------------------------------- /plugins/selectize/assets/selectize/src/plugins/remove_button/plugin.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Plugin: "remove_button" (selectize.js) 3 | * Copyright (c) 2013 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 | */ 17 | 18 | Selectize.define('remove_button', function(options) { 19 | options = $.extend({ 20 | label : '×', 21 | title : 'Remove', 22 | className : 'remove', 23 | append : true 24 | }, options); 25 | 26 | var singleClose = function(thisRef, options) { 27 | 28 | options.className = 'remove-single'; 29 | 30 | var self = thisRef; 31 | var html = '' + options.label + ''; 32 | 33 | /** 34 | * Appends an element as a child (with raw HTML). 35 | * 36 | * @param {string} html_container 37 | * @param {string} html_element 38 | * @return {string} 39 | */ 40 | var append = function(html_container, html_element) { 41 | return $('').append(html_container) 42 | .append(html_element); 43 | }; 44 | 45 | thisRef.setup = (function() { 46 | var original = self.setup; 47 | return function() { 48 | // override the item rendering method to add the button to each 49 | if (options.append) { 50 | var id = $(self.$input.context).attr('id'); 51 | var selectizer = $('#'+id); 52 | 53 | var render_item = self.settings.render.item; 54 | self.settings.render.item = function(data) { 55 | return append(render_item.apply(thisRef, arguments), html); 56 | }; 57 | } 58 | 59 | original.apply(thisRef, arguments); 60 | 61 | // add event listener 62 | thisRef.$control.on('click', '.' + options.className, function(e) { 63 | e.preventDefault(); 64 | if (self.isLocked) return; 65 | 66 | self.clear(); 67 | }); 68 | 69 | }; 70 | })(); 71 | }; 72 | 73 | var multiClose = function(thisRef, options) { 74 | 75 | var self = thisRef; 76 | var html = '' + options.label + ''; 77 | 78 | /** 79 | * Appends an element as a child (with raw HTML). 80 | * 81 | * @param {string} html_container 82 | * @param {string} html_element 83 | * @return {string} 84 | */ 85 | var append = function(html_container, html_element) { 86 | var pos = html_container.search(/(<\/[^>]+>\s*)$/); 87 | return html_container.substring(0, pos) + html_element + html_container.substring(pos); 88 | }; 89 | 90 | thisRef.setup = (function() { 91 | var original = self.setup; 92 | return function() { 93 | // override the item rendering method to add the button to each 94 | if (options.append) { 95 | var render_item = self.settings.render.item; 96 | self.settings.render.item = function(data) { 97 | return append(render_item.apply(thisRef, arguments), html); 98 | }; 99 | } 100 | 101 | original.apply(thisRef, arguments); 102 | 103 | // add event listener 104 | thisRef.$control.on('click', '.' + options.className, function(e) { 105 | e.preventDefault(); 106 | if (self.isLocked) return; 107 | 108 | var $item = $(e.currentTarget).parent(); 109 | self.setActiveItem($item); 110 | if (self.deleteSelection()) { 111 | self.setCaret(self.items.length); 112 | } 113 | return false; 114 | }); 115 | 116 | }; 117 | })(); 118 | }; 119 | 120 | if (this.settings.mode === 'single') { 121 | singleClose(this, options); 122 | return; 123 | } else { 124 | multiClose(this, options); 125 | } 126 | }); 127 | -------------------------------------------------------------------------------- /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/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/src/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/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/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/src/less/selectize.bootstrap3.less: -------------------------------------------------------------------------------- 1 | /** 2 | * selectize.css (v@@version) 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/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/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/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/src/selectize.jquery.js: -------------------------------------------------------------------------------- 1 | $.fn.selectize = function(settings_user) { 2 | var defaults = $.fn.selectize.defaults; 3 | var settings = $.extend({}, defaults, settings_user); 4 | var attr_data = settings.dataAttr; 5 | var field_label = settings.labelField; 6 | var field_value = settings.valueField; 7 | var field_disabled = settings.disabledField; 8 | var field_optgroup = settings.optgroupField; 9 | var field_optgroup_label = settings.optgroupLabelField; 10 | var field_optgroup_value = settings.optgroupValueField; 11 | 12 | /** 13 | * Initializes selectize from a element. 14 | * 15 | * @param {object} $input 16 | * @param {object} settings_element 17 | */ 18 | var init_textbox = function($input, settings_element) { 19 | var i, n, values, option; 20 | 21 | var data_raw = $input.attr(attr_data); 22 | 23 | if (!data_raw) { 24 | var value = $.trim($input.val() || ''); 25 | if (!settings.allowEmptyOption && !value.length) return; 26 | values = value.split(settings.delimiter); 27 | for (i = 0, n = values.length; i < n; i++) { 28 | option = {}; 29 | option[field_label] = values[i]; 30 | option[field_value] = values[i]; 31 | settings_element.options.push(option); 32 | } 33 | settings_element.items = values; 34 | } else { 35 | settings_element.options = JSON.parse(data_raw); 36 | for (i = 0, n = settings_element.options.length; i < n; i++) { 37 | settings_element.items.push(settings_element.options[i][field_value]); 38 | } 39 | } 40 | }; 41 | 42 | /** 43 | * Initializes selectize from a