├── .editorconfig ├── .github ├── settings.yml ├── stale.yml └── workflows │ ├── github-release-actions.yml │ └── github-stale-actions.yml ├── .gitignore ├── .travis.yml.notusedanymore ├── 3rdPartySoftware ├── bootstrap-datepicker │ ├── bootstrap-datepicker.css │ ├── bootstrap-datepicker.js │ ├── bootstrap-datepicker.min.css │ └── bootstrap-datepicker.min.js ├── datetimepicker-2.5.20 │ ├── .travis.yml │ ├── MIT-LICENSE.txt │ ├── README.md │ ├── bower.json │ ├── datetimepicker.jquery.json │ ├── doc.tpl │ ├── index.html │ ├── jquery.datetimepicker.css │ ├── jquery.datetimepicker.js │ ├── jquery.js │ ├── karma.conf.js │ ├── package-lock.json │ ├── package.json │ ├── screen │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.1.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ └── 6.png │ └── tests │ │ ├── app.css │ │ ├── index.html │ │ ├── input_in_container_fixed_to_bottom_of_viewport.html │ │ ├── input_in_container_fixed_to_top_of_viewport.html │ │ └── tests │ │ ├── bootstrap.js │ │ ├── destroy.js │ │ ├── events.js │ │ ├── init.js │ │ ├── methods.js │ │ └── options.js ├── pick-a-color-master │ ├── .gitignore │ ├── Gruntfile.js │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── package.json │ ├── pick-a-color.jquery.json │ ├── sample.html │ └── src │ │ ├── js │ │ └── pick-a-color.js │ │ └── less │ │ ├── bootstrap-src │ │ ├── mixins.less │ │ └── variables.less │ │ └── pick-a-color.less ├── quill │ ├── examples │ │ ├── bubble.html │ │ ├── full.html │ │ └── snow.html │ ├── quill.bubble.css │ ├── quill.core.css │ ├── quill.core.js │ ├── quill.js │ ├── quill.min.js │ ├── quill.min.js.map │ └── quill.snow.css ├── select2-4.0.10 │ ├── .editorconfig │ ├── .github │ │ ├── CONTRIBUTING.md │ │ ├── ISSUE_TEMPLATE.md │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ └── stale.yml │ ├── .gitignore │ ├── .jshintignore │ ├── .jshintrc │ ├── .travis.yml │ ├── CHANGELOG.md │ ├── Gruntfile.js │ ├── LICENSE.md │ ├── README.md │ ├── bower.json │ ├── component.json │ ├── composer.json │ ├── docs │ │ ├── README.md │ │ ├── announcements-4.0.html │ │ ├── community.html │ │ ├── examples.html │ │ ├── index.html │ │ ├── options-old.html │ │ └── options.html │ ├── package.json │ ├── src │ │ ├── js │ │ │ ├── banner.end.js │ │ │ ├── banner.start.js │ │ │ ├── jquery.mousewheel.shim.js │ │ │ ├── jquery.select2.js │ │ │ ├── jquery.shim.js │ │ │ ├── select2 │ │ │ │ ├── compat │ │ │ │ │ ├── containerCss.js │ │ │ │ │ ├── dropdownCss.js │ │ │ │ │ ├── initSelection.js │ │ │ │ │ ├── inputData.js │ │ │ │ │ ├── matcher.js │ │ │ │ │ ├── query.js │ │ │ │ │ └── utils.js │ │ │ │ ├── core.js │ │ │ │ ├── data │ │ │ │ │ ├── ajax.js │ │ │ │ │ ├── array.js │ │ │ │ │ ├── base.js │ │ │ │ │ ├── maximumInputLength.js │ │ │ │ │ ├── maximumSelectionLength.js │ │ │ │ │ ├── minimumInputLength.js │ │ │ │ │ ├── select.js │ │ │ │ │ ├── tags.js │ │ │ │ │ └── tokenizer.js │ │ │ │ ├── defaults.js │ │ │ │ ├── diacritics.js │ │ │ │ ├── dropdown.js │ │ │ │ ├── dropdown │ │ │ │ │ ├── attachBody.js │ │ │ │ │ ├── attachContainer.js │ │ │ │ │ ├── closeOnSelect.js │ │ │ │ │ ├── hidePlaceholder.js │ │ │ │ │ ├── infiniteScroll.js │ │ │ │ │ ├── minimumResultsForSearch.js │ │ │ │ │ ├── search.js │ │ │ │ │ ├── selectOnClose.js │ │ │ │ │ └── stopPropagation.js │ │ │ │ ├── i18n │ │ │ │ │ ├── af.js │ │ │ │ │ ├── ar.js │ │ │ │ │ ├── az.js │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── bn.js │ │ │ │ │ ├── bs.js │ │ │ │ │ ├── ca.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── dsb.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── eu.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── gl.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hi.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── hsb.js │ │ │ │ │ ├── hu.js │ │ │ │ │ ├── hy.js │ │ │ │ │ ├── id.js │ │ │ │ │ ├── is.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── ja.js │ │ │ │ │ ├── ka.js │ │ │ │ │ ├── km.js │ │ │ │ │ ├── ko.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── ms.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── ne.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── ps.js │ │ │ │ │ ├── pt-BR.js │ │ │ │ │ ├── pt.js │ │ │ │ │ ├── ro.js │ │ │ │ │ ├── ru.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── sl.js │ │ │ │ │ ├── sq.js │ │ │ │ │ ├── sr-Cyrl.js │ │ │ │ │ ├── sr.js │ │ │ │ │ ├── sv.js │ │ │ │ │ ├── th.js │ │ │ │ │ ├── tk.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── vi.js │ │ │ │ │ ├── zh-CN.js │ │ │ │ │ └── zh-TW.js │ │ │ │ ├── keys.js │ │ │ │ ├── options.js │ │ │ │ ├── results.js │ │ │ │ ├── selection │ │ │ │ │ ├── allowClear.js │ │ │ │ │ ├── base.js │ │ │ │ │ ├── clickMask.js │ │ │ │ │ ├── eventRelay.js │ │ │ │ │ ├── multiple.js │ │ │ │ │ ├── placeholder.js │ │ │ │ │ ├── search.js │ │ │ │ │ ├── single.js │ │ │ │ │ └── stopPropagation.js │ │ │ │ ├── translation.js │ │ │ │ └── utils.js │ │ │ ├── wrapper.end.js │ │ │ └── wrapper.start.js │ │ └── scss │ │ │ ├── _dropdown.scss │ │ │ ├── _multiple.scss │ │ │ ├── _single.scss │ │ │ ├── core.scss │ │ │ ├── mixins │ │ │ └── _gradients.scss │ │ │ └── theme │ │ │ ├── classic │ │ │ ├── _defaults.scss │ │ │ ├── _multiple.scss │ │ │ ├── _single.scss │ │ │ └── layout.scss │ │ │ └── default │ │ │ ├── _multiple.scss │ │ │ ├── _single.scss │ │ │ └── layout.scss │ └── tests │ │ ├── a11y │ │ └── selection-tests.js │ │ ├── data │ │ ├── array-tests.js │ │ ├── base-tests.js │ │ ├── inputData-tests.js │ │ ├── maximumInputLength-tests.js │ │ ├── maximumSelectionLength-tests.js │ │ ├── minimumInputLength-tests.js │ │ ├── select-tests.js │ │ ├── tags-tests.js │ │ └── tokenizer-tests.js │ │ ├── dropdown │ │ ├── dropdownCss-tests.js │ │ ├── dropdownParent-tests.js │ │ ├── positioning-tests.js │ │ ├── search-a11y-tests.js │ │ ├── selectOnClose-tests.js │ │ └── stopPropagation-tests.js │ │ ├── helpers.js │ │ ├── integration-jq1.html │ │ ├── integration-jq2.html │ │ ├── integration-jq3.html │ │ ├── integration │ │ ├── dom-changes.js │ │ ├── jquery-calls.js │ │ └── select2-methods.js │ │ ├── options │ │ ├── ajax-tests.js │ │ ├── data-tests.js │ │ ├── deprecated-tests.js │ │ ├── translation-tests.js │ │ └── width-tests.js │ │ ├── results │ │ ├── a11y-tests.js │ │ ├── focusing-tests.js │ │ ├── infiniteScroll-tests.js │ │ └── option-tests.js │ │ ├── selection │ │ ├── allowClear-tests.js │ │ ├── containerCss-tests.js │ │ ├── focusing-tests.js │ │ ├── multiple-tests.js │ │ ├── placeholder-tests.js │ │ ├── search-a11y-tests.js │ │ ├── search-placeholder-tests.js │ │ ├── search-tests.js │ │ ├── single-tests.js │ │ └── stopPropagation-tests.js │ │ ├── unit-jq1.html │ │ ├── unit-jq2.html │ │ ├── unit-jq3.html │ │ ├── utils │ │ ├── data-tests.js │ │ ├── decorator-tests.js │ │ └── escapeMarkup-tests.js │ │ └── vendor │ │ ├── jquery-1.7.2.js │ │ ├── jquery-2.2.4.js │ │ ├── jquery-3.4.1.js │ │ ├── qunit-1.23.1.css │ │ └── qunit-1.23.1.js ├── select2-4.0.13 │ ├── .editorconfig │ ├── .github │ │ ├── CONTRIBUTING.md │ │ ├── FUNDING.yml │ │ ├── ISSUE_TEMPLATE.md │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ ├── stale.yml │ │ └── workflows │ │ │ ├── docs-deploy.yml │ │ │ ├── main.yml │ │ │ └── package-deploy.yml │ ├── .gitignore │ ├── .jshintignore │ ├── .jshintrc │ ├── CHANGELOG.md │ ├── Gruntfile.js │ ├── LICENSE.md │ ├── README.md │ ├── bower.json │ ├── component.json │ ├── composer.json │ ├── docs │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── accounts │ │ │ └── .gitkeep │ │ ├── assets │ │ │ └── rtfm-screenshot.png │ │ ├── blueprints.yaml │ │ ├── config │ │ │ ├── plugins │ │ │ │ ├── anchors.yaml │ │ │ │ ├── highlight.yaml │ │ │ │ └── simplesearch.yaml │ │ │ ├── site.yaml │ │ │ └── system.yaml │ │ ├── data │ │ │ └── .gitkeep │ │ ├── localhost │ │ │ └── config │ │ │ │ ├── security.yaml │ │ │ │ └── system.yaml │ │ ├── pages │ │ │ ├── 01.getting-started │ │ │ │ ├── 01.installation │ │ │ │ │ └── docs.md │ │ │ │ ├── 02.basic-usage │ │ │ │ │ └── docs.md │ │ │ │ ├── 03.builds-and-modules │ │ │ │ │ └── docs.md │ │ │ │ └── chapter.md │ │ │ ├── 02.troubleshooting │ │ │ │ ├── 01.getting-help │ │ │ │ │ └── docs.md │ │ │ │ ├── 02.common-problems │ │ │ │ │ └── docs.md │ │ │ │ └── chapter.md │ │ │ ├── 03.configuration │ │ │ │ ├── 01.options-api │ │ │ │ │ └── docs.md │ │ │ │ ├── 02.defaults │ │ │ │ │ └── docs.md │ │ │ │ ├── 03.data-attributes │ │ │ │ │ └── docs.md │ │ │ │ └── docs.md │ │ │ ├── 04.appearance │ │ │ │ └── docs.md │ │ │ ├── 05.options │ │ │ │ └── docs.md │ │ │ ├── 06.data-sources │ │ │ │ ├── 01.formats │ │ │ │ │ └── docs.md │ │ │ │ ├── 02.ajax │ │ │ │ │ └── docs.md │ │ │ │ ├── 03.arrays │ │ │ │ │ └── docs.md │ │ │ │ └── chapter.md │ │ │ ├── 07.dropdown │ │ │ │ └── docs.md │ │ │ ├── 08.selections │ │ │ │ └── docs.md │ │ │ ├── 09.tagging │ │ │ │ └── docs.md │ │ │ ├── 10.placeholders │ │ │ │ └── docs.md │ │ │ ├── 11.searching │ │ │ │ └── docs.md │ │ │ ├── 12.programmatic-control │ │ │ │ ├── 01.add-select-clear-items │ │ │ │ │ └── docs.md │ │ │ │ ├── 02.retrieving-selections │ │ │ │ │ └── docs.md │ │ │ │ ├── 03.methods │ │ │ │ │ └── docs.md │ │ │ │ ├── 04.events │ │ │ │ │ └── docs.md │ │ │ │ └── chapter.md │ │ │ ├── 13.i18n │ │ │ │ └── docs.md │ │ │ ├── 14.advanced │ │ │ │ ├── 01.adapters-and-decorators │ │ │ │ │ └── docs.md │ │ │ │ ├── 02.default-adapters │ │ │ │ │ ├── 01.selection │ │ │ │ │ │ └── docs.md │ │ │ │ │ ├── 02.array │ │ │ │ │ │ └── docs.md │ │ │ │ │ ├── 03.ajax │ │ │ │ │ │ └── docs.md │ │ │ │ │ ├── 04.data │ │ │ │ │ │ └── docs.md │ │ │ │ │ ├── 05.results │ │ │ │ │ │ └── docs.md │ │ │ │ │ ├── 06.dropdown │ │ │ │ │ │ └── docs.md │ │ │ │ │ └── docs.md │ │ │ │ └── chapter.md │ │ │ ├── 15.upgrading │ │ │ │ ├── 01.new-in-40 │ │ │ │ │ └── docs.md │ │ │ │ ├── 02.migrating-from-35 │ │ │ │ │ └── docs.md │ │ │ │ └── chapter.md │ │ │ └── images │ │ │ │ ├── flags │ │ │ │ ├── ak.png │ │ │ │ ├── al.png │ │ │ │ ├── ar.png │ │ │ │ ├── az.png │ │ │ │ ├── ca.png │ │ │ │ ├── co.png │ │ │ │ ├── ct.png │ │ │ │ ├── de.png │ │ │ │ ├── fl.png │ │ │ │ ├── ga.png │ │ │ │ ├── hi.png │ │ │ │ ├── ia.png │ │ │ │ ├── id.png │ │ │ │ ├── il.png │ │ │ │ ├── in.png │ │ │ │ ├── ks.png │ │ │ │ ├── ky.png │ │ │ │ ├── la.png │ │ │ │ ├── ma.png │ │ │ │ ├── md.png │ │ │ │ ├── me.png │ │ │ │ ├── mi.png │ │ │ │ ├── mn.png │ │ │ │ ├── mo.png │ │ │ │ ├── ms.png │ │ │ │ ├── mt.png │ │ │ │ ├── nc.png │ │ │ │ ├── nd.png │ │ │ │ ├── ne.png │ │ │ │ ├── nh.png │ │ │ │ ├── nj.png │ │ │ │ ├── nm.png │ │ │ │ ├── nv.png │ │ │ │ ├── ny.png │ │ │ │ ├── oh.png │ │ │ │ ├── ok.png │ │ │ │ ├── or.png │ │ │ │ ├── pa.png │ │ │ │ ├── ri.png │ │ │ │ ├── sc.png │ │ │ │ ├── sd.png │ │ │ │ ├── tn.png │ │ │ │ ├── tx.png │ │ │ │ ├── ut.png │ │ │ │ ├── va.png │ │ │ │ ├── vt.png │ │ │ │ ├── wa.png │ │ │ │ ├── wi.png │ │ │ │ ├── wv.png │ │ │ │ └── wy.png │ │ │ │ └── logo.png │ │ ├── plugins │ │ │ ├── .gitkeep │ │ │ ├── anchors │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── anchors.php │ │ │ │ ├── anchors.yaml │ │ │ │ ├── blueprints.yaml │ │ │ │ └── js │ │ │ │ │ └── anchor.min.js │ │ │ ├── breadcrumbs │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── assets │ │ │ │ │ └── readme_1.png │ │ │ │ ├── blueprints.yaml │ │ │ │ ├── breadcrumbs.php │ │ │ │ ├── breadcrumbs.yaml │ │ │ │ ├── classes │ │ │ │ │ └── breadcrumbs.php │ │ │ │ ├── css │ │ │ │ │ └── breadcrumbs.css │ │ │ │ └── templates │ │ │ │ │ └── partials │ │ │ │ │ └── breadcrumbs.html.twig │ │ │ ├── error │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── assets │ │ │ │ │ └── readme_1.png │ │ │ │ ├── blueprints.yaml │ │ │ │ ├── cli │ │ │ │ │ └── LogCommand.php │ │ │ │ ├── error.php │ │ │ │ ├── error.yaml │ │ │ │ ├── languages.yaml │ │ │ │ ├── pages │ │ │ │ │ └── error.md │ │ │ │ └── templates │ │ │ │ │ ├── error.html.twig │ │ │ │ │ └── error.json.twig │ │ │ ├── highlight │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── assets │ │ │ │ │ └── readme_1.png │ │ │ │ ├── blueprints.yaml │ │ │ │ ├── css │ │ │ │ │ ├── agate.css │ │ │ │ │ ├── androidstudio.css │ │ │ │ │ ├── arduino-light.css │ │ │ │ │ ├── arta.css │ │ │ │ │ ├── ascetic.css │ │ │ │ │ ├── atelier-cave.dark.css │ │ │ │ │ ├── atelier-cave.light.css │ │ │ │ │ ├── atelier-dune.dark.css │ │ │ │ │ ├── atelier-dune.light.css │ │ │ │ │ ├── atelier-estuary.dark.css │ │ │ │ │ ├── atelier-estuary.light.css │ │ │ │ │ ├── atelier-forest.dark.css │ │ │ │ │ ├── atelier-forest.light.css │ │ │ │ │ ├── atelier-heath.dark.css │ │ │ │ │ ├── atelier-heath.light.css │ │ │ │ │ ├── atelier-lakeside.dark.css │ │ │ │ │ ├── atelier-lakeside.light.css │ │ │ │ │ ├── atelier-plateau.dark.css │ │ │ │ │ ├── atelier-plateau.light.css │ │ │ │ │ ├── atelier-savanna.dark.css │ │ │ │ │ ├── atelier-savanna.light.css │ │ │ │ │ ├── atelier-seaside.dark.css │ │ │ │ │ ├── atelier-seaside.light.css │ │ │ │ │ ├── atelier-sulphurpool.dark.css │ │ │ │ │ ├── atelier-sulphurpool.light.css │ │ │ │ │ ├── brown-paper.css │ │ │ │ │ ├── codepen-embed.css │ │ │ │ │ ├── color-brewer.css │ │ │ │ │ ├── dark.css │ │ │ │ │ ├── darkula.css │ │ │ │ │ ├── default.css │ │ │ │ │ ├── docco.css │ │ │ │ │ ├── far.css │ │ │ │ │ ├── foundation.css │ │ │ │ │ ├── github-gist.css │ │ │ │ │ ├── github.css │ │ │ │ │ ├── googlecode.css │ │ │ │ │ ├── grayscale.css │ │ │ │ │ ├── hopscotch.css │ │ │ │ │ ├── hybrid.css │ │ │ │ │ ├── idea.css │ │ │ │ │ ├── ir-black.css │ │ │ │ │ ├── kimbie.dark.css │ │ │ │ │ ├── kimbie.light.css │ │ │ │ │ ├── learn.css │ │ │ │ │ ├── magula.css │ │ │ │ │ ├── mono-blue.css │ │ │ │ │ ├── monokai-sublime.css │ │ │ │ │ ├── monokai.css │ │ │ │ │ ├── obsidian.css │ │ │ │ │ ├── paraiso-dark.css │ │ │ │ │ ├── paraiso-light.css │ │ │ │ │ ├── paraiso.dark.css │ │ │ │ │ ├── paraiso.light.css │ │ │ │ │ ├── pojoaque.css │ │ │ │ │ ├── railscasts.css │ │ │ │ │ ├── rainbow.css │ │ │ │ │ ├── school-book.css │ │ │ │ │ ├── solarized-dark.css │ │ │ │ │ ├── solarized-light.css │ │ │ │ │ ├── sunburst.css │ │ │ │ │ ├── tomorrow-night-blue.css │ │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ │ ├── tomorrow-night.css │ │ │ │ │ ├── tomorrow.css │ │ │ │ │ ├── vs.css │ │ │ │ │ ├── xcode.css │ │ │ │ │ └── zenburn.css │ │ │ │ ├── highlight.php │ │ │ │ ├── highlight.yaml │ │ │ │ └── js │ │ │ │ │ ├── highlight.pack.js │ │ │ │ │ └── highlightjs-line-numbers.min.js │ │ │ ├── problems │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── assets │ │ │ │ │ └── readme_1.png │ │ │ │ ├── blueprints.yaml │ │ │ │ ├── css │ │ │ │ │ ├── problems.css │ │ │ │ │ └── template.css │ │ │ │ ├── html │ │ │ │ │ └── problems.html │ │ │ │ ├── problems.php │ │ │ │ └── problems.yaml │ │ │ └── simplesearch │ │ │ │ ├── CHANGELOG.md │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── assets │ │ │ │ ├── readme_1.png │ │ │ │ └── search.svg │ │ │ │ ├── blueprints.yaml │ │ │ │ ├── css │ │ │ │ └── simplesearch.css │ │ │ │ ├── js │ │ │ │ └── simplesearch.js │ │ │ │ ├── languages.yaml │ │ │ │ ├── pages │ │ │ │ └── simplesearch.md │ │ │ │ ├── simplesearch.php │ │ │ │ ├── simplesearch.yaml │ │ │ │ └── templates │ │ │ │ ├── partials │ │ │ │ ├── simplesearch_base.html.twig │ │ │ │ ├── simplesearch_item.html.twig │ │ │ │ └── simplesearch_searchbox.html.twig │ │ │ │ ├── simplesearch_results.html.twig │ │ │ │ └── simplesearch_results.json.twig │ │ ├── screenshot.jpg │ │ └── themes │ │ │ ├── .gitkeep │ │ │ ├── learn2 │ │ │ ├── CHANGELOG.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── blueprints.yaml │ │ │ ├── blueprints │ │ │ │ ├── chapter.yaml │ │ │ │ └── docs.yaml │ │ │ ├── css-compiled │ │ │ │ ├── nucleus.css │ │ │ │ ├── nucleus.css.map │ │ │ │ ├── theme.css │ │ │ │ └── theme.css.map │ │ │ ├── css │ │ │ │ ├── featherlight.min.css │ │ │ │ ├── font-awesome.min.css │ │ │ │ ├── nucleus-ie10.css │ │ │ │ ├── nucleus-ie9.css │ │ │ │ └── pure-0.5.0 │ │ │ │ │ └── grids-min.css │ │ │ ├── fonts │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ ├── images │ │ │ │ ├── clippy.svg │ │ │ │ ├── favicon.png │ │ │ │ └── logo.png │ │ │ ├── js │ │ │ │ ├── clipboard.min.js │ │ │ │ ├── featherlight.min.js │ │ │ │ ├── html5shiv-printshiv.min.js │ │ │ │ ├── jquery.scrollbar.min.js │ │ │ │ ├── learn.js │ │ │ │ └── modernizr.custom.71422.js │ │ │ ├── languages.yaml │ │ │ ├── learn2.php │ │ │ ├── learn2.yaml │ │ │ ├── screenshot.jpg │ │ │ ├── scss.sh │ │ │ ├── scss │ │ │ │ ├── configuration │ │ │ │ │ ├── nucleus │ │ │ │ │ │ ├── _base.scss │ │ │ │ │ │ ├── _breakpoints.scss │ │ │ │ │ │ ├── _core.scss │ │ │ │ │ │ ├── _layout.scss │ │ │ │ │ │ ├── _nav.scss │ │ │ │ │ │ └── _typography.scss │ │ │ │ │ └── theme │ │ │ │ │ │ ├── _base.scss │ │ │ │ │ │ ├── _bullets.scss │ │ │ │ │ │ └── _colors.scss │ │ │ │ ├── nucleus.scss │ │ │ │ ├── nucleus │ │ │ │ │ ├── _core.scss │ │ │ │ │ ├── _flex.scss │ │ │ │ │ ├── _forms.scss │ │ │ │ │ ├── _typography.scss │ │ │ │ │ ├── functions │ │ │ │ │ │ ├── _base.scss │ │ │ │ │ │ ├── _direction.scss │ │ │ │ │ │ └── _range.scss │ │ │ │ │ ├── mixins │ │ │ │ │ │ ├── _base.scss │ │ │ │ │ │ ├── _breakpoints.scss │ │ │ │ │ │ └── _utilities.scss │ │ │ │ │ └── particles │ │ │ │ │ │ ├── _align-text.scss │ │ │ │ │ │ └── _visibility.scss │ │ │ │ ├── theme.scss │ │ │ │ ├── theme │ │ │ │ │ ├── _bullets.scss │ │ │ │ │ ├── _buttons.scss │ │ │ │ │ ├── _configuration.scss │ │ │ │ │ ├── _core.scss │ │ │ │ │ ├── _custom.scss │ │ │ │ │ ├── _fonts.scss │ │ │ │ │ ├── _forms.scss │ │ │ │ │ ├── _header.scss │ │ │ │ │ ├── _main.scss │ │ │ │ │ ├── _nav.scss │ │ │ │ │ ├── _scrollbar.scss │ │ │ │ │ ├── _tables.scss │ │ │ │ │ ├── _tooltips.scss │ │ │ │ │ ├── _typography.scss │ │ │ │ │ └── modules │ │ │ │ │ │ ├── _base.scss │ │ │ │ │ │ └── _buttons.scss │ │ │ │ └── vendor │ │ │ │ │ ├── bourbon │ │ │ │ │ ├── _bourbon-deprecated-upcoming.scss │ │ │ │ │ ├── _bourbon.scss │ │ │ │ │ ├── addons │ │ │ │ │ │ ├── _button.scss │ │ │ │ │ │ ├── _clearfix.scss │ │ │ │ │ │ ├── _directional-values.scss │ │ │ │ │ │ ├── _ellipsis.scss │ │ │ │ │ │ ├── _font-family.scss │ │ │ │ │ │ ├── _hide-text.scss │ │ │ │ │ │ ├── _html5-input-types.scss │ │ │ │ │ │ ├── _position.scss │ │ │ │ │ │ ├── _prefixer.scss │ │ │ │ │ │ ├── _rem.scss │ │ │ │ │ │ ├── _retina-image.scss │ │ │ │ │ │ ├── _size.scss │ │ │ │ │ │ ├── _timing-functions.scss │ │ │ │ │ │ ├── _triangle.scss │ │ │ │ │ │ └── _word-wrap.scss │ │ │ │ │ ├── css3 │ │ │ │ │ │ ├── _animation.scss │ │ │ │ │ │ ├── _appearance.scss │ │ │ │ │ │ ├── _backface-visibility.scss │ │ │ │ │ │ ├── _background-image.scss │ │ │ │ │ │ ├── _background.scss │ │ │ │ │ │ ├── _border-image.scss │ │ │ │ │ │ ├── _border-radius.scss │ │ │ │ │ │ ├── _box-sizing.scss │ │ │ │ │ │ ├── _calc.scss │ │ │ │ │ │ ├── _columns.scss │ │ │ │ │ │ ├── _filter.scss │ │ │ │ │ │ ├── _flex-box.scss │ │ │ │ │ │ ├── _font-face.scss │ │ │ │ │ │ ├── _font-feature-settings.scss │ │ │ │ │ │ ├── _hidpi-media-query.scss │ │ │ │ │ │ ├── _hyphens.scss │ │ │ │ │ │ ├── _image-rendering.scss │ │ │ │ │ │ ├── _keyframes.scss │ │ │ │ │ │ ├── _linear-gradient.scss │ │ │ │ │ │ ├── _perspective.scss │ │ │ │ │ │ ├── _placeholder.scss │ │ │ │ │ │ ├── _radial-gradient.scss │ │ │ │ │ │ ├── _transform.scss │ │ │ │ │ │ ├── _transition.scss │ │ │ │ │ │ └── _user-select.scss │ │ │ │ │ ├── functions │ │ │ │ │ │ ├── _assign.scss │ │ │ │ │ │ ├── _color-lightness.scss │ │ │ │ │ │ ├── _flex-grid.scss │ │ │ │ │ │ ├── _golden-ratio.scss │ │ │ │ │ │ ├── _grid-width.scss │ │ │ │ │ │ ├── _modular-scale.scss │ │ │ │ │ │ ├── _px-to-em.scss │ │ │ │ │ │ ├── _px-to-rem.scss │ │ │ │ │ │ ├── _strip-units.scss │ │ │ │ │ │ ├── _tint-shade.scss │ │ │ │ │ │ ├── _transition-property-name.scss │ │ │ │ │ │ └── _unpack.scss │ │ │ │ │ ├── helpers │ │ │ │ │ │ ├── _convert-units.scss │ │ │ │ │ │ ├── _gradient-positions-parser.scss │ │ │ │ │ │ ├── _is-num.scss │ │ │ │ │ │ ├── _linear-angle-parser.scss │ │ │ │ │ │ ├── _linear-gradient-parser.scss │ │ │ │ │ │ ├── _linear-positions-parser.scss │ │ │ │ │ │ ├── _linear-side-corner-parser.scss │ │ │ │ │ │ ├── _radial-arg-parser.scss │ │ │ │ │ │ ├── _radial-gradient-parser.scss │ │ │ │ │ │ ├── _radial-positions-parser.scss │ │ │ │ │ │ ├── _render-gradients.scss │ │ │ │ │ │ ├── _shape-size-stripper.scss │ │ │ │ │ │ └── _str-to-num.scss │ │ │ │ │ └── settings │ │ │ │ │ │ ├── _prefixer.scss │ │ │ │ │ │ └── _px-to-em.scss │ │ │ │ │ └── color-schemer │ │ │ │ │ ├── _color-schemer.scss │ │ │ │ │ └── color-schemer │ │ │ │ │ ├── _cmyk.scss │ │ │ │ │ ├── _color-adjustments.scss │ │ │ │ │ ├── _color-schemer.scss │ │ │ │ │ ├── _colorblind.scss │ │ │ │ │ ├── _comparison.scss │ │ │ │ │ ├── _equalize.scss │ │ │ │ │ ├── _harmonize.scss │ │ │ │ │ ├── _interpolation.scss │ │ │ │ │ ├── _mix.scss │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ ├── _ryb.scss │ │ │ │ │ └── _tint-shade.scss │ │ │ ├── templates │ │ │ │ ├── chapter.html.twig │ │ │ │ ├── default.html.twig │ │ │ │ ├── docs.html.twig │ │ │ │ ├── error.html.twig │ │ │ │ └── partials │ │ │ │ │ ├── analytics.html.twig │ │ │ │ │ ├── base.html.twig │ │ │ │ │ ├── github_link.html.twig │ │ │ │ │ ├── github_note.html.twig │ │ │ │ │ ├── logo.html.twig │ │ │ │ │ ├── metadata.html.twig │ │ │ │ │ ├── page.html.twig │ │ │ │ │ └── sidebar.html.twig │ │ │ └── thumbnail.jpg │ │ │ └── site │ │ │ ├── css │ │ │ ├── s2-docs.css │ │ │ └── theme.css │ │ │ ├── images │ │ │ ├── android-chrome-36x36.png │ │ │ ├── android-chrome-48x48.png │ │ │ ├── android-chrome-72x72.png │ │ │ ├── apple-touch-icon-57x57.png │ │ │ ├── apple-touch-icon-60x60.png │ │ │ ├── apple-touch-icon-72x72.png │ │ │ ├── apple-touch-icon-precomposed.png │ │ │ ├── apple-touch-icon.png │ │ │ ├── favicon-16x16.png │ │ │ ├── favicon-32x32.png │ │ │ ├── favicon.ico │ │ │ ├── favicon.png │ │ │ ├── manifest.json │ │ │ ├── mstile-150x150.png │ │ │ ├── mstile-310x150.png │ │ │ ├── mstile-70x70.png │ │ │ └── safari-pinned-tab.svg │ │ │ ├── js │ │ │ └── data-fill-from.js │ │ │ ├── site.yaml │ │ │ └── templates │ │ │ └── partials │ │ │ ├── base.html.twig │ │ │ ├── js │ │ │ └── source-states.html.twig │ │ │ ├── logo.html.twig │ │ │ └── sidebar.html.twig │ ├── package.json │ ├── src │ │ ├── js │ │ │ ├── banner.end.js │ │ │ ├── banner.start.js │ │ │ ├── jquery.mousewheel.shim.js │ │ │ ├── jquery.select2.js │ │ │ ├── jquery.shim.js │ │ │ ├── select2 │ │ │ │ ├── compat │ │ │ │ │ ├── containerCss.js │ │ │ │ │ ├── dropdownCss.js │ │ │ │ │ ├── initSelection.js │ │ │ │ │ ├── inputData.js │ │ │ │ │ ├── matcher.js │ │ │ │ │ ├── query.js │ │ │ │ │ └── utils.js │ │ │ │ ├── core.js │ │ │ │ ├── data │ │ │ │ │ ├── ajax.js │ │ │ │ │ ├── array.js │ │ │ │ │ ├── base.js │ │ │ │ │ ├── maximumInputLength.js │ │ │ │ │ ├── maximumSelectionLength.js │ │ │ │ │ ├── minimumInputLength.js │ │ │ │ │ ├── select.js │ │ │ │ │ ├── tags.js │ │ │ │ │ └── tokenizer.js │ │ │ │ ├── defaults.js │ │ │ │ ├── diacritics.js │ │ │ │ ├── dropdown.js │ │ │ │ ├── dropdown │ │ │ │ │ ├── attachBody.js │ │ │ │ │ ├── attachContainer.js │ │ │ │ │ ├── closeOnSelect.js │ │ │ │ │ ├── hidePlaceholder.js │ │ │ │ │ ├── infiniteScroll.js │ │ │ │ │ ├── minimumResultsForSearch.js │ │ │ │ │ ├── search.js │ │ │ │ │ ├── selectOnClose.js │ │ │ │ │ └── stopPropagation.js │ │ │ │ ├── i18n │ │ │ │ │ ├── af.js │ │ │ │ │ ├── ar.js │ │ │ │ │ ├── az.js │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── bn.js │ │ │ │ │ ├── bs.js │ │ │ │ │ ├── ca.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── dsb.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── eu.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── gl.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hi.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── hsb.js │ │ │ │ │ ├── hu.js │ │ │ │ │ ├── hy.js │ │ │ │ │ ├── id.js │ │ │ │ │ ├── is.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── ja.js │ │ │ │ │ ├── ka.js │ │ │ │ │ ├── km.js │ │ │ │ │ ├── ko.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── ms.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── ne.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── ps.js │ │ │ │ │ ├── pt-BR.js │ │ │ │ │ ├── pt.js │ │ │ │ │ ├── ro.js │ │ │ │ │ ├── ru.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── sl.js │ │ │ │ │ ├── sq.js │ │ │ │ │ ├── sr-Cyrl.js │ │ │ │ │ ├── sr.js │ │ │ │ │ ├── sv.js │ │ │ │ │ ├── th.js │ │ │ │ │ ├── tk.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── vi.js │ │ │ │ │ ├── zh-CN.js │ │ │ │ │ └── zh-TW.js │ │ │ │ ├── keys.js │ │ │ │ ├── options.js │ │ │ │ ├── results.js │ │ │ │ ├── selection │ │ │ │ │ ├── allowClear.js │ │ │ │ │ ├── base.js │ │ │ │ │ ├── clickMask.js │ │ │ │ │ ├── eventRelay.js │ │ │ │ │ ├── multiple.js │ │ │ │ │ ├── placeholder.js │ │ │ │ │ ├── search.js │ │ │ │ │ ├── single.js │ │ │ │ │ └── stopPropagation.js │ │ │ │ ├── translation.js │ │ │ │ └── utils.js │ │ │ ├── wrapper.end.js │ │ │ └── wrapper.start.js │ │ └── scss │ │ │ ├── _dropdown.scss │ │ │ ├── _multiple.scss │ │ │ ├── _single.scss │ │ │ ├── core.scss │ │ │ ├── mixins │ │ │ └── _gradients.scss │ │ │ └── theme │ │ │ ├── classic │ │ │ ├── _defaults.scss │ │ │ ├── _multiple.scss │ │ │ ├── _single.scss │ │ │ └── layout.scss │ │ │ └── default │ │ │ ├── _multiple.scss │ │ │ ├── _single.scss │ │ │ └── layout.scss │ └── tests │ │ ├── a11y │ │ └── selection-tests.js │ │ ├── data │ │ ├── array-tests.js │ │ ├── base-tests.js │ │ ├── inputData-tests.js │ │ ├── maximumInputLength-tests.js │ │ ├── maximumSelectionLength-tests.js │ │ ├── minimumInputLength-tests.js │ │ ├── select-tests.js │ │ ├── tags-tests.js │ │ └── tokenizer-tests.js │ │ ├── dropdown │ │ ├── dropdownCss-tests.js │ │ ├── dropdownParent-tests.js │ │ ├── positioning-tests.js │ │ ├── search-a11y-tests.js │ │ ├── selectOnClose-tests.js │ │ └── stopPropagation-tests.js │ │ ├── helpers.js │ │ ├── integration-jq1.html │ │ ├── integration-jq2.html │ │ ├── integration-jq3.html │ │ ├── integration │ │ ├── dom-changes.js │ │ ├── jquery-calls.js │ │ └── select2-methods.js │ │ ├── options │ │ ├── ajax-tests.js │ │ ├── data-tests.js │ │ ├── deprecated-tests.js │ │ ├── translation-tests.js │ │ └── width-tests.js │ │ ├── results │ │ ├── a11y-tests.js │ │ ├── focusing-tests.js │ │ ├── infiniteScroll-tests.js │ │ └── option-tests.js │ │ ├── selection │ │ ├── allowClear-tests.js │ │ ├── containerCss-tests.js │ │ ├── focusing-tests.js │ │ ├── multiple-tests.js │ │ ├── openOnKeyDown-tests.js │ │ ├── placeholder-tests.js │ │ ├── search-a11y-tests.js │ │ ├── search-placeholder-tests.js │ │ ├── search-tests.js │ │ ├── single-tests.js │ │ └── stopPropagation-tests.js │ │ ├── unit-jq1.html │ │ ├── unit-jq2.html │ │ ├── unit-jq3.html │ │ ├── utils │ │ ├── data-tests.js │ │ ├── decorator-tests.js │ │ └── escapeMarkup-tests.js │ │ └── vendor │ │ ├── jquery-1.7.2.js │ │ ├── jquery-2.2.4.js │ │ ├── jquery-3.4.1.js │ │ ├── qunit-1.23.1.css │ │ └── qunit-1.23.1.js └── tinycolor │ └── TinyColor-1.0.0 │ ├── .gitignore │ ├── .travis.yml │ ├── Gruntfile.js │ ├── LICENSE │ ├── README.md │ ├── component.json │ ├── demo │ ├── demo.css │ └── jquery-1.9.1.js │ ├── docs │ ├── docco.css │ └── tinycolor.html │ ├── index.html │ ├── package.json │ ├── test │ ├── index.html │ ├── qunit.css │ ├── qunit.js │ └── test.js │ └── tinycolor.js ├── ABOUT.md ├── MANIFEST.in ├── README.md ├── babel.cfg ├── docker-compose.yml ├── extras ├── README.txt └── SpoolManager.md ├── octoprint_SpoolManager ├── DatabaseManager.py ├── Odometer.py ├── Usecases.py ├── WrappedLoggingHandler.py ├── __init__.py ├── api │ ├── SpoolManagerAPI.py │ ├── Transformer.py │ └── __init__.py ├── common │ ├── CSVExportImporter.py │ ├── EventBusKeys.py │ ├── SettingsKeys.py │ ├── StringUtils.py │ └── __init__.py ├── models │ ├── BaseModel.py │ ├── PluginMetaDataModel.py │ ├── SpoolModel.py │ └── __init__.py ├── newodometer.py ├── static │ ├── css │ │ ├── SpoolManager.css │ │ ├── datepicker.css │ │ ├── datepicker.min.css │ │ ├── jquery.datetimepicker.min.css │ │ ├── pick-a-color-1.1.8.min.css │ │ ├── quill.snow.css │ │ └── select2.min.css │ ├── images │ │ ├── SPMByOlli.png │ │ ├── janbex.png │ │ ├── spool_blue.svg │ │ ├── spool_grey.png │ │ ├── spool_red.png │ │ ├── spool_red.svg │ │ └── spool_yellow.svg │ ├── js │ │ ├── ComponentFactory.js │ │ ├── ResetSettingsUtilV3.js │ │ ├── SpoolManager-APIClient.js │ │ ├── SpoolManager-DatabaseConnectionProblemDialog.js │ │ ├── SpoolManager-EditSpoolDialog.js │ │ ├── SpoolManager-FilterSorter.js │ │ ├── SpoolManager-ImportDialog.js │ │ ├── SpoolManager-SpoolSelectionTableComp.js │ │ ├── SpoolManager.js │ │ ├── TableItemHelper.js │ │ ├── jquery.datetimepicker.full.js │ │ ├── jquery.datetimepicker.full.min.js │ │ ├── pick-a-color.js │ │ ├── quill.js │ │ ├── quill.min.js │ │ ├── select2.min.js │ │ ├── tinycolor-min.js │ │ └── tinycolor.js │ └── less │ │ └── SpoolManager.less ├── templates │ ├── SpoolManager_dialog_csvImportStatus.jinja2 │ ├── SpoolManager_dialog_databaseConnectionProblem.jinja2 │ ├── SpoolManager_dialog_editSpool.jinja2 │ ├── SpoolManager_dialog_selectSpool.jinja2 │ ├── SpoolManager_settings.jinja2 │ ├── SpoolManager_sidebar.jinja2 │ ├── SpoolManager_tab.jinja2 │ ├── SpoolManager_tab_dialogs.jinja2 │ ├── SpoolManager_tab_macros.jinja2 │ └── SpoolManager_tab_spoolSelection_comp.jinja2 └── test │ ├── spoolmanager_scheme_v3.db │ ├── testOdometer.py │ ├── test_CSVExporterImporter.py │ ├── test_DatabaseManager.py │ └── test_Scratchpad.py ├── requirements.txt ├── screenshots ├── editSpool-dialog.png ├── listSpools-tab.png ├── release-channels.png ├── scanSpool-dialog.png ├── selectSpool-dialog.png └── selectSpool-sidebar.png ├── setup.py ├── testdata ├── pausehandling │ └── M600pausetest.gcode └── sample_import.csv └── translations └── README.txt /.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | end_of_line = lf 8 | charset = utf-8 9 | insert_final_newline = true 10 | trim_trailing_whitespace = true 11 | 12 | [**.py] 13 | indent_style = tab 14 | 15 | [**.js] 16 | indent_style = space 17 | indent_size = 4 18 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 30 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 10 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - "status: analysing" 8 | - "status: inNextRelease" 9 | - "status: inProgress" 10 | - "status: wontfix" 11 | # Label to use when marking an issue as stale 12 | staleLabel: "status: markedForAutoClose" 13 | # Comment to post when marking an issue as stale. Set to `false` to disable 14 | markComment: > 15 | This issue has been automatically marked for closing, because it has not had 16 | activity in 30 days. It will be closed if no further activity occurs in 10 days. 17 | # Comment to post when closing a stale issue. Set to `false` to disable 18 | closeComment: false 19 | -------------------------------------------------------------------------------- /.github/workflows/github-stale-actions.yml: -------------------------------------------------------------------------------- 1 | ## Documentation could be found here 2 | ## https://github.com/actions/stale 3 | ## 4 | name: 'Stale and close issues' 5 | on: 6 | schedule: 7 | # Each day at 1:30am run the action 8 | - cron: '30 1 * * *' 9 | 10 | jobs: 11 | stale: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/stale@v4 15 | with: 16 | exempt-issue-labels: 'status: analysing,status: inNextRelease,status: inProgress,status: wontfix' 17 | 18 | days-before-issue-stale: 30 19 | stale-issue-message: 'This issue has been automatically marked for closing, because it has not had activity in 30 days. It will be closed if no further activity occurs in 10 days.' 20 | stale-issue-label: 'status: markedForAutoClose' 21 | 22 | days-before-issue-close: 10 23 | close-issue-message: 'This issue was closed, because it has been already marked for 10 days with no activity.' 24 | close-issue-label: 'status: closedByBot' 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.swp 3 | .idea 4 | *.iml 5 | build 6 | dist 7 | *.egg* 8 | .DS_Store 9 | *.zip 10 | .venv 11 | -------------------------------------------------------------------------------- /.travis.yml.notusedanymore: -------------------------------------------------------------------------------- 1 | ## 2 | ## Simple script to build a zip file of the whole repository 3 | ## 4 | 5 | script: 6 | # debug - echo 'Hello World' 7 | - export PLUGIN_VERSION=$(cat setup.py | grep 'plugin_version = "*"' | cut -d '"' -f2) 8 | - zip -r master.zip * -i '\octoprint_*' 'translations' 'README.md' 'requirements.txt' 'setup.py' 9 | # debug - ls -al 10 | 11 | ## see "Fix travis automatic build and deploy" 12 | ## https://github.com/oliexdev/openScale/pull/121 13 | ## https://github.com/oliexdev/openScale/pull/121/files 14 | before_deploy: 15 | - git tag -f travis-build 16 | - git remote add gh https://${TRAVIS_REPO_SLUG%/*}:${GITHUB_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git 17 | - git push -f gh travis-build 18 | - git remote remove gh 19 | 20 | deploy: 21 | name: "V${PLUGIN_VERSION}-draft" 22 | #prerelease: true 23 | draft: true 24 | provider: releases 25 | api_key: "${GITHUB_TOKEN}" 26 | file: "master.zip" 27 | overwrite: true 28 | skip_cleanup: true 29 | target_commitish: $TRAVIS_COMMIT 30 | on: 31 | tags: false 32 | -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | before_script: 5 | - "export DISPLAY=:99.0" 6 | - "sh -e /etc/init.d/xvfb start" 7 | - sleep 3 # give xvfb some time to start -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(config) { 2 | config.set({ 3 | basePath: '', 4 | frameworks: ['mocha', 'chai'], 5 | files: [ 6 | 'jquery.datetimepicker.css', 7 | 'node_modules/php-date-formatter/js/php-date-formatter.js', 8 | 'jquery.js', 9 | 'jquery.datetimepicker.js', 10 | 'tests/bootstrap.js', 11 | 'tests/tests/*.js' 12 | ], 13 | reporters: ['progress'], 14 | port: 9876, 15 | colors: true, 16 | logLevel: config.LOG_INFO, 17 | browsers: ['Firefox'], 18 | autoWatch: true, 19 | singleRun: false, // Karma captures browsers, runs the tests and exits 20 | concurrency: Infinity, 21 | plugins: [ 22 | 'karma-firefox-launcher', 23 | 'karma-mocha', 24 | 'karma-chai' 25 | ], 26 | client: { 27 | captureConsole: true 28 | } 29 | }) 30 | }; -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/screen/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/screen/1.png -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/screen/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/screen/2.png -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/screen/3.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/screen/3.1.png -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/screen/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/screen/3.png -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/screen/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/screen/4.png -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/screen/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/screen/5.png -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/screen/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/screen/6.png -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/tests/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/datetimepicker-2.5.20/tests/app.css -------------------------------------------------------------------------------- /3rdPartySoftware/datetimepicker-2.5.20/tests/tests/destroy.js: -------------------------------------------------------------------------------- 1 | describe('Check destructor', function () { 2 | describe('Init picker and after this init again with command destroy', function () { 3 | it('Should remove picker from DOM and remove all listeners from original input', function (done) { 4 | var input = getInput(); 5 | $(input).datetimepicker(); 6 | var dtp = $(input).data('xdsoft_datetimepicker'); 7 | expect(dtp).to.be.not.equal(null); 8 | expect(dtp[0].tagName).to.be.equal('DIV'); 9 | expect(dtp[0].classList.contains('xdsoft_datetimepicker')).to.be.true; 10 | expect(dtp.is(':hidden')).to.be.true; 11 | 12 | $(input).datetimepicker('destroy'); 13 | expect($(input).data('xdsoft_datetimepicker')).to.be.equal(null); 14 | 15 | $(input).trigger('mousedown') 16 | setTimeout(function () { 17 | expect(dtp.is(':hidden')).to.be.true; 18 | done(); 19 | }, 150) 20 | }); 21 | }); 22 | }); -------------------------------------------------------------------------------- /3rdPartySoftware/pick-a-color-master/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .idea 3 | node_modules 4 | -------------------------------------------------------------------------------- /3rdPartySoftware/pick-a-color-master/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pick-a-color", 3 | "keywords": ["color picker", "jquery color picker", "bootstrap color picker"], 4 | "description": "an easy-to-use jQuery color picker for Twitter Bootstrap", 5 | "version": "1.2.2", 6 | "main": ["build/1.2.2/js/pick-a-color-1.2.2.min.js", "build/1.2.0/css/pick-a-color-1.2.0.min.css"], 7 | "ignore": [ 8 | "**/.*", 9 | "node_modules", 10 | "components", 11 | "bower_components", 12 | "test", 13 | "tests" 14 | ], 15 | "dependencies": { 16 | "bootstrap": "3.0.0", 17 | "jquery": "1.9.1", 18 | "tinycolor": "0.9.15" 19 | } 20 | } -------------------------------------------------------------------------------- /3rdPartySoftware/pick-a-color-master/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pick-a-color", 3 | "version": "1.2.3", 4 | "devDependencies": { 5 | "grunt": "~0.4.1", 6 | "grunt-contrib-jshint": "~0.6.1", 7 | "grunt-contrib-uglify": "~0.2.2", 8 | "grunt-contrib-less": "~0.6.4", 9 | "grunt-contrib-watch": "~0.5.1", 10 | "grunt-bower-task": "~0.3.4" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/lauren/pick-a-color.git" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = space 3 | end_of_line = lf 4 | 5 | [*.js] 6 | indent_size = 2 7 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | This pull request includes a 2 | 3 | - [ ] Bug fix 4 | - [ ] New feature 5 | - [ ] Translation 6 | 7 | The following changes were made 8 | 9 | - 10 | - 11 | - 12 | 13 | If this is related to an existing ticket, include a link to it as well. 14 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | # Label to use when marking an issue as stale 7 | staleLabel: "status: stale" 8 | # Comment to post when marking an issue as stale. Set to `false` to disable 9 | markComment: > 10 | This issue has been automatically marked as stale because it has not had 11 | recent activity. It will be closed if no further activity occurs. Thank you 12 | for your contributions. 13 | # Comment to post when closing a stale issue. Set to `false` to disable 14 | closeComment: false 15 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/js/i18n/build.txt 3 | .sass-cache 4 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/.jshintignore: -------------------------------------------------------------------------------- 1 | src/js/banner.*.js 2 | src/js/wrapper.*.js 3 | tests/vendor/*.js 4 | tests/helpers.js 5 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "bitwise": true, 3 | "camelcase": true, 4 | "curly": true, 5 | "es3": true, 6 | "eqnull": true, 7 | "freeze": true, 8 | "globals": { 9 | "console": false, 10 | "define": false, 11 | "document": false, 12 | "MockContainer": false, 13 | "module": false, 14 | "QUnit": false, 15 | "require": false, 16 | "test": false, 17 | "window": false 18 | }, 19 | "indent": 2, 20 | "maxlen": 80, 21 | "noarg": true, 22 | "nonew": true, 23 | "quotmark": "single", 24 | "undef": true 25 | } 26 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | 3 | node_js: 4 | - "8" 5 | 6 | script: 7 | - grunt 8 | 9 | notifications: 10 | email: false 11 | 12 | deploy: 13 | - provider: npm 14 | email: 15 | secure: T/xRKPHPI1GwomNYb3nvMntS805vdzewDKNwB+lDS6WOfXQx9td5CIbkhpfAW3zVjdbsXFVSOzufesY+RtF4gq8yvW5FhV7py6gwnEyW8LybgYssUd08W/fMoiCjORRXxwqnoHEh956z3Z9De4Q9ow47m8iniAsKRR1I1DHaKs0= 16 | api_key: 17 | secure: BCdGeRjm8i9V+gbaVNIYk7+zLyeLOQDm6eCH+NYVX137gkNBoYqL/U7GGfHoWxEvrVgN8tcCM6RrS5qU+Wu/Wy/esz1PeSoFxKEIJx+p6BCzACFl1tJWqdm/JlmnuCiZdHs6TTtfKQwaJAK4H0Kfp5qJZS9QA/RxBpkfBQZW9VY= 18 | on: 19 | tags: true 20 | skip_cleanup: true 21 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2", 3 | "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", 4 | "main": [ 5 | "dist/js/select2.js", 6 | "src/scss/core.scss" 7 | ], 8 | "license": "MIT", 9 | "repository": { 10 | "type": "git", 11 | "url": "git@github.com:select2/select2.git" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2", 3 | "repo": "select/select2", 4 | "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", 5 | "version": "4.0.10", 6 | "demo": "https://select2.org/", 7 | "keywords": [ 8 | "jquery" 9 | ], 10 | "main": "dist/js/select2.js", 11 | "styles": [ 12 | "dist/css/select2.css" 13 | ], 14 | "scripts": [ 15 | "dist/js/select2.js", 16 | "dist/js/i18n/*.js" 17 | ], 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2/select2", 3 | "description": "Select2 is a jQuery based replacement for select boxes.", 4 | "type": "component", 5 | "homepage": "https://select2.org/", 6 | "license": "MIT", 7 | "extra": { 8 | "component": { 9 | "scripts": [ 10 | "dist/js/select2.js" 11 | ], 12 | "styles": [ 13 | "dist/css/select2.css" 14 | ], 15 | "files": [ 16 | "dist/js/select2.js", 17 | "dist/js/i18n/*.js", 18 | "dist/css/select2.css" 19 | ] 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/docs/README.md: -------------------------------------------------------------------------------- 1 | Effective beginning September 10, 2017, the Select2 documentation repository is now available at [`select2/docs`](https://github.com/select2/docs). 2 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/docs/announcements-4.0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | select2 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/docs/community.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | select2 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/docs/examples.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | select2 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | select2 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/docs/options-old.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | select2 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/docs/options.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | select2 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/banner.end.js: -------------------------------------------------------------------------------- 1 | // Return the AMD loader configuration so it can be used outside of this file 2 | return { 3 | define: S2.define, 4 | require: S2.require 5 | }; 6 | }()); 7 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/banner.start.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | // Restore the Select2 AMD loader so it can be used 3 | // Needed mostly in the language files, where the loader is not inserted 4 | if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) { 5 | var S2 = jQuery.fn.select2.amd; 6 | } 7 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/jquery.mousewheel.shim.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'jquery' 3 | ], function ($) { 4 | // Used to shim jQuery.mousewheel for non-full builds. 5 | return $; 6 | }); 7 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/jquery.shim.js: -------------------------------------------------------------------------------- 1 | /* global jQuery:false, $:false */ 2 | define(function () { 3 | var _$ = jQuery || $; 4 | 5 | if (_$ == null && console && console.error) { 6 | console.error( 7 | 'Select2: An instance of jQuery or a jQuery-compatible library was not ' + 8 | 'found. Make sure that you are including jQuery before Select2 on your ' + 9 | 'web page.' 10 | ); 11 | } 12 | 13 | return _$; 14 | }); 15 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/compat/query.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function Query (decorated, $element, options) { 5 | if (options.get('debug') && window.console && console.warn) { 6 | console.warn( 7 | 'Select2: The `query` option has been deprecated in favor of a ' + 8 | 'custom data adapter that overrides the `query` method. Support ' + 9 | 'will be removed for the `query` option in future versions of ' + 10 | 'Select2.' 11 | ); 12 | } 13 | 14 | decorated.call(this, $element, options); 15 | } 16 | 17 | Query.prototype.query = function (_, params, callback) { 18 | params.callback = callback; 19 | 20 | var query = this.options.get('query'); 21 | 22 | query.call(null, params); 23 | }; 24 | 25 | return Query; 26 | }); 27 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/data/maximumInputLength.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function MaximumInputLength (decorated, $e, options) { 5 | this.maximumInputLength = options.get('maximumInputLength'); 6 | 7 | decorated.call(this, $e, options); 8 | } 9 | 10 | MaximumInputLength.prototype.query = function (decorated, params, callback) { 11 | params.term = params.term || ''; 12 | 13 | if (this.maximumInputLength > 0 && 14 | params.term.length > this.maximumInputLength) { 15 | this.trigger('results:message', { 16 | message: 'inputTooLong', 17 | args: { 18 | maximum: this.maximumInputLength, 19 | input: params.term, 20 | params: params 21 | } 22 | }); 23 | 24 | return; 25 | } 26 | 27 | decorated.call(this, params, callback); 28 | }; 29 | 30 | return MaximumInputLength; 31 | }); 32 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/data/minimumInputLength.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function MinimumInputLength (decorated, $e, options) { 5 | this.minimumInputLength = options.get('minimumInputLength'); 6 | 7 | decorated.call(this, $e, options); 8 | } 9 | 10 | MinimumInputLength.prototype.query = function (decorated, params, callback) { 11 | params.term = params.term || ''; 12 | 13 | if (params.term.length < this.minimumInputLength) { 14 | this.trigger('results:message', { 15 | message: 'inputTooShort', 16 | args: { 17 | minimum: this.minimumInputLength, 18 | input: params.term, 19 | params: params 20 | } 21 | }); 22 | 23 | return; 24 | } 25 | 26 | decorated.call(this, params, callback); 27 | }; 28 | 29 | return MinimumInputLength; 30 | }); 31 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/dropdown/attachContainer.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function AttachContainer (decorated, $element, options) { 5 | decorated.call(this, $element, options); 6 | } 7 | 8 | AttachContainer.prototype.position = 9 | function (decorated, $dropdown, $container) { 10 | var $dropdownContainer = $container.find('.dropdown-wrapper'); 11 | $dropdownContainer.append($dropdown); 12 | 13 | $dropdown.addClass('select2-dropdown--below'); 14 | $container.addClass('select2-container--below'); 15 | }; 16 | 17 | return AttachContainer; 18 | }); 19 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/dropdown/closeOnSelect.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function CloseOnSelect () { } 5 | 6 | CloseOnSelect.prototype.bind = function (decorated, container, $container) { 7 | var self = this; 8 | 9 | decorated.call(this, container, $container); 10 | 11 | container.on('select', function (evt) { 12 | self._selectTriggered(evt); 13 | }); 14 | 15 | container.on('unselect', function (evt) { 16 | self._selectTriggered(evt); 17 | }); 18 | }; 19 | 20 | CloseOnSelect.prototype._selectTriggered = function (_, evt) { 21 | var originalEvent = evt.originalEvent; 22 | 23 | // Don't close if the control key is being held 24 | if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) { 25 | return; 26 | } 27 | 28 | this.trigger('close', { 29 | originalEvent: originalEvent, 30 | originalSelect2Event: evt 31 | }); 32 | }; 33 | 34 | return CloseOnSelect; 35 | }); 36 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/dropdown/minimumResultsForSearch.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function countResults (data) { 5 | var count = 0; 6 | 7 | for (var d = 0; d < data.length; d++) { 8 | var item = data[d]; 9 | 10 | if (item.children) { 11 | count += countResults(item.children); 12 | } else { 13 | count++; 14 | } 15 | } 16 | 17 | return count; 18 | } 19 | 20 | function MinimumResultsForSearch (decorated, $element, options, dataAdapter) { 21 | this.minimumResultsForSearch = options.get('minimumResultsForSearch'); 22 | 23 | if (this.minimumResultsForSearch < 0) { 24 | this.minimumResultsForSearch = Infinity; 25 | } 26 | 27 | decorated.call(this, $element, options, dataAdapter); 28 | } 29 | 30 | MinimumResultsForSearch.prototype.showSearch = function (decorated, params) { 31 | if (countResults(params.data.results) < this.minimumResultsForSearch) { 32 | return false; 33 | } 34 | 35 | return decorated.call(this, params); 36 | }; 37 | 38 | return MinimumResultsForSearch; 39 | }); 40 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/dropdown/stopPropagation.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function StopPropagation () { } 5 | 6 | StopPropagation.prototype.bind = function (decorated, container, $container) { 7 | decorated.call(this, container, $container); 8 | 9 | var stoppedEvents = [ 10 | 'blur', 11 | 'change', 12 | 'click', 13 | 'dblclick', 14 | 'focus', 15 | 'focusin', 16 | 'focusout', 17 | 'input', 18 | 'keydown', 19 | 'keyup', 20 | 'keypress', 21 | 'mousedown', 22 | 'mouseenter', 23 | 'mouseleave', 24 | 'mousemove', 25 | 'mouseover', 26 | 'mouseup', 27 | 'search', 28 | 'touchend', 29 | 'touchstart' 30 | ]; 31 | 32 | this.$dropdown.on(stoppedEvents.join(' '), function (evt) { 33 | evt.stopPropagation(); 34 | }); 35 | }; 36 | 37 | return StopPropagation; 38 | }); 39 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/ar.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Arabic 3 | return { 4 | errorLoading: function () { 5 | return 'لا يمكن تحميل النتائج'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | return 'الرجاء حذف ' + overChars + ' عناصر'; 11 | }, 12 | inputTooShort: function (args) { 13 | var remainingChars = args.minimum - args.input.length; 14 | 15 | return 'الرجاء إضافة ' + remainingChars + ' عناصر'; 16 | }, 17 | loadingMore: function () { 18 | return 'جاري تحميل نتائج إضافية...'; 19 | }, 20 | maximumSelected: function (args) { 21 | return 'تستطيع إختيار ' + args.maximum + ' بنود فقط'; 22 | }, 23 | noResults: function () { 24 | return 'لم يتم العثور على أي نتائج'; 25 | }, 26 | searching: function () { 27 | return 'جاري البحث…'; 28 | }, 29 | removeAllItems: function () { 30 | return 'قم بإزالة كل العناصر'; 31 | } 32 | }; 33 | }); -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/az.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Azerbaijani 3 | return { 4 | inputTooLong: function (args) { 5 | var overChars = args.input.length - args.maximum; 6 | 7 | return overChars + ' simvol silin'; 8 | }, 9 | inputTooShort: function (args) { 10 | var remainingChars = args.minimum - args.input.length; 11 | 12 | return remainingChars + ' simvol daxil edin'; 13 | }, 14 | loadingMore: function () { 15 | return 'Daha çox nəticə yüklənir…'; 16 | }, 17 | maximumSelected: function (args) { 18 | return 'Sadəcə ' + args.maximum + ' element seçə bilərsiniz'; 19 | }, 20 | noResults: function () { 21 | return 'Nəticə tapılmadı'; 22 | }, 23 | searching: function () { 24 | return 'Axtarılır…'; 25 | }, 26 | removeAllItems: function () { 27 | return 'Bütün elementləri sil'; 28 | } 29 | }; 30 | }); 31 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/fi.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Finnish 3 | return { 4 | errorLoading: function () { 5 | return 'Tuloksia ei saatu ladattua.'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | return 'Ole hyvä ja anna ' + overChars + ' merkkiä vähemmän'; 11 | }, 12 | inputTooShort: function (args) { 13 | var remainingChars = args.minimum - args.input.length; 14 | 15 | return 'Ole hyvä ja anna ' + remainingChars + ' merkkiä lisää'; 16 | }, 17 | loadingMore: function () { 18 | return 'Ladataan lisää tuloksia…'; 19 | }, 20 | maximumSelected: function (args) { 21 | return 'Voit valita ainoastaan ' + args.maximum + ' kpl'; 22 | }, 23 | noResults: function () { 24 | return 'Ei tuloksia'; 25 | }, 26 | searching: function () { 27 | return 'Haetaan…'; 28 | }, 29 | removeAllItems: function () { 30 | return 'Poista kaikki kohteet'; 31 | } 32 | }; 33 | }); 34 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/hu.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Hungarian 3 | return { 4 | errorLoading: function () { 5 | return 'Az eredmények betöltése nem sikerült.'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | return 'Túl hosszú. ' + overChars + ' karakterrel több, mint kellene.'; 11 | }, 12 | inputTooShort: function (args) { 13 | var remainingChars = args.minimum - args.input.length; 14 | 15 | return 'Túl rövid. Még ' + remainingChars + ' karakter hiányzik.'; 16 | }, 17 | loadingMore: function () { 18 | return 'Töltés…'; 19 | }, 20 | maximumSelected: function (args) { 21 | return 'Csak ' + args.maximum + ' elemet lehet kiválasztani.'; 22 | }, 23 | noResults: function () { 24 | return 'Nincs találat.'; 25 | }, 26 | searching: function () { 27 | return 'Keresés…'; 28 | }, 29 | removeAllItems: function () { 30 | return 'Távolítson el minden elemet'; 31 | } 32 | }; 33 | }); 34 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/id.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Indonesian 3 | return { 4 | errorLoading: function () { 5 | return 'Data tidak boleh diambil.'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | return 'Hapuskan ' + overChars + ' huruf'; 11 | }, 12 | inputTooShort: function (args) { 13 | var remainingChars = args.minimum - args.input.length; 14 | 15 | return 'Masukkan ' + remainingChars + ' huruf lagi'; 16 | }, 17 | loadingMore: function () { 18 | return 'Mengambil data…'; 19 | }, 20 | maximumSelected: function (args) { 21 | return 'Anda hanya dapat memilih ' + args.maximum + ' pilihan'; 22 | }, 23 | noResults: function () { 24 | return 'Tidak ada data yang sesuai'; 25 | }, 26 | searching: function () { 27 | return 'Mencari…'; 28 | }, 29 | removeAllItems: function () { 30 | return 'Hapus semua item'; 31 | } 32 | }; 33 | }); 34 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/ja.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Japanese 3 | return { 4 | errorLoading: function () { 5 | return '結果が読み込まれませんでした'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | var message = overChars + ' 文字を削除してください'; 11 | 12 | return message; 13 | }, 14 | inputTooShort: function (args) { 15 | var remainingChars = args.minimum - args.input.length; 16 | 17 | var message = '少なくとも ' + remainingChars + ' 文字を入力してください'; 18 | 19 | return message; 20 | }, 21 | loadingMore: function () { 22 | return '読み込み中…'; 23 | }, 24 | maximumSelected: function (args) { 25 | var message = args.maximum + ' 件しか選択できません'; 26 | 27 | return message; 28 | }, 29 | noResults: function () { 30 | return '対象が見つかりません'; 31 | }, 32 | searching: function () { 33 | return '検索しています…'; 34 | }, 35 | removeAllItems: function () { 36 | return 'すべてのアイテムを削除'; 37 | } 38 | }; 39 | }); 40 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/ko.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Korean 3 | return { 4 | errorLoading: function () { 5 | return '결과를 불러올 수 없습니다.'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | var message = '너무 깁니다. ' + overChars + ' 글자 지워주세요.'; 11 | 12 | return message; 13 | }, 14 | inputTooShort: function (args) { 15 | var remainingChars = args.minimum - args.input.length; 16 | 17 | var message = '너무 짧습니다. ' + remainingChars + ' 글자 더 입력해주세요.'; 18 | 19 | return message; 20 | }, 21 | loadingMore: function () { 22 | return '불러오는 중…'; 23 | }, 24 | maximumSelected: function (args) { 25 | var message = '최대 ' + args.maximum + '개까지만 선택 가능합니다.'; 26 | 27 | return message; 28 | }, 29 | noResults: function () { 30 | return '결과가 없습니다.'; 31 | }, 32 | searching: function () { 33 | return '검색 중…'; 34 | }, 35 | removeAllItems: function () { 36 | return '모든 항목 삭제'; 37 | } 38 | }; 39 | }); 40 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/ms.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Malay 3 | return { 4 | errorLoading: function () { 5 | return 'Keputusan tidak berjaya dimuatkan.'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | return 'Sila hapuskan ' + overChars + ' aksara'; 11 | }, 12 | inputTooShort: function (args) { 13 | var remainingChars = args.minimum - args.input.length; 14 | 15 | return 'Sila masukkan ' + remainingChars + ' atau lebih aksara'; 16 | }, 17 | loadingMore: function () { 18 | return 'Sedang memuatkan keputusan…'; 19 | }, 20 | maximumSelected: function (args) { 21 | return 'Anda hanya boleh memilih ' + args.maximum + ' pilihan'; 22 | }, 23 | noResults: function () { 24 | return 'Tiada padanan yang ditemui'; 25 | }, 26 | searching: function () { 27 | return 'Mencari…'; 28 | }, 29 | removeAllItems: function () { 30 | return 'Keluarkan semua item'; 31 | } 32 | }; 33 | }); -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/nb.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Norwegian (Bokmål) 3 | return { 4 | errorLoading: function () { 5 | return 'Kunne ikke hente resultater.'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | return 'Vennligst fjern ' + overChars + ' tegn'; 11 | }, 12 | inputTooShort: function (args) { 13 | var remainingChars = args.minimum - args.input.length; 14 | 15 | return 'Vennligst skriv inn ' + remainingChars + ' tegn til'; 16 | }, 17 | loadingMore: function () { 18 | return 'Laster flere resultater…'; 19 | }, 20 | maximumSelected: function (args) { 21 | return 'Du kan velge maks ' + args.maximum + ' elementer'; 22 | }, 23 | noResults: function () { 24 | return 'Ingen treff'; 25 | }, 26 | searching: function () { 27 | return 'Søker…'; 28 | }, 29 | removeAllItems: function () { 30 | return 'Fjern alle elementer'; 31 | } 32 | }; 33 | }); 34 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/vi.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Vietnamese 3 | return { 4 | inputTooLong: function (args) { 5 | var overChars = args.input.length - args.maximum; 6 | 7 | var message = 'Vui lòng xóa bớt ' + overChars + ' ký tự'; 8 | 9 | return message; 10 | }, 11 | inputTooShort: function (args) { 12 | var remainingChars = args.minimum - args.input.length; 13 | 14 | var message = 'Vui lòng nhập thêm từ ' + remainingChars + 15 | ' ký tự trở lên'; 16 | 17 | return message; 18 | }, 19 | loadingMore: function () { 20 | return 'Đang lấy thêm kết quả…'; 21 | }, 22 | maximumSelected: function (args) { 23 | var message = 'Chỉ có thể chọn được ' + args.maximum + ' lựa chọn'; 24 | 25 | return message; 26 | }, 27 | noResults: function () { 28 | return 'Không tìm thấy kết quả'; 29 | }, 30 | searching: function () { 31 | return 'Đang tìm…'; 32 | }, 33 | removeAllItems: function () { 34 | return 'Xóa tất cả các mục'; 35 | } 36 | }; 37 | }); 38 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/zh-CN.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Chinese (Simplified) 3 | return { 4 | errorLoading: function () { 5 | return '无法载入结果。'; 6 | }, 7 | inputTooLong: function (args) { 8 | var overChars = args.input.length - args.maximum; 9 | 10 | var message = '请删除' + overChars + '个字符'; 11 | 12 | return message; 13 | }, 14 | inputTooShort: function (args) { 15 | var remainingChars = args.minimum - args.input.length; 16 | 17 | var message = '请再输入至少' + remainingChars + '个字符'; 18 | 19 | return message; 20 | }, 21 | loadingMore: function () { 22 | return '载入更多结果…'; 23 | }, 24 | maximumSelected: function (args) { 25 | var message = '最多只能选择' + args.maximum + '个项目'; 26 | 27 | return message; 28 | }, 29 | noResults: function () { 30 | return '未找到结果'; 31 | }, 32 | searching: function () { 33 | return '搜索中…'; 34 | }, 35 | removeAllItems: function () { 36 | return '删除所有项目'; 37 | } 38 | }; 39 | }); 40 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | define(function () { 2 | // Chinese (Traditional) 3 | return { 4 | inputTooLong: function (args) { 5 | var overChars = args.input.length - args.maximum; 6 | 7 | var message = '請刪掉' + overChars + '個字元'; 8 | 9 | return message; 10 | }, 11 | inputTooShort: function (args) { 12 | var remainingChars = args.minimum - args.input.length; 13 | 14 | var message = '請再輸入' + remainingChars + '個字元'; 15 | 16 | return message; 17 | }, 18 | loadingMore: function () { 19 | return '載入中…'; 20 | }, 21 | maximumSelected: function (args) { 22 | var message = '你只能選擇最多' + args.maximum + '項'; 23 | 24 | return message; 25 | }, 26 | noResults: function () { 27 | return '沒有找到相符的項目'; 28 | }, 29 | searching: function () { 30 | return '搜尋中…'; 31 | }, 32 | removeAllItems: function () { 33 | return '刪除所有項目'; 34 | } 35 | }; 36 | }); 37 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/keys.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | var KEYS = { 5 | BACKSPACE: 8, 6 | TAB: 9, 7 | ENTER: 13, 8 | SHIFT: 16, 9 | CTRL: 17, 10 | ALT: 18, 11 | ESC: 27, 12 | SPACE: 32, 13 | PAGE_UP: 33, 14 | PAGE_DOWN: 34, 15 | END: 35, 16 | HOME: 36, 17 | LEFT: 37, 18 | UP: 38, 19 | RIGHT: 39, 20 | DOWN: 40, 21 | DELETE: 46 22 | }; 23 | 24 | return KEYS; 25 | }); 26 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/selection/clickMask.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'jquery' 3 | ], function ($) { 4 | function ClickMask () { } 5 | 6 | ClickMask.prototype.bind = function (decorate, $container, container) { 7 | var self = this; 8 | 9 | decorate.call(this, $container, container); 10 | 11 | this.$mask = $( 12 | '
' 13 | ); 14 | 15 | this.$mask.on('mousedown touchstart click', function () { 16 | self.trigger('close', {}); 17 | }); 18 | }; 19 | 20 | ClickMask.prototype._attachCloseHandler = function (decorate, container) { 21 | $(document.body).append(this.$mask); 22 | }; 23 | 24 | ClickMask.prototype._detachCloseHandler = function (deocrate, container) { 25 | this.$mask.detach(); 26 | }; 27 | 28 | return ClickMask; 29 | }); 30 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/selection/stopPropagation.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 3 | ], function () { 4 | function StopPropagation () { } 5 | 6 | StopPropagation.prototype.bind = function (decorated, container, $container) { 7 | decorated.call(this, container, $container); 8 | 9 | var stoppedEvents = [ 10 | 'blur', 11 | 'change', 12 | 'click', 13 | 'dblclick', 14 | 'focus', 15 | 'focusin', 16 | 'focusout', 17 | 'input', 18 | 'keydown', 19 | 'keyup', 20 | 'keypress', 21 | 'mousedown', 22 | 'mouseenter', 23 | 'mouseleave', 24 | 'mousemove', 25 | 'mouseover', 26 | 'mouseup', 27 | 'search', 28 | 'touchend', 29 | 'touchstart' 30 | ]; 31 | 32 | this.$selection.on(stoppedEvents.join(' '), function (evt) { 33 | evt.stopPropagation(); 34 | }); 35 | }; 36 | 37 | return StopPropagation; 38 | }); 39 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/select2/translation.js: -------------------------------------------------------------------------------- 1 | define([ 2 | 'jquery', 3 | 'require' 4 | ], function ($, require) { 5 | function Translation (dict) { 6 | this.dict = dict || {}; 7 | } 8 | 9 | Translation.prototype.all = function () { 10 | return this.dict; 11 | }; 12 | 13 | Translation.prototype.get = function (key) { 14 | return this.dict[key]; 15 | }; 16 | 17 | Translation.prototype.extend = function (translation) { 18 | this.dict = $.extend({}, translation.all(), this.dict); 19 | }; 20 | 21 | // Static functions 22 | 23 | Translation._cache = {}; 24 | 25 | Translation.loadPath = function (path) { 26 | if (!(path in Translation._cache)) { 27 | var translations = require(path); 28 | 29 | Translation._cache[path] = translations; 30 | } 31 | 32 | return new Translation(Translation._cache[path]); 33 | }; 34 | 35 | return Translation; 36 | }); 37 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/js/wrapper.end.js: -------------------------------------------------------------------------------- 1 | // Autoload the jQuery bindings 2 | // We know that all of the modules exist above this, so we're safe 3 | var select2 = S2.require('jquery.select2'); 4 | 5 | // Hold the AMD module references on the jQuery function that was just loaded 6 | // This allows Select2 to use the internal loader outside of this file, such 7 | // as in the language files. 8 | jQuery.fn.select2.amd = S2; 9 | 10 | // Return the Select2 instance for anyone who is importing it. 11 | return select2; 12 | })); 13 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/scss/_multiple.scss: -------------------------------------------------------------------------------- 1 | .select2-selection--multiple { 2 | box-sizing: border-box; 3 | 4 | cursor: pointer; 5 | display: block; 6 | 7 | min-height: 32px; 8 | 9 | user-select: none; 10 | -webkit-user-select: none; 11 | 12 | .select2-selection__rendered { 13 | display: inline-block; 14 | overflow: hidden; 15 | padding-left: 8px; 16 | text-overflow: ellipsis; 17 | white-space: nowrap; 18 | } 19 | } 20 | 21 | .select2-search--inline { 22 | float: left; 23 | 24 | .select2-search__field { 25 | box-sizing: border-box; 26 | border: none; 27 | font-size: 100%; 28 | margin-top: 5px; 29 | padding: 0; 30 | 31 | &::-webkit-search-cancel-button { 32 | -webkit-appearance: none; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/scss/_single.scss: -------------------------------------------------------------------------------- 1 | .select2-selection--single { 2 | box-sizing: border-box; 3 | 4 | cursor: pointer; 5 | display: block; 6 | 7 | height: 28px; 8 | 9 | user-select: none; 10 | -webkit-user-select: none; 11 | 12 | .select2-selection__rendered { 13 | display: block; 14 | padding-left: 8px; 15 | padding-right: 20px; 16 | 17 | overflow: hidden; 18 | text-overflow: ellipsis; 19 | white-space: nowrap; 20 | } 21 | 22 | .select2-selection__clear { 23 | position: relative; 24 | } 25 | } 26 | 27 | &[dir="rtl"] { 28 | .select2-selection--single { 29 | .select2-selection__rendered { 30 | padding-right: 8px; 31 | padding-left: 20px; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/src/scss/theme/classic/_defaults.scss: -------------------------------------------------------------------------------- 1 | $remove-color: #888 !default; 2 | $remove-hover-color: #555 !default; 3 | $remove-width: 20px !default; 4 | 5 | $selection-color: #444 !default; 6 | 7 | $border-color: #aaa !default; 8 | $border-radius: 4px !default; 9 | 10 | $focus-border-color: #5897fb !default; 11 | 12 | $container-height: 28px !default; 13 | 14 | $selection-bg-top-color: white !default; 15 | $selection-bg-bottom-color: #eeeeee !default; 16 | 17 | $container-placeholder-color: #999 !default; 18 | 19 | $container-focus-border-color: blue !default; 20 | 21 | $selection-opened-bg-top-color: $selection-bg-bottom-color !default; 22 | $selection-opened-bg-bottom-color: $selection-bg-top-color !default; 23 | 24 | $dropdown-z-index: 1 !default; 25 | 26 | $dropdown-bg-color: $selection-bg-top-color !default; 27 | 28 | $results-max-height: 200px !default; 29 | $results-nested-padding: 20px !default; 30 | 31 | $results-choice-bg-hover-color: #3875d7 !default; 32 | $results-choice-fg-hover-color: white !default; 33 | 34 | $results-choice-fg-unselectable-color: grey !default; 35 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/tests/data/base-tests.js: -------------------------------------------------------------------------------- 1 | module('Data adapters - Base'); 2 | 3 | var BaseData = require('select2/data/base'); 4 | var $ = require('jquery'); 5 | var Options = require('select2/options'); 6 | 7 | var options = new Options({}); 8 | 9 | test('current is required', function (assert) { 10 | var data = new BaseData($('#qunit-fixture select'), options); 11 | 12 | assert.throws( 13 | function () { 14 | data.current(function () {}); 15 | }, 16 | 'current has no default implementation' 17 | ); 18 | }); 19 | 20 | test('query is required', function (assert) { 21 | var data = new BaseData($('#qunit-fixture select'), options); 22 | 23 | assert.throws( 24 | function () { 25 | data.query({}, function () {}); 26 | }, 27 | 'query has no default implementation' 28 | ); 29 | }); 30 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/tests/integration-jq1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/tests/integration-jq2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/tests/integration-jq3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/tests/results/a11y-tests.js: -------------------------------------------------------------------------------- 1 | module('Results - Accessibility'); 2 | 3 | var $ = require('jquery'); 4 | 5 | var Options = require('select2/options'); 6 | 7 | var Results = require('select2/results'); 8 | 9 | test('role of results should be a listbox', function (assert) { 10 | var results = new Results($(''), new Options({})); 11 | 12 | var $results = results.render(); 13 | 14 | assert.equal($results.attr('role'), 'listbox'); 15 | }); 16 | 17 | test('multiple select should have aria-multiselectable', function (assert) { 18 | var results = new Results($(''), new Options({ 19 | multiple: true 20 | })); 21 | 22 | var $results = results.render(); 23 | 24 | assert.equal($results.attr('aria-multiselectable'), 'true'); 25 | }); 26 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.10/tests/utils/data-tests.js: -------------------------------------------------------------------------------- 1 | module('Utils - RemoveData'); 2 | 3 | var $ = require('jquery'); 4 | var Utils = require('select2/utils'); 5 | 6 | test('The data-select2-id attribute is removed', function (assert) { 7 | var $element = $(''); 8 | 9 | Utils.RemoveData($element[0]); 10 | 11 | assert.notEqual( 12 | $element.attr('data-select2-id'), 13 | 'test', 14 | 'The internal attribute was not removed when the data was cleared' 15 | ); 16 | }); 17 | 18 | test('The internal cache for the element is cleared', function (assert) { 19 | var $element = $(''); 20 | 21 | Utils.__cache.test = { 22 | 'foo': 'bar' 23 | }; 24 | 25 | Utils.RemoveData($element[0]); 26 | 27 | assert.equal(Utils.__cache.test, null, 'The cache should now be empty'); 28 | }); 29 | 30 | test('Calling it on an element without data works', function (assert) { 31 | assert.expect(0); 32 | 33 | var $element = $(''); 34 | 35 | Utils.RemoveData($element[0]); 36 | }); -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = space 3 | end_of_line = lf 4 | 5 | [*.js] 6 | indent_size = 2 7 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: kevin-brown 2 | open_collective: select2 3 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | This pull request includes a 2 | 3 | - [ ] Bug fix 4 | - [ ] New feature 5 | - [ ] Translation 6 | 7 | The following changes were made 8 | 9 | - 10 | - 11 | - 12 | 13 | If this is related to an existing ticket, include a link to it as well. 14 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | # Label to use when marking an issue as stale 7 | staleLabel: "status: stale" 8 | # Comment to post when marking an issue as stale. Set to `false` to disable 9 | markComment: > 10 | This issue has been automatically marked as stale because it has not had 11 | recent activity. It will be closed if no further activity occurs. Thank you 12 | for your contributions. 13 | # Comment to post when closing a stale issue. Set to `false` to disable 14 | closeComment: false 15 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.github/workflows/docs-deploy.yml: -------------------------------------------------------------------------------- 1 | name: Documentation Deployment 2 | 3 | on: release 4 | 5 | jobs: 6 | grav: 7 | name: Deploy Grav 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: maddox/actions/sleep@master 11 | with: 12 | args: "60" 13 | - uses: actions/checkout@v1 14 | - name: Copy to documentation server 15 | uses: maxheld83/rsync@v0.1.0 16 | env: 17 | USERNAME: ${{ secrets.DOCUMENTATION_SSH_USERNAME }} 18 | SSH_PRIVATE_KEY: ${{ secrets.DOCUMENTATION_SSH_KEY }} 19 | HOST_NAME: ${{ secrets.DOCUMENTATION_SSH_HOST }} 20 | SSH_PUBLIC_KEY: not-needed 21 | HOST_IP: not-needed 22 | HOST_FINGERPRINT: not-needed 23 | with: 24 | args: "docs/ $USERNAME@$HOST_NAME:/var/www/select2-docs/user/" 25 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/js/i18n/build.txt 3 | .sass-cache 4 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.jshintignore: -------------------------------------------------------------------------------- 1 | src/js/banner.*.js 2 | src/js/wrapper.*.js 3 | tests/vendor/*.js 4 | tests/helpers.js 5 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "bitwise": true, 3 | "camelcase": true, 4 | "curly": true, 5 | "es3": true, 6 | "eqnull": true, 7 | "freeze": true, 8 | "globals": { 9 | "console": false, 10 | "define": false, 11 | "document": false, 12 | "MockContainer": false, 13 | "module": false, 14 | "QUnit": false, 15 | "require": false, 16 | "test": false, 17 | "window": false 18 | }, 19 | "indent": 2, 20 | "maxlen": 80, 21 | "noarg": true, 22 | "nonew": true, 23 | "quotmark": "single", 24 | "undef": true 25 | } 26 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2", 3 | "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", 4 | "main": [ 5 | "dist/js/select2.js", 6 | "src/scss/core.scss" 7 | ], 8 | "license": "MIT", 9 | "repository": { 10 | "type": "git", 11 | "url": "git@github.com:select2/select2.git" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2", 3 | "repo": "select/select2", 4 | "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", 5 | "version": "4.0.13", 6 | "demo": "https://select2.org/", 7 | "keywords": [ 8 | "jquery" 9 | ], 10 | "main": "dist/js/select2.js", 11 | "styles": [ 12 | "dist/css/select2.css" 13 | ], 14 | "scripts": [ 15 | "dist/js/select2.js", 16 | "dist/js/i18n/*.js" 17 | ], 18 | "license": "MIT" 19 | } 20 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2/select2", 3 | "description": "Select2 is a jQuery based replacement for select boxes.", 4 | "type": "component", 5 | "homepage": "https://select2.org/", 6 | "license": "MIT", 7 | "extra": { 8 | "component": { 9 | "scripts": [ 10 | "dist/js/select2.js" 11 | ], 12 | "styles": [ 13 | "dist/css/select2.css" 14 | ], 15 | "files": [ 16 | "dist/js/select2.js", 17 | "dist/js/i18n/*.js", 18 | "dist/css/select2.css" 19 | ] 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/accounts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/select2-4.0.13/docs/accounts/.gitkeep -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/assets/rtfm-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/select2-4.0.13/docs/assets/rtfm-screenshot.png -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/blueprints.yaml: -------------------------------------------------------------------------------- 1 | name: RTFM Site 2 | version: 1.0.2 3 | description: "RTFM is a sample documentation site using the `learn2` theme. This skeleton is used as the basis for the Grav official documentation: http://learn.getgrav.org" 4 | icon: book 5 | author: 6 | name: Team Grav 7 | email: devs@getgrav.org 8 | url: http://getgrav.org 9 | homepage: https://github.com/getgrav/grav-skeleton-rtfm-site 10 | demo: http://demo.getgrav.org/rtfm-skeleton 11 | keywords: rtfm, skeleton, documentation, docs 12 | bugs: https://github.com/getgrav/grav-skeleton-rtfm-site/issues 13 | license: MIT 14 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/config/plugins/anchors.yaml: -------------------------------------------------------------------------------- 1 | selectors: '#body h2, #body h3, #body h4, #body h5' 2 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/config/plugins/highlight.yaml: -------------------------------------------------------------------------------- 1 | theme: learn 2 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/config/plugins/simplesearch.yaml: -------------------------------------------------------------------------------- 1 | enabled: true 2 | built_in_css: false 3 | route: /search 4 | template: simplesearch_results 5 | filters: 6 | category: docs 7 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/config/site.yaml: -------------------------------------------------------------------------------- 1 | title: Select2 - The jQuery replacement for select boxes 2 | metadata: 3 | description: Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and pagination (infinite scrolling) of results. 4 | 5 | taxonomies: [category,tag] 6 | summary: 7 | size: 300 8 | 9 | redirects: 10 | /getting-help: /troubleshooting/getting-help 11 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/config/system.yaml: -------------------------------------------------------------------------------- 1 | home: 2 | alias: '/getting-started' 3 | 4 | pages: 5 | theme: site 6 | markdown_extra: true 7 | process: 8 | markdown: true 9 | twig: false 10 | 11 | cache: 12 | enabled: true 13 | check: 14 | method: file 15 | driver: auto 16 | prefix: 'g' 17 | 18 | twig: 19 | cache: true 20 | debug: false 21 | auto_reload: true 22 | autoescape: false 23 | 24 | assets: 25 | css_pipeline: true 26 | css_minify: true 27 | css_rewrite: true 28 | js_pipeline: true 29 | js_minify: true 30 | 31 | debugger: 32 | enabled: false 33 | twig: true 34 | shutdown: 35 | close_connection: true 36 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/data/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OllisGit/OctoPrint-SpoolManager/dea8d64c1849c970f3616e158260c4c6fef5a4b7/3rdPartySoftware/select2-4.0.13/docs/data/.gitkeep -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/localhost/config/security.yaml: -------------------------------------------------------------------------------- 1 | salt: dc7HfDXRG0WT48 2 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/localhost/config/system.yaml: -------------------------------------------------------------------------------- 1 | assets: 2 | css_pipeline: false 3 | js_pipeline: false 4 | 5 | twig: 6 | cache: true 7 | debug: true 8 | 9 | debugger: 10 | enabled: false 11 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/pages/02.troubleshooting/chapter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Troubleshooting 3 | metadata: 4 | description: The chapter covers some common issues you may encounter with Select2, as well as where you can go to get help. 5 | taxonomy: 6 | category: docs 7 | --- 8 | 9 | # Troubleshooting 10 | 11 | The chapter covers some common issues you may encounter with Select2, as well as where you can go to get help. -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/pages/03.configuration/docs.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Configuration 3 | taxonomy: 4 | category: docs 5 | --- 6 | 7 | To configure custom options when you initialize Select2, simply pass an object in your call to `.select2()`: 8 | 9 | ``` 10 | $('.js-example-basic-single').select2({ 11 | placeholder: 'Select an option' 12 | }); 13 | ``` 14 | -------------------------------------------------------------------------------- /3rdPartySoftware/select2-4.0.13/docs/pages/06.data-sources/chapter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Data sources 3 | taxonomy: 4 | category: docs 5 | --- 6 | 7 | # Data sources 8 | 9 | In addition to handling `