Description:
select2, ace, moment now work. converting navbar
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r867:790520b5f0b3 - - 17 files changed: 266 inserted, 266 deleted

@@ -0,0 +1,13
1 + //main entry point for sprocket
2 + //= require jquery
3 + //= require moment
4 + //= require moment/th
5 + //= require ace-rails-ap
6 + //= require ace/mode-c_cpp
7 + //= require ace/mode-python
8 + //= require ace/mode-ruby
9 + //= require ace/mode-pascal
10 + //= require ace/mode-javascript
11 + //= require ace/mode-java
12 + //= require ace/theme-merbivore
13 +
@@ -0,0 +1,51
1 + $(document).on('change', '.btn-file :file', function() {
2 + var input, label, numFiles;
3 + input = $(this);
4 + numFiles = input.get(0).files ? input.get(0).files.length : 1;
5 + label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
6 + input.trigger('fileselect', [numFiles, label]);
7 + });
8 +
9 + $(function() {
10 + var e;
11 + $(".select2").select2({});
12 + $('.btn-file :file').on('fileselect', function(event, numFiles, label) {
13 + var input, log;
14 + input = $(this).parents('.input-group').find(':text');
15 + log = numFiles > 1 ? numFiles + ' files selected' : label;
16 + if (input.length) {
17 + input.val(log);
18 + } else {
19 + if (log) {
20 + alert(log);
21 + }
22 + }
23 + });
24 + $(".go-button").on('click', function(event) {
25 + var link, url;
26 + link = $(this).attr("data-source");
27 + url = $(link).val();
28 + if (url) {
29 + window.location.href = url;
30 + }
31 + });
32 + $('.ajax-toggle').on('click', function(event) {
33 + var target;
34 + target = $(event.target);
35 + target.removeClass('btn-default');
36 + target.removeClass('btn-success');
37 + target.addClass('btn-warning');
38 + target.text('...');
39 + });
40 + if ($("#editor").length > 0) {
41 + e = ace.edit("editor");
42 + e.setTheme('ace/theme/merbivore');
43 + e.getSession().setTabSize(2);
44 + e.getSession().setUseSoftTabs(true);
45 + }
46 +
47 + //jQuery(".best_in_place").best_in_place();
48 + });
49 +
50 + // ---
51 + // generated by coffee-script 1.9.2
@@ -0,0 +1,3
1 + /*!
2 + * Select2 v4 Bootstrap 5 theme v1.3.0
3 + */.select2-container--bootstrap-5{display:block}select+.select2-container--bootstrap-5{z-index:1}.select2-container--bootstrap-5 :focus{outline:0}.select2-container--bootstrap-5 .select2-selection{width:100%;min-height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.select2-container--bootstrap-5 .select2-selection{transition:none}}.select2-container--bootstrap-5.select2-container--focus .select2-selection,.select2-container--bootstrap-5.select2-container--open .select2-selection{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection{border-top:0 solid transparent;border-top-left-radius:0;border-top-right-radius:0}.select2-container--bootstrap-5 .select2-search{width:100%}.select2-container--bootstrap-5 .select2-search--inline .select2-search__field{vertical-align:top}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear{position:absolute;top:50%;right:2.25rem;width:.75rem;height:.75rem;padding:.25em;overflow:hidden;text-indent:100%;white-space:nowrap;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.75rem auto no-repeat;transform:translateY(-50%)}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear:hover,.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.75rem auto no-repeat}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear>span,.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear>span{display:none}.select2-container--bootstrap-5+.select2-container--bootstrap-5{z-index:1056}.select2-container--bootstrap-5 .select2-dropdown{z-index:1056;overflow:hidden;color:#212529;background-color:#fff;border-color:#86b7fe;border-radius:.25rem}.select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--below{border-top:0 solid transparent;border-top-left-radius:0;border-top-right-radius:0}.select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--above{border-bottom:0 solid transparent;border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container--bootstrap-5 .select2-dropdown .select2-search{padding:.375rem .75rem}.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field{display:block;width:100%;padding:.375rem .75rem;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field{transition:none}}.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field:focus{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options:not(.select2-results__options--nested){max-height:15rem;overflow-y:auto}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option{padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__message{color:#6c757d}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted{color:#000;background-color:#e9ecef}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected,.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted){color:#fff;background-color:#0d6efd}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--disabled,.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-disabled=true]{color:#6c757d}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group]{padding:0}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.375rem;font-weight:500;line-height:1.5;color:#6c757d}.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.375rem .75rem}.select2-container--bootstrap-5 .select2-selection--single{padding:.375rem 2.25rem .375rem .75rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px}.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered{padding:0;font-weight:400;line-height:1.5;color:#212529}.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered .select2-selection__placeholder{font-weight:400;line-height:1.5;color:#6c757d}.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered .select2-selection__arrow{display:none}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered{display:flex;flex-direction:row;flex-wrap:wrap;padding-left:0;margin:0;list-style:none}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{display:flex;flex-direction:row;align-items:center;padding:.35em .65em;margin-right:.375rem;margin-bottom:.375rem;font-size:1rem;color:#212529;cursor:auto;border:1px solid #ced4da;border-radius:.25rem}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.75rem;height:.75rem;padding:.25em;margin-right:.25rem;overflow:hidden;text-indent:100%;white-space:nowrap;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.75rem auto no-repeat;border:0}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.75rem auto no-repeat}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove>span{display:none}.select2-container--bootstrap-5 .select2-selection--multiple .select2-search{display:block;width:100%;height:1.5rem}.select2-container--bootstrap-5 .select2-selection--multiple .select2-search .select2-search__field{width:100%;height:1.5rem;margin-top:0;margin-left:0;font-family:inherit;line-height:1.5;background-color:transparent}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear{right:.75rem}.select2-container--bootstrap-5.select2-container--disabled .select2-selection,.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus .select2-selection{color:#6c757d;cursor:not-allowed;background-color:#e9ecef;border-color:#ced4da;box-shadow:none}.select2-container--bootstrap-5.select2-container--disabled .select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--bootstrap-5.select2-container--disabled .select2-selection--multiple .select2-selection__choice,.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__choice{cursor:not-allowed}.select2-container--bootstrap-5.select2-container--disabled .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove,.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__choice .select2-selection__choice__remove{display:none}.select2-container--bootstrap-5.select2-container--disabled .select2-selection--multiple .select2-selection__rendered:not(:empty),.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__rendered:not(:empty){padding-bottom:0}.select2-container--bootstrap-5.select2-container--disabled .select2-selection--multiple .select2-selection__rendered:not(:empty)+.select2-search,.select2-container--bootstrap-5.select2-container--disabled.select2-container--focus .select2-selection--multiple .select2-selection__rendered:not(:empty)+.select2-search{display:none}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu).select2-container--bootstrap-5 .select2-selection,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu).select2-container--bootstrap-5 .select2-selection{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.btn~.select2-container--bootstrap-5 .select2-selection,.input-group>.dropdown-menu~.select2-container--bootstrap-5 .select2-selection,.input-group>.input-group-text~.select2-container--bootstrap-5 .select2-selection{border-top-left-radius:0;border-bottom-left-radius:0}.input-group .select2-container--bootstrap-5{flex-grow:1}.input-group .select2-container--bootstrap-5 .select2-selection{height:100%}.is-valid+.select2-container--bootstrap-5 .select2-selection,.was-validated select:valid+.select2-container--bootstrap-5 .select2-selection{border-color:#198754}.is-valid+.select2-container--bootstrap-5.select2-container--focus .select2-selection,.is-valid+.select2-container--bootstrap-5.select2-container--open .select2-selection,.was-validated select:valid+.select2-container--bootstrap-5.select2-container--focus .select2-selection,.was-validated select:valid+.select2-container--bootstrap-5.select2-container--open .select2-selection{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.is-valid+.select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection,.was-validated select:valid+.select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid transparent}.is-valid+.select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection,.was-validated select:valid+.select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection{border-top:0 solid transparent;border-top-left-radius:0;border-top-right-radius:0}.is-invalid+.select2-container--bootstrap-5 .select2-selection,.was-validated select:invalid+.select2-container--bootstrap-5 .select2-selection{border-color:#dc3545}.is-invalid+.select2-container--bootstrap-5.select2-container--focus .select2-selection,.is-invalid+.select2-container--bootstrap-5.select2-container--open .select2-selection,.was-validated select:invalid+.select2-container--bootstrap-5.select2-container--focus .select2-selection,.was-validated select:invalid+.select2-container--bootstrap-5.select2-container--open .select2-selection{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.is-invalid+.select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection,.was-validated select:invalid+.select2-container--bootstrap-5.select2-container--open.select2-container--below .select2-selection{border-bottom:0 solid transparent}.is-invalid+.select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection,.was-validated select:invalid+.select2-container--bootstrap-5.select2-container--open.select2-container--above .select2-selection{border-top:0 solid transparent;border-top-left-radius:0;border-top-right-radius:0}.select2-container--bootstrap-5 .select2--small.select2-selection{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap-5 .select2--small.select2-selection--single .select2-selection__clear{width:.5rem;height:.5rem;padding:.125rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-selection__clear:hover,.select2-container--bootstrap-5 .select2--small.select2-selection--single .select2-selection__clear:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-search,.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-search .select2-search__field,.select2-container--bootstrap-5 .select2--small.select2-selection--single .select2-search,.select2-container--bootstrap-5 .select2--small.select2-selection--single .select2-search .select2-search__field{height:1.5em}.select2-container--bootstrap-5 .select2--small.select2-dropdown{border-radius:.2rem}.select2-container--bootstrap-5 .select2--small.select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.select2-container--bootstrap-5 .select2--small.select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container--bootstrap-5 .select2--small.select2-dropdown .select2-results__options .select2-results__option,.select2-container--bootstrap-5 .select2--small.select2-dropdown .select2-search .select2-search__field{padding:.25rem .5rem;font-size:.875rem}.select2-container--bootstrap-5 .select2--small.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.25rem}.select2-container--bootstrap-5 .select2--small.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.25rem .5rem}.select2-container--bootstrap-5 .select2--small.select2-selection--single{padding:.25rem 2.25rem .25rem .5rem}.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:.875rem}.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.5rem;height:.5rem;padding:.125rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.select2-container--bootstrap-5 .select2--small.select2-selection--multiple .select2-selection__clear{right:.5rem}.select2-container--bootstrap-5 .select2--large.select2-selection{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-selection__clear,.select2-container--bootstrap-5 .select2--large.select2-selection--single .select2-selection__clear{width:1rem;height:1rem;padding:.5rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-selection__clear:hover,.select2-container--bootstrap-5 .select2--large.select2-selection--single .select2-selection__clear:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-search,.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-search .select2-search__field,.select2-container--bootstrap-5 .select2--large.select2-selection--single .select2-search,.select2-container--bootstrap-5 .select2--large.select2-selection--single .select2-search .select2-search__field{height:1.5em}.select2-container--bootstrap-5 .select2--large.select2-dropdown{border-radius:.3rem}.select2-container--bootstrap-5 .select2--large.select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.select2-container--bootstrap-5 .select2--large.select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.select2-container--bootstrap-5 .select2--large.select2-dropdown .select2-results__options .select2-results__option,.select2-container--bootstrap-5 .select2--large.select2-dropdown .select2-search .select2-search__field{padding:.5rem 1rem;font-size:1.25rem}.select2-container--bootstrap-5 .select2--large.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.5rem}.select2-container--bootstrap-5 .select2--large.select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.5rem 1rem}.select2-container--bootstrap-5 .select2--large.select2-selection--single{padding:.5rem 2.25rem .5rem 1rem}.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:1.25rem}.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:1rem;height:1rem;padding:.5rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.select2-container--bootstrap-5 .select2--large.select2-selection--multiple .select2-selection__clear{right:1rem}.form-select-sm~.select2-container--bootstrap-5 .select2-selection{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear,.form-select-sm~.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear{width:.5rem;height:.5rem;padding:.125rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear:hover,.form-select-sm~.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-search,.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-search .select2-search__field,.form-select-sm~.select2-container--bootstrap-5 .select2-selection--single .select2-search,.form-select-sm~.select2-container--bootstrap-5 .select2-selection--single .select2-search .select2-search__field{height:1.5em}.form-select-sm~.select2-container--bootstrap-5 .select2-dropdown{border-radius:.2rem}.form-select-sm~.select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.form-select-sm~.select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.form-select-sm~.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option,.form-select-sm~.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field{padding:.25rem .5rem;font-size:.875rem}.form-select-sm~.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.25rem}.form-select-sm~.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.25rem .5rem}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--single{padding:.25rem 2.25rem .25rem .5rem}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:.875rem}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:.5rem;height:.5rem;padding:.125rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/.5rem auto no-repeat}.form-select-sm~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear{right:.5rem}.form-select-lg~.select2-container--bootstrap-5 .select2-selection{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear,.form-select-lg~.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear{width:1rem;height:1rem;padding:.5rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear:hover,.form-select-lg~.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-search,.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-search .select2-search__field,.form-select-lg~.select2-container--bootstrap-5 .select2-selection--single .select2-search,.form-select-lg~.select2-container--bootstrap-5 .select2-selection--single .select2-search .select2-search__field{height:1.5em}.form-select-lg~.select2-container--bootstrap-5 .select2-dropdown{border-radius:.3rem}.form-select-lg~.select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--below{border-top-left-radius:0;border-top-right-radius:0}.form-select-lg~.select2-container--bootstrap-5 .select2-dropdown.select2-dropdown--above{border-bottom-right-radius:0;border-bottom-left-radius:0}.form-select-lg~.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option,.form-select-lg~.select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field{padding:.5rem 1rem;font-size:1.25rem}.form-select-lg~.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__group{padding:.5rem}.form-select-lg~.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[role=group] .select2-results__options--nested .select2-results__option{padding:.5rem 1rem}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--single{padding:.5rem 2.25rem .5rem 1rem}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice{padding:.35em .65em;font-size:1.25rem}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove{width:1rem;height:1rem;padding:.5rem;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23676a6d'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered .select2-selection__choice .select2-selection__choice__remove:hover{background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") 50%/1rem auto no-repeat}.form-select-lg~.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear{right:1rem} No newline at end of file
@@ -0,0 +1,1
1 + .select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline;list-style:none;padding:0}.select2-container .select2-selection--multiple .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;margin-left:5px;padding:0;max-width:100%;resize:none;height:18px;vertical-align:bottom;font-family:sans-serif;overflow:hidden;word-break:keep-all}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option--selectable{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px;padding-right:0px}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;padding-bottom:5px;padding-right:5px;position:relative}.select2-container--default .select2-selection--multiple.select2-selection--clearable{padding-right:25px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;font-weight:bold;height:20px;margin-right:10px;margin-top:5px;position:absolute;right:0;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:inline-block;margin-left:5px;margin-top:5px;padding:0;padding-left:20px;position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-right:1px solid #aaa;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#999;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px;position:absolute;left:0;top:0}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus{background-color:#f1f1f1;color:#333;outline:none}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-left:1px solid #aaa;border-right:none;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear{float:left;margin-left:10px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__option--disabled{color:#999}.select2-container--default .select2-results__option--selected{background-color:#ddd}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;padding-bottom:5px;padding-right:5px}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--classic .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#888;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;outline:none}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option--group{padding:0}.select2-container--classic .select2-results__option--disabled{color:grey}.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
@@ -0,0 +1,2
1 + /*! Select2 4.1.0-rc.0 | https://github.com/select2/select2/blob/master/LICENSE.md */
2 + !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(t){var e,n,s,p,r,o,h,f,g,m,y,v,i,a,_,s=((u=t&&t.fn&&t.fn.select2&&t.fn.select2.amd?t.fn.select2.amd:u)&&u.requirejs||(u?n=u:u={},g={},m={},y={},v={},i=Object.prototype.hasOwnProperty,a=[].slice,_=/\.js$/,h=function(e,t){var n,s,i=c(e),r=i[0],t=t[1];return e=i[1],r&&(n=x(r=l(r,t))),r?e=n&&n.normalize?n.normalize(e,(s=t,function(e){return l(e,s)})):l(e,t):(r=(i=c(e=l(e,t)))[0],e=i[1],r&&(n=x(r))),{f:r?r+"!"+e:e,n:e,pr:r,p:n}},f={require:function(e){return w(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:"",exports:g[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},r=function(e,t,n,s){var i,r,o,a,l,c=[],u=typeof n,d=A(s=s||e);if("undefined"==u||"function"==u){for(t=!t.length&&n.length?["require","exports","module"]:t,a=0;a<t.length;a+=1)if("require"===(r=(o=h(t[a],d)).f))c[a]=f.require(e);else if("exports"===r)c[a]=f.exports(e),l=!0;else if("module"===r)i=c[a]=f.module(e);else if(b(g,r)||b(m,r)||b(v,r))c[a]=x(r);else{if(!o.p)throw new Error(e+" missing "+r);o.p.load(o.n,w(s,!0),function(t){return function(e){g[t]=e}}(r),{}),c[a]=g[r]}u=n?n.apply(g[e],c):void 0,e&&(i&&i.exports!==p&&i.exports!==g[e]?g[e]=i.exports:u===p&&l||(g[e]=u))}else e&&(g[e]=n)},e=n=o=function(e,t,n,s,i){if("string"==typeof e)return f[e]?f[e](t):x(h(e,A(t)).f);if(!e.splice){if((y=e).deps&&o(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=p}return t=t||function(){},"function"==typeof n&&(n=s,s=i),s?r(p,e,t,n):setTimeout(function(){r(p,e,t,n)},4),o},o.config=function(e){return o(e)},e._defined=g,(s=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),b(g,e)||b(m,e)||(m[e]=[e,t,n])}).amd={jQuery:!0},u.requirejs=e,u.require=n,u.define=s),u.define("almond",function(){}),u.define("jquery",[],function(){var e=t||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),u.define("select2/utils",["jquery"],function(r){var s={};function c(e){var t,n=e.prototype,s=[];for(t in n)"function"==typeof n[t]&&"constructor"!==t&&s.push(t);return s}s.Extend=function(e,t){var n,s={}.hasOwnProperty;function i(){this.constructor=e}for(n in t)s.call(t,n)&&(e[n]=t[n]);return i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype,e},s.Decorate=function(s,i){var e=c(i),t=c(s);function r(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=s.prototype.constructor;0<t&&(e.call(arguments,s.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=s.displayName,r.prototype=new function(){this.constructor=r};for(var n=0;n<t.length;n++){var o=t[n];r.prototype[o]=s.prototype[o]}for(var a=0;a<e.length;a++){var l=e[a];r.prototype[l]=function(e){var t=function(){};e in r.prototype&&(t=r.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}(l)}return r};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1);this.listeners=this.listeners||{},0===(n=null==n?[]:n).length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,s=e.length;n<s;n++)e[n].apply(this,t)},s.Observable=e,s.generateChars=function(e){for(var t="",n=0;n<e;n++)t+=Math.floor(36*Math.random()).toString(36);return t},s.bind=function(e,t){return function(){e.apply(t,arguments)}},s._convertData=function(e){for(var t in e){var n=t.split("-"),s=e;if(1!==n.length){for(var i=0;i<n.length;i++){var r=n[i];(r=r.substring(0,1).toLowerCase()+r.substring(1))in s||(s[r]={}),i==n.length-1&&(s[r]=e[t]),s=s[r]}delete e[t]}}return e},s.hasScroll=function(e,t){var n=r(t),s=t.style.overflowX,i=t.style.overflowY;return(s!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===s||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},s.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},s.__cache={};var n=0;return s.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null!=t||(t=e.id?"select2-data-"+e.id:"select2-data-"+(++n).toString()+"-"+s.generateChars(4),e.setAttribute("data-select2-id",t)),t},s.StoreData=function(e,t,n){e=s.GetUniqueElementId(e);s.__cache[e]||(s.__cache[e]={}),s.__cache[e][t]=n},s.GetData=function(e,t){var n=s.GetUniqueElementId(e);return t?s.__cache[n]&&null!=s.__cache[n][t]?s.__cache[n][t]:r(e).data(t):s.__cache[n]},s.RemoveData=function(e){var t=s.GetUniqueElementId(e);null!=s.__cache[t]&&delete s.__cache[t],e.removeAttribute("data-select2-id")},s.copyNonInternalCssClasses=function(e,t){var n=(n=e.getAttribute("class").trim().split(/\s+/)).filter(function(e){return 0===e.indexOf("select2-")}),t=(t=t.getAttribute("class").trim().split(/\s+/)).filter(function(e){return 0!==e.indexOf("select2-")}),t=n.concat(t);e.setAttribute("class",t.join(" "))},s}),u.define("select2/results",["jquery","./utils"],function(d,p){function s(e,t,n){this.$element=e,this.data=n,this.options=t,s.__super__.constructor.call(this)}return p.Extend(s,p.Observable),s.prototype.render=function(){var e=d('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},s.prototype.clear=function(){this.$results.empty()},s.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=d('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),s=this.options.get("translations").get(e.message);n.append(t(s(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},s.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},s.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var s=e.results[n],s=this.option(s);t.push(s)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},s.prototype.position=function(e,t){t.find(".select2-results").append(e)},s.prototype.sort=function(e){return this.options.get("sorter")(e)},s.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option--selectable"),t=e.filter(".select2-results__option--selected");(0<t.length?t:e).first().trigger("mouseenter"),this.ensureHighlightVisible()},s.prototype.setClasses=function(){var t=this;this.data.current(function(e){var s=e.map(function(e){return e.id.toString()});t.$results.find(".select2-results__option--selectable").each(function(){var e=d(this),t=p.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<s.indexOf(n)?(this.classList.add("select2-results__option--selected"),e.attr("aria-selected","true")):(this.classList.remove("select2-results__option--selected"),e.attr("aria-selected","false"))})})},s.prototype.showLoading=function(e){this.hideLoading();e={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},e=this.option(e);e.className+=" loading-results",this.$results.prepend(e)},s.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},s.prototype.option=function(e){var t=document.createElement("li");t.classList.add("select2-results__option"),t.classList.add("select2-results__option--selectable");var n,s={role:"option"},i=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(n in(null!=e.element&&i.call(e.element,":disabled")||null==e.element&&e.disabled)&&(s["aria-disabled"]="true",t.classList.remove("select2-results__option--selectable"),t.classList.add("select2-results__option--disabled")),null==e.id&&t.classList.remove("select2-results__option--selectable"),null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(s.role="group",s["aria-label"]=e.text,t.classList.remove("select2-results__option--selectable"),t.classList.add("select2-results__option--group")),s){var r=s[n];t.setAttribute(n,r)}if(e.children){var o=d(t),a=document.createElement("strong");a.className="select2-results__group",this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],u=this.option(u);l.push(u)}i=d("<ul></ul>",{class:"select2-results__options select2-results__options--nested",role:"none"});i.append(l),o.append(a),o.append(i)}else this.template(e,t);return p.StoreData(t,"data",e),t},s.prototype.bind=function(t,e){var i=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on("results:append",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on("query",function(e){i.hideMessages(),i.showLoading(e)}),t.on("select",function(){t.isOpen()&&(i.setClasses(),i.options.get("scrollAfterSelect")&&i.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(i.setClasses(),i.options.get("scrollAfterSelect")&&i.highlightFirstItem())}),t.on("open",function(){i.$results.attr("aria-expanded","true"),i.$results.attr("aria-hidden","false"),i.setClasses(),i.ensureHighlightVisible()}),t.on("close",function(){i.$results.attr("aria-expanded","false"),i.$results.attr("aria-hidden","true"),i.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e,t=i.getHighlightedResults();0!==t.length&&(e=p.GetData(t[0],"data"),t.hasClass("select2-results__option--selected")?i.trigger("close",{}):i.trigger("select",{data:e}))}),t.on("results:previous",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(".select2-results__option--selectable"),s=n.index(t);s<=0||(e=s-1,0===t.length&&(e=0),(s=n.eq(e)).trigger("mouseenter"),t=i.$results.offset().top,n=s.offset().top,s=i.$results.scrollTop()+(n-t),0===e?i.$results.scrollTop(0):n-t<0&&i.$results.scrollTop(s))}),t.on("results:next",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(".select2-results__option--selectable"),s=n.index(t)+1;s>=n.length||((e=n.eq(s)).trigger("mouseenter"),t=i.$results.offset().top+i.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=i.$results.scrollTop()+n-t,0===s?i.$results.scrollTop(0):t<n&&i.$results.scrollTop(e))}),t.on("results:focus",function(e){e.element[0].classList.add("select2-results__option--highlighted"),e.element[0].setAttribute("aria-selected","true")}),t.on("results:message",function(e){i.displayMessage(e)}),d.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=i.$results.scrollTop(),n=i.$results.get(0).scrollHeight-t+e.deltaY,t=0<e.deltaY&&t-e.deltaY<=0,n=e.deltaY<0&&n<=i.$results.height();t?(i.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):n&&(i.$results.scrollTop(i.$results.get(0).scrollHeight-i.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option--selectable",function(e){var t=d(this),n=p.GetData(this,"data");t.hasClass("select2-results__option--selected")?i.options.get("multiple")?i.trigger("unselect",{originalEvent:e,data:n}):i.trigger("close",{}):i.trigger("select",{originalEvent:e,data:n})}),this.$results.on("mouseenter",".select2-results__option--selectable",function(e){var t=p.GetData(this,"data");i.getHighlightedResults().removeClass("select2-results__option--highlighted").attr("aria-selected","false"),i.trigger("results:focus",{data:t,element:d(this)})})},s.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},s.prototype.destroy=function(){this.$results.remove()},s.prototype.ensureHighlightVisible=function(){var e,t,n,s,i=this.getHighlightedResults();0!==i.length&&(e=this.$results.find(".select2-results__option--selectable").index(i),s=this.$results.offset().top,t=i.offset().top,n=this.$results.scrollTop()+(t-s),s=t-s,n-=2*i.outerHeight(!1),e<=2?this.$results.scrollTop(0):(s>this.$results.outerHeight()||s<0)&&this.$results.scrollTop(n))},s.prototype.template=function(e,t){var n=this.options.get("templateResult"),s=this.options.get("escapeMarkup"),e=n(e,t);null==e?t.style.display="none":"string"==typeof e?t.innerHTML=s(e):d(t).append(e)},s}),u.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define("select2/selection/base",["jquery","../utils","../keys"],function(n,s,i){function r(e,t){this.$element=e,this.options=t,r.__super__.constructor.call(this)}return s.Extend(r,s.Observable),r.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=s.GetData(this.$element[0],"old-tabindex")?this._tabindex=s.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},r.prototype.bind=function(e,t){var n=this,s=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",s),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},r.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},r.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&s.GetData(this,"element").select2("close")})})},r.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},r.prototype.position=function(e,t){t.find(".selection").append(e)},r.prototype.destroy=function(){this._detachCloseHandler(this.container)},r.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},r.prototype.isEnabled=function(){return!this.isDisabled()},r.prototype.isDisabled=function(){return this.options.get("disabled")},r}),u.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,s){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e[0].classList.add("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var s=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",s).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",s),this.$selection.attr("aria-controls",s),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){var t,n;0!==e.length?(n=e[0],t=this.$selection.find(".select2-selection__rendered"),e=this.display(n,t),t.empty().append(e),(n=n.title||n.text)?t.attr("title",n):t.removeAttr("title")):this.clear()},i}),u.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,c){function r(e,t){r.__super__.constructor.apply(this,arguments)}return c.Extend(r,e),r.prototype.render=function(){var e=r.__super__.render.call(this);return e[0].classList.add("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},r.prototype.bind=function(e,t){var n=this;r.__super__.bind.apply(this,arguments);var s=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",s),this.$selection.on("click",function(e){n.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){var t;n.isDisabled()||(t=i(this).parent(),t=c.GetData(t[0],"data"),n.trigger("unselect",{originalEvent:e,data:t}))}),this.$selection.on("keydown",".select2-selection__choice__remove",function(e){n.isDisabled()||e.stopPropagation()})},r.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return i('<li class="select2-selection__choice"><button type="button" class="select2-selection__choice__remove" tabindex="-1"><span aria-hidden="true">&times;</span></button><span class="select2-selection__choice__display"></span></li>')},r.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=this.$selection.find(".select2-selection__rendered").attr("id")+"-choice-",s=0;s<e.length;s++){var i=e[s],r=this.selectionContainer(),o=this.display(i,r),a=n+c.generateChars(4)+"-";i.id?a+=i.id:a+=c.generateChars(4),r.find(".select2-selection__choice__display").append(o).attr("id",a);var l=i.title||i.text;l&&r.attr("title",l);o=this.options.get("translations").get("removeItem"),l=r.find(".select2-selection__choice__remove");l.attr("title",o()),l.attr("aria-label",o()),l.attr("aria-describedby",a),c.StoreData(r[0],"data",i),t.push(r)}this.$selection.find(".select2-selection__rendered").append(t)}},r}),u.define("select2/selection/placeholder",[],function(){function e(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return e.prototype.normalizePlaceholder=function(e,t){return t="string"==typeof t?{id:"",text:t}:t},e.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();n.html(this.display(t)),n[0].classList.add("select2-selection__placeholder"),n[0].classList.remove("select2-selection__choice");t=t.title||t.text||n.text();return this.$selection.find(".select2-selection__rendered").attr("title",t),n},e.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();t=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(t)},e}),u.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(i,s,a){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){s._handleClear(e)}),t.on("keypress",function(e){s._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var s=a.GetData(n[0],"data"),i=this.$element.val();this.$element.val(this.placeholder.id);var r={data:s};if(this.trigger("clear",r),r.prevented)this.$element.val(i);else{for(var o=0;o<s.length;o++)if(r={data:s[o]},this.trigger("unselect",r),r.prevented)return void this.$element.val(i);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=s.DELETE&&t.which!=s.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){var n,s;e.call(this,t),this.$selection.find(".select2-selection__clear").remove(),this.$selection[0].classList.remove("select2-selection--clearable"),0<this.$selection.find(".select2-selection__placeholder").length||0===t.length||(n=this.$selection.find(".select2-selection__rendered").attr("id"),s=this.options.get("translations").get("removeAllItems"),(e=i('<button type="button" class="select2-selection__clear" tabindex="-1"><span aria-hidden="true">&times;</span></button>')).attr("title",s()),e.attr("aria-label",s()),e.attr("aria-describedby",n),a.StoreData(e[0],"data",t),this.$selection.prepend(e),this.$selection[0].classList.add("select2-selection--clearable"))},e}),u.define("select2/selection/search",["jquery","../utils","../keys"],function(s,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=this.options.get("translations").get("search"),n=s('<span class="select2-search select2-search--inline"><textarea class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" ></textarea></span>');this.$searchContainer=n,this.$search=n.find("textarea"),this.$search.prop("autocomplete",this.options.get("autocomplete")),this.$search.attr("aria-label",t());e=e.call(this);return this._transferTabIndex(),e.append(this.$searchContainer),e},e.prototype.bind=function(e,t,n){var s=this,i=t.id+"-results",r=t.id+"-container";e.call(this,t,n),s.$search.attr("aria-describedby",r),t.on("open",function(){s.$search.attr("aria-controls",i),s.$search.trigger("focus")}),t.on("close",function(){s.$search.val(""),s.resizeSearch(),s.$search.removeAttr("aria-controls"),s.$search.removeAttr("aria-activedescendant"),s.$search.trigger("focus")}),t.on("enable",function(){s.$search.prop("disabled",!1),s._transferTabIndex()}),t.on("disable",function(){s.$search.prop("disabled",!0)}),t.on("focus",function(e){s.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?s.$search.attr("aria-activedescendant",e.data._resultId):s.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){s.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){s._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){var t;e.stopPropagation(),s.trigger("keypress",e),s._keyUpPrevented=e.isDefaultPrevented(),e.which!==l.BACKSPACE||""!==s.$search.val()||0<(t=s.$selection.find(".select2-selection__choice").last()).length&&(t=a.GetData(t[0],"data"),s.searchRemoveChoice(t),e.preventDefault())}),this.$selection.on("click",".select2-search--inline",function(e){s.$search.val()&&e.stopPropagation()});var t=document.documentMode,o=t&&t<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){o?s.$selection.off("input.search input.searchcheck"):s.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){var t;o&&"input"===e.type?s.$selection.off("input.search input.searchcheck"):(t=e.which)!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&s.handleSearch(e)})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger("query",{term:e})),this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="100%";""===this.$search.attr("placeholder")&&(e=.75*(this.$search.val().length+1)+"em"),this.$search.css("width",e)},e}),u.define("select2/selection/selectionCss",["../utils"],function(n){function e(){}return e.prototype.render=function(e){var t=e.call(this),e=this.options.get("selectionCssClass")||"";return-1!==e.indexOf(":all:")&&(e=e.replace(":all:",""),n.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(e),t},e}),u.define("select2/selection/eventRelay",["jquery"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var s=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],r=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){var n;-1!==i.indexOf(e)&&(t=t||{},n=o.Event("select2:"+e,{params:t}),s.$element.trigger(n),-1!==r.indexOf(e)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define("select2/translation",["jquery","require"],function(t,n){function s(e){this.dict=e||{}}return s.prototype.all=function(){return this.dict},s.prototype.get=function(e){return this.dict[e]},s.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},s._cache={},s.loadPath=function(e){var t;return e in s._cache||(t=n(e),s._cache[e]=t),new s(s._cache[e])},s}),u.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),u.define("select2/data/base",["../utils"],function(n){function s(e,t){s.__super__.constructor.call(this)}return n.Extend(s,n.Observable),s.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},s.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},s.prototype.bind=function(e,t){},s.prototype.destroy=function(){},s.prototype.generateResultId=function(e,t){e=e.id+"-result-";return e+=n.generateChars(4),null!=t.id?e+="-"+t.id.toString():e+="-"+n.generateChars(4),e},s}),u.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var t=this;e(Array.prototype.map.call(this.$element[0].querySelectorAll(":checked"),function(e){return t.item(l(e))}))},n.prototype.select=function(i){var e,r=this;if(i.selected=!0,null!=i.element&&"option"===i.element.tagName.toLowerCase())return i.element.selected=!0,void this.$element.trigger("input").trigger("change");this.$element.prop("multiple")?this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var s=i[n].id;-1===t.indexOf(s)&&t.push(s)}r.$element.val(t),r.$element.trigger("input").trigger("change")}):(e=i.id,this.$element.val(e),this.$element.trigger("input").trigger("change"))},n.prototype.unselect=function(i){var r=this;if(this.$element.prop("multiple")){if(i.selected=!1,null!=i.element&&"option"===i.element.tagName.toLowerCase())return i.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var s=e[n].id;s!==i.id&&-1===t.indexOf(s)&&t.push(s)}r.$element.val(t),r.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(t,e){var n=[],s=this;this.$element.children().each(function(){var e;"option"!==this.tagName.toLowerCase()&&"optgroup"!==this.tagName.toLowerCase()||(e=l(this),e=s.item(e),null!==(e=s.matches(t,e))&&n.push(e))}),e({results:n})},n.prototype.addOptions=function(e){this.$element.append(e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);e=this._normalizeItem(e);return e.element=t,a.StoreData(t,"data",e),l(t)},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;var n=e[0];if("option"===n.tagName.toLowerCase())t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if("optgroup"===n.tagName.toLowerCase()){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var s=e.children("option"),i=[],r=0;r<s.length;r++){var o=l(s[r]),o=this.item(o);i.push(o)}t.children=i}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),u.define("select2/data/array",["./select","../utils","jquery"],function(e,t,c){function s(e,t){this._dataToConvert=t.get("data")||[],s.__super__.constructor.call(this,e,t)}return t.Extend(s,e),s.prototype.bind=function(e,t){s.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},s.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),s.__super__.select.call(this,n)},s.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),s=n.map(function(){return t.item(c(this)).id}).get(),i=[];for(var r=0;r<e.length;r++){var o,a,l=this._normalizeItem(e[r]);0<=s.indexOf(l.id)?(o=n.filter(function(e){return function(){return c(this).val()==e.id}}(l)),a=this.item(o),a=c.extend(!0,{},l,a),a=this.option(a),o.replaceWith(a)):(a=this.option(l),l.children&&(l=this.convertToOptions(l.children),a.append(l)),i.push(a))}return i},s}),u.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,r){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return r.extend({},e,{q:e.term})},transport:function(e,t,n){e=r.ajax(e);return e.then(t),e.fail(n),e}};return r.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(t,n){var s=this;null!=this._request&&("function"==typeof this._request.abort&&this._request.abort(),this._request=null);var i=r.extend({type:"GET"},this.ajaxOptions);function e(){var e=i.transport(i,function(e){e=s.processResults(e,t);s.options.get("debug")&&window.console&&console.error&&(e&&e.results&&Array.isArray(e.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),n(e)},function(){"status"in e&&(0===e.status||"0"===e.status)||s.trigger("results:message",{message:"errorLoading"})});s._request=e}"function"==typeof i.url&&(i.url=i.url.call(this.$element,t)),"function"==typeof i.data&&(i.data=i.data.call(this.$element,t)),this.ajaxOptions.delay&&null!=t.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),u.define("select2/data/tags",["jquery"],function(t){function e(e,t,n){var s=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);i=n.get("insertTag");if(void 0!==i&&(this.insertTag=i),e.call(this,t,n),Array.isArray(s))for(var r=0;r<s.length;r++){var o=s[r],o=this._normalizeItem(o),o=this.option(o);this.$element.append(o)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var s=t.results,i=0;i<s.length;i++){var r=s[i],o=null!=r.children&&!e({results:r.children},!0);if((r.text||"").toUpperCase()===(c.term||"").toUpperCase()||o)return!n&&(t.data=s,void u(t))}if(n)return!0;var a,l=d.createTag(c);null!=l&&((a=d.option(l)).attr("data-select2-tag","true"),d.addOptions([a]),d.insertTag(s,l)),t.results=s,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){if(null==t.term)return null;t=t.term.trim();return""===t?null:{id:t,text:t}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||t(this).remove()})},e}),u.define("select2/data/tokenizer",["jquery"],function(c){function e(e,t,n){var s=n.get("tokenizer");void 0!==s&&(this.tokenizer=s),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var s=this;t.term=t.term||"";var i=this.tokenizer(t,this.options,function(e){var t,n=s._normalizeItem(e);s.$element.find("option").filter(function(){return c(this).val()===n.id}).length||((t=s.option(n)).attr("data-select2-tag",!0),s._removeOldTags(),s.addOptions([t])),t=n,s.trigger("select",{data:t})});i.term!==t.term&&(this.$search.length&&(this.$search.val(i.term),this.$search.trigger("focus")),t.term=i.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,s){for(var i=n.get("tokenSeparators")||[],r=t.term,o=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};o<r.length;){var l=r[o];-1!==i.indexOf(l)?(l=r.substr(0,o),null!=(l=a(c.extend({},t,{term:l})))?(s(l),r=r.substr(o+1)||"",o=0):o++):o++}return{term:r}},e}),u.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("select",function(){s._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var s=this;this._checkIfMaximumSelected(function(){e.call(s,t,n)})},e.prototype._checkIfMaximumSelected=function(e,t){var n=this;this.current(function(e){e=null!=e?e.length:0;0<n.maximumSelectionLength&&e>=n.maximumSelectionLength?n.trigger("results:message",{message:"maximumSelected",args:{maximum:n.maximumSelectionLength}}):t&&t()})},e}),u.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define("select2/dropdown/search",["jquery"],function(r){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get("translations").get("search"),e=r('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=e,this.$search=e.find("input"),this.$search.prop("autocomplete",this.options.get("autocomplete")),this.$search.attr("aria-label",n()),t.prepend(e),t},e.prototype.bind=function(e,t,n){var s=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){s.trigger("keypress",e),s._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){r(this).off("keyup")}),this.$search.on("keyup input",function(e){s.handleSearch(e)}),t.on("open",function(){s.$search.attr("tabindex",0),s.$search.attr("aria-controls",i),s.$search.trigger("focus"),window.setTimeout(function(){s.$search.trigger("focus")},0)}),t.on("close",function(){s.$search.attr("tabindex",-1),s.$search.removeAttr("aria-controls"),s.$search.removeAttr("aria-activedescendant"),s.$search.val(""),s.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||s.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(s.showSearch(e)?s.$searchContainer[0].classList.remove("select2-search--hide"):s.$searchContainer[0].classList.add("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?s.$search.attr("aria-activedescendant",e.data._resultId):s.$search.removeAttr("aria-activedescendant")})},e.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger("query",{term:t})),this._keyUpPrevented=!1},e.prototype.showSearch=function(e,t){return!0},e}),u.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,s){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,s)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return t="string"==typeof t?{id:"",text:t}:t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),s=t.length-1;0<=s;s--){var i=t[s];this.placeholder.id===i.id&&n.splice(s,1)}return n},e}),u.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,s){this.lastParams={},e.call(this,t,n,s),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("query",function(e){s.lastParams=e,s.loading=!0}),t.on("query:append",function(e){s.lastParams=e,s.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);!this.loading&&e&&(e=this.$results.offset().top+this.$results.outerHeight(!1),this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=e+50&&this.loadMore())},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),u.define("select2/dropdown/attachBody",["jquery","../utils"],function(u,o){function e(e,t,n){this.$dropdownParent=u(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("open",function(){s._showDropdown(),s._attachPositioningHandler(t),s._bindContainerResultHandlers(t)}),t.on("close",function(){s._hideDropdown(),s._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t[0].classList.remove("select2"),t[0].classList.add("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=u("<span></span>"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){var n;this._containerResultsHandlersBound||(n=this,t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0)},e.prototype._attachPositioningHandler=function(e,t){var n=this,s="scroll.select2."+t.id,i="resize.select2."+t.id,r="orientationchange.select2."+t.id,t=this.$container.parents().filter(o.hasScroll);t.each(function(){o.StoreData(this,"select2-scroll-position",{x:u(this).scrollLeft(),y:u(this).scrollTop()})}),t.on(s,function(e){var t=o.GetData(this,"select2-scroll-position");u(this).scrollTop(t.y)}),u(window).on(s+" "+i+" "+r,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,s="resize.select2."+t.id,t="orientationchange.select2."+t.id;this.$container.parents().filter(o.hasScroll).off(n),u(window).off(n+" "+s+" "+t)},e.prototype._positionDropdown=function(){var e=u(window),t=this.$dropdown[0].classList.contains("select2-dropdown--above"),n=this.$dropdown[0].classList.contains("select2-dropdown--below"),s=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var r={height:this.$container.outerHeight(!1)};r.top=i.top,r.bottom=i.top+r.height;var o=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<i.top-o,e=l>i.bottom+o,a={left:i.left,top:r.bottom},l=this.$dropdownParent;"static"===l.css("position")&&(l=l.offsetParent());i={top:0,left:0};(u.contains(document.body,l[0])||l[0].isConnected)&&(i=l.offset()),a.top-=i.top,a.left-=i.left,t||n||(s="below"),e||!c||t?!c&&e&&t&&(s="below"):s="above",("above"==s||t&&"below"!==s)&&(a.top=r.top-i.top-o),null!=s&&(this.$dropdown[0].classList.remove("select2-dropdown--below"),this.$dropdown[0].classList.remove("select2-dropdown--above"),this.$dropdown[0].classList.add("select2-dropdown--"+s),this.$container[0].classList.remove("select2-container--below"),this.$container[0].classList.remove("select2-container--above"),this.$container[0].classList.add("select2-container--"+s)),this.$dropdownContainer.css(a)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,s){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,s)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,s=0;s<t.length;s++){var i=t[s];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),u.define("select2/dropdown/selectOnClose",["../utils"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("close",function(e){s._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}n=this.getHighlightedResults();n.length<1||(null!=(n=s.GetData(n[0],"data")).element&&n.element.selected||null==n.element&&n.selected||this.trigger("select",{data:n}))},e}),u.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on("select",function(e){s._selectTriggered(e)}),t.on("unselect",function(e){s._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),u.define("select2/dropdown/dropdownCss",["../utils"],function(n){function e(){}return e.prototype.render=function(e){var t=e.call(this),e=this.options.get("dropdownCssClass")||"";return-1!==e.indexOf(":all:")&&(e=e.replace(":all:",""),n.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(e),t},e}),u.define("select2/dropdown/tagsSearchHighlight",["../utils"],function(s){function e(){}return e.prototype.highlightFirstItem=function(e){var t=this.$results.find(".select2-results__option--selectable:not(.select2-results__option--selected)");if(0<t.length){var n=t.first(),t=s.GetData(n[0],"data").element;if(t&&t.getAttribute&&"true"===t.getAttribute("data-select2-tag"))return void n.trigger("mouseenter")}e.call(this)},e}),u.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,e="Please delete "+t+" character";return 1!=t&&(e+="s"),e},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"},removeItem:function(){return"Remove item"},search:function(){return"Search"}}}),u.define("select2/defaults",["jquery","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/selectionCss","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./dropdown/dropdownCss","./dropdown/tagsSearchHighlight","./i18n/en"],function(l,r,o,a,c,u,d,p,h,f,g,t,m,y,v,_,b,$,w,x,A,D,S,E,O,C,L,T,q,I,e){function n(){this.reset()}return n.prototype.apply=function(e){var t;null==(e=l.extend(!0,{},this.defaults,e)).dataAdapter&&(null!=e.ajax?e.dataAdapter=v:null!=e.data?e.dataAdapter=y:e.dataAdapter=m,0<e.minimumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,$)),0<e.maximumInputLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,w)),0<e.maximumSelectionLength&&(e.dataAdapter=f.Decorate(e.dataAdapter,x)),e.tags&&(e.dataAdapter=f.Decorate(e.dataAdapter,_)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=f.Decorate(e.dataAdapter,b))),null==e.resultsAdapter&&(e.resultsAdapter=r,null!=e.ajax&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,E)),null!=e.placeholder&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,S)),e.selectOnClose&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,L)),e.tags&&(e.resultsAdapter=f.Decorate(e.resultsAdapter,I))),null==e.dropdownAdapter&&(e.multiple?e.dropdownAdapter=A:(t=f.Decorate(A,D),e.dropdownAdapter=t),0!==e.minimumResultsForSearch&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,C)),e.closeOnSelect&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,T)),null!=e.dropdownCssClass&&(e.dropdownAdapter=f.Decorate(e.dropdownAdapter,q)),e.dropdownAdapter=f.Decorate(e.dropdownAdapter,O)),null==e.selectionAdapter&&(e.multiple?e.selectionAdapter=a:e.selectionAdapter=o,null!=e.placeholder&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,c)),e.allowClear&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,u)),e.multiple&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,d)),null!=e.selectionCssClass&&(e.selectionAdapter=f.Decorate(e.selectionAdapter,p)),e.selectionAdapter=f.Decorate(e.selectionAdapter,h)),e.language=this._resolveLanguage(e.language),e.language.push("en");for(var n=[],s=0;s<e.language.length;s++){var i=e.language[s];-1===n.indexOf(i)&&n.push(i)}return e.language=n,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdLanguageBase:"./i18n/",autocomplete:"off",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:f.escapeMarkup,language:{},matcher:function e(t,n){if(null==t.term||""===t.term.trim())return n;if(n.children&&0<n.children.length){for(var s=l.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&s.children.splice(i,1);return 0<s.children.length?s:e(t,s)}var r=a(n.text).toUpperCase(),o=a(t.term).toUpperCase();return-1<r.indexOf(o)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,s=this.defaults.language,i=t.prop("lang"),t=t.closest("[lang]").prop("lang"),t=Array.prototype.concat.call(this._resolveLanguage(i),this._resolveLanguage(n),this._resolveLanguage(s),this._resolveLanguage(t));return e.language=t,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(l.isEmptyObject(e))return[];if(l.isPlainObject(e))return[e];for(var t,n=Array.isArray(e)?e:[e],s=[],i=0;i<n.length;i++)s.push(n[i]),"string"==typeof n[i]&&0<n[i].indexOf("-")&&(t=n[i].split("-")[0],s.push(t));return s},n.prototype._processTranslations=function(e,t){for(var n=new g,s=0;s<e.length;s++){var i=new g,r=e[s];if("string"==typeof r)try{i=g.loadPath(r)}catch(e){try{r=this.defaults.amdLanguageBase+r,i=g.loadPath(r)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+r+'" could not be automatically loaded. A fallback will be used instead.')}}else i=l.isPlainObject(r)?new g(r):r;n.extend(i)}return n},n.prototype.set=function(e,t){var n={};n[l.camelCase(e)]=t;n=f._convertData(n);l.extend(!0,this.defaults,n)},new n}),u.define("select2/options",["jquery","./defaults","./utils"],function(c,n,u){function e(e,t){this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=n.applyFromElement(this.options,t)),this.options=n.apply(this.options)}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.autocomplete&&e.prop("autocomplete")&&(this.options.autocomplete=e.prop("autocomplete")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),u.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),u.StoreData(e[0],"data",u.GetData(e[0],"select2Tags")),u.StoreData(e[0],"tags",!0)),u.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",u.GetData(e[0],"ajaxUrl")),u.StoreData(e[0],"ajax-Url",u.GetData(e[0],"ajaxUrl")));var n={};function s(e,t){return t.toUpperCase()}for(var i=0;i<e[0].attributes.length;i++){var r=e[0].attributes[i].name,o="data-";r.substr(0,o.length)==o&&(r=r.substring(o.length),o=u.GetData(e[0],r),n[r.replace(/-([a-z])/g,s)]=o)}c.fn.jquery&&"1."==c.fn.jquery.substr(0,2)&&e[0].dataset&&(n=c.extend(!0,{},e[0].dataset,n));var a,l=c.extend(!0,{},u.GetData(e[0]),n);for(a in l=u._convertData(l))-1<t.indexOf(a)||(c.isPlainObject(this.options[a])?c.extend(this.options[a],l[a]):this.options[a]=l[a]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),u.define("select2/core",["jquery","./options","./utils","./keys"],function(t,i,r,s){var o=function(e,t){null!=r.GetData(e[0],"select2")&&r.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new i(t,e),o.__super__.constructor.call(this);var n=e.attr("tabindex")||0;r.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");t=this.options.get("dataAdapter");this.dataAdapter=new t(e,this.options);n=this.render();this._placeContainer(n);t=this.options.get("selectionAdapter");this.selection=new t(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,n);t=this.options.get("dropdownAdapter");this.dropdown=new t(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,n);n=this.options.get("resultsAdapter");this.results=new n(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var s=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){s.trigger("selection:update",{data:e})}),e[0].classList.add("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),r.StoreData(e[0],"select2",this),e.data("select2",this)};return r.Extend(o,r.Observable),o.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+r.generateChars(2):r.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},o.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},o.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var s=this._resolveWidth(e,"style");return null!=s?s:this._resolveWidth(e,"element")}if("element"==t){s=e.outerWidth(!1);return s<=0?"auto":s+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;e=e.attr("style");if("string"!=typeof e)return null;for(var i=e.split(";"),r=0,o=i.length;r<o;r+=1){var a=i[r].replace(/\s/g,"").match(n);if(null!==a&&1<=a.length)return a[1]}return null},o.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},o.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=r.bind(this._syncAttributes,this),this._syncS=r.bind(this._syncSubtree,this),this._observer=new window.MutationObserver(function(e){t._syncA(),t._syncS(e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})},o.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},o.prototype._registerSelectionEvents=function(){var n=this,s=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===s.indexOf(e)&&n.trigger(e,t)})},o.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},o.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},o.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container[0].classList.add("select2-container--open")}),this.on("close",function(){n.$container[0].classList.remove("select2-container--open")}),this.on("enable",function(){n.$container[0].classList.remove("select2-container--disabled")}),this.on("disable",function(){n.$container[0].classList.add("select2-container--disabled")}),this.on("blur",function(){n.$container[0].classList.remove("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===s.ESC||t===s.UP&&e.altKey?(n.close(e),e.preventDefault()):t===s.ENTER||t===s.TAB?(n.trigger("results:select",{}),e.preventDefault()):t===s.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===s.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===s.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===s.ENTER||t===s.SPACE||t===s.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},o.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},o.prototype._isChangeMutation=function(e){var t=this;if(e.addedNodes&&0<e.addedNodes.length){for(var n=0;n<e.addedNodes.length;n++)if(e.addedNodes[n].selected)return!0}else{if(e.removedNodes&&0<e.removedNodes.length)return!0;if(Array.isArray(e))return e.some(function(e){return t._isChangeMutation(e)})}return!1},o.prototype._syncSubtree=function(e){var e=this._isChangeMutation(e),t=this;e&&this.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})},o.prototype.trigger=function(e,t){var n=o.__super__.trigger,s={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in s){var i=s[e],s={prevented:!1,name:e,args:t};if(n.call(this,i,s),s.prevented)return void(t.prevented=!0)}n.call(this,e,t)},o.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},o.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},o.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o.prototype.isOpen=function(){return this.$container[0].classList.contains("select2-container--open")},o.prototype.hasFocus=function(){return this.$container[0].classList.contains("select2-container--focus")},o.prototype.focus=function(e){this.hasFocus()||(this.$container[0].classList.add("select2-container--focus"),this.trigger("focus",{}))},o.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.');e=!(e=null==e||0===e.length?[!0]:e)[0];this.$element.prop("disabled",e)},o.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},o.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();e=e[0];Array.isArray(e)&&(e=e.map(function(e){return e.toString()})),this.$element.val(e).trigger("input").trigger("change")},o.prototype.destroy=function(){r.RemoveData(this.$container[0]),this.$container.remove(),this._observer.disconnect(),this._observer=null,this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",r.GetData(this.$element[0],"old-tabindex")),this.$element[0].classList.remove("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),r.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},o.prototype.render=function(){var e=t('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container[0].classList.add("select2-container--"+this.options.get("theme")),r.StoreData(e[0],"element",this.$element),e},o}),u.define("jquery-mousewheel",["jquery"],function(e){return e}),u.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,r,t,o){var a;return null==i.fn.select2&&(a=["open","close","destroy"],i.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new r(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,s=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=o.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,s)}),-1<a.indexOf(t)?this:n}),null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),r}),{define:u.define,require:u.require});function b(e,t){return i.call(e,t)}function l(e,t){var n,s,i,r,o,a,l,c,u,d,p=t&&t.split("/"),h=y.map,f=h&&h["*"]||{};if(e){for(t=(e=e.split("/")).length-1,y.nodeIdCompat&&_.test(e[t])&&(e[t]=e[t].replace(_,"")),"."===e[0].charAt(0)&&p&&(e=p.slice(0,p.length-1).concat(e)),c=0;c<e.length;c++)"."===(d=e[c])?(e.splice(c,1),--c):".."===d&&(0===c||1===c&&".."===e[2]||".."===e[c-1]||0<c&&(e.splice(c-1,2),c-=2));e=e.join("/")}if((p||f)&&h){for(c=(n=e.split("/")).length;0<c;--c){if(s=n.slice(0,c).join("/"),p)for(u=p.length;0<u;--u)if(i=h[p.slice(0,u).join("/")],i=i&&i[s]){r=i,o=c;break}if(r)break;!a&&f&&f[s]&&(a=f[s],l=c)}!r&&a&&(r=a,o=l),r&&(n.splice(0,o,r),e=n.join("/"))}return e}function w(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),o.apply(p,e.concat([t,n]))}}function x(e){var t;if(b(m,e)&&(t=m[e],delete m[e],v[e]=!0,r.apply(p,t)),!b(g,e)&&!b(v,e))throw new Error("No "+e);return g[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function A(e){return e?c(e):[]}var u=s.require("jquery.select2");return t.fn.select2.amd=s,u}); No newline at end of file
@@ -2,125 +2,126
2 git_source(:github) { |repo| "https://github.com/#{repo}.git" }
2 git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
3
4 ruby '3.1.2'
4 ruby '3.1.2'
5
5
6 #rails
6 #rails
7 gem 'rails', '~>7.0'
7 gem 'rails', '~>7.0'
8
8
9 # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
9 # The original asset pipeline for Rails [https://github.com/rails/sprockets-rails]
10 gem "sprockets-rails"
10 gem "sprockets-rails"
11
11
12 gem 'activerecord-session_store'
12 gem 'activerecord-session_store'
13 gem 'puma'
13 gem 'puma'
14
14
15 # Reduces boot times through caching; required in config/boot.rb
15 # Reduces boot times through caching; required in config/boot.rb
16 gem 'bootsnap', require: false
16 gem 'bootsnap', require: false
17
17
18 # Bundle edge Rails instead:
18 # Bundle edge Rails instead:
19 # gem 'rails', :git => 'git://github.com/rails/rails.git'
19 # gem 'rails', :git => 'git://github.com/rails/rails.git'
20
20
21 #---------------- database ---------------------
21 #---------------- database ---------------------
22 #the database
22 #the database
23 gem 'mysql2'
23 gem 'mysql2'
24 #for testing
24 #for testing
25 gem 'sqlite3'
25 gem 'sqlite3'
26 - gem 'rails-controller-testing'
26 + #gem 'rails-controller-testing'
27 #for dumping database into yaml
27 #for dumping database into yaml
28 - gem 'yaml_db'
28 + #gem 'yaml_db'
29
29
30
30
31 #------------- assset pipeline -----------------
31 #------------- assset pipeline -----------------
32 # Gems used only for assets and not required
32 # Gems used only for assets and not required
33 # in production environments by default.
33 # in production environments by default.
34 #sass-rails is depricated
34 #sass-rails is depricated
35 #gem 'sass-rails'
35 #gem 'sass-rails'
36 gem 'sassc-rails'
36 gem 'sassc-rails'
37 gem 'coffee-rails'
37 gem 'coffee-rails'
38 + gem 'material_icons'
38
39
39 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
40 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
40 # gem 'therubyracer', :platforms => :ruby
41 # gem 'therubyracer', :platforms => :ruby
41
42
42 - gem 'uglifier'
43 + gem "importmap-rails", "~> 1.1"
44 + # gem 'uglifier'
43
45
44 gem 'haml'
46 gem 'haml'
45 gem 'haml-rails'
47 gem 'haml-rails'
46
48
47 # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
49 # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
48 #gem 'turbolinks', '~> 5'
50 #gem 'turbolinks', '~> 5'
49 # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
51 # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
50 gem 'jbuilder'
52 gem 'jbuilder'
51
53
52
54
53 #in-place editor
55 #in-place editor
54 gem 'best_in_place', git: "https://github.com/mmotherwell/best_in_place"
56 gem 'best_in_place', git: "https://github.com/mmotherwell/best_in_place"
55
57
56 # jquery addition
58 # jquery addition
57 - #gem 'jquery-rails'
59 + gem 'jquery-rails'
58 #gem 'jquery-ui-rails'
60 #gem 'jquery-ui-rails'
59 #gem 'jquery-timepicker-addon-rails'
61 #gem 'jquery-timepicker-addon-rails'
60 #gem 'jquery-tablesorter'
62 #gem 'jquery-tablesorter'
61 #gem 'jquery-countdown-rails'
63 #gem 'jquery-countdown-rails'
62
64
63 #syntax highlighter
65 #syntax highlighter
64 gem 'rouge'
66 gem 'rouge'
65
67
66 #bootstrap add-ons
68 #bootstrap add-ons
67 #gem 'bootstrap-sass', '~> 3.4.1'
69 #gem 'bootstrap-sass', '~> 3.4.1'
68 gem 'bootstrap', '~> 5.2'
70 gem 'bootstrap', '~> 5.2'
69 #gem 'bootstrap-switch-rails'
71 #gem 'bootstrap-switch-rails'
70 #gem 'bootstrap-toggle-rails'
72 #gem 'bootstrap-toggle-rails'
71 #gem 'autoprefixer-rails'
73 #gem 'autoprefixer-rails'
72 - #gem 'momentjs-rails', '>= 2.9.0'
74 + gem 'momentjs-rails'
73 #gem 'rails_bootstrap_sortable'
75 #gem 'rails_bootstrap_sortable'
74 #gem 'bootstrap-datepicker-rails'
76 #gem 'bootstrap-datepicker-rails'
75 #gem 'bootstrap3-datetimepicker-rails', '~> 4.17.47'
77 #gem 'bootstrap3-datetimepicker-rails', '~> 4.17.47'
76 #gem 'jquery-datatables-rails'
78 #gem 'jquery-datatables-rails'
77
79
78 #----------- user interface -----------------
80 #----------- user interface -----------------
79 gem 'simple_form'
81 gem 'simple_form'
80 #select 2
82 #select 2
81 - gem 'select2-rails'
83 + #gem 'select2-rails'
82 #ace editor
84 #ace editor
83 gem 'ace-rails-ap'
85 gem 'ace-rails-ap'
84 #paginator
86 #paginator
85 #gem 'will_paginate', '~> 3.0.7'
87 #gem 'will_paginate', '~> 3.0.7'
86
88
87 gem 'mail'
89 gem 'mail'
88 gem 'rdiscount'
90 gem 'rdiscount'
89 gem 'dynamic_form'
91 gem 'dynamic_form'
90 gem 'in_place_editing'
92 gem 'in_place_editing'
91 #gem 'verification', :git => 'https://github.com/sikachu/verification.git'
93 #gem 'verification', :git => 'https://github.com/sikachu/verification.git'
92
94
93
95
94 #---------------- testiing -----------------------
96 #---------------- testiing -----------------------
95 gem 'minitest-reporters'
97 gem 'minitest-reporters'
96
98
97 #---------------- for console --------------------
99 #---------------- for console --------------------
98 gem 'fuzzy-string-match'
100 gem 'fuzzy-string-match'
99
101
100
102
101 group :development, :test do
103 group :development, :test do
102 # Call 'byebug' anywhere in the code to stop execution and get a debugger console
104 # Call 'byebug' anywhere in the code to stop execution and get a debugger console
103 gem 'debug', platforms: [:mri, :mingw, :x64_mingw]
105 gem 'debug', platforms: [:mri, :mingw, :x64_mingw]
104 end
106 end
105
107
106 group :development do
108 group :development do
107 # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
109 # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
108 gem 'web-console', '>= 3.3.0'
110 gem 'web-console', '>= 3.3.0'
109 gem 'listen', '>= 3.0.5', '< 3.2'
111 gem 'listen', '>= 3.0.5', '< 3.2'
110 # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
112 # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
111 gem 'spring'
113 gem 'spring'
112 gem 'spring-watcher-listen', '~> 2.0.0'
114 gem 'spring-watcher-listen', '~> 2.0.0'
113
115
114 # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
116 # Add speed badges [https://github.com/MiniProfiler/rack-mini-profiler]
115 # gem "rack-mini-profiler"
117 # gem "rack-mini-profiler"
116 end
118 end
117
119
118 group :test do
120 group :test do
119 # Adds support for Capybara system testing and selenium driver
121 # Adds support for Capybara system testing and selenium driver
120 gem 'capybara'
122 gem 'capybara'
121 gem 'selenium-webdriver'
123 gem 'selenium-webdriver'
122 gem 'webdrivers'
124 gem 'webdrivers'
123 end
125 end
124
126
125
127
126 - gem "importmap-rails", "~> 1.1"
@@ -134,219 +134,220
134 tilt
134 tilt
135 haml-rails (2.0.1)
135 haml-rails (2.0.1)
136 actionpack (>= 5.1)
136 actionpack (>= 5.1)
137 activesupport (>= 5.1)
137 activesupport (>= 5.1)
138 haml (>= 4.0.6, < 6.0)
138 haml (>= 4.0.6, < 6.0)
139 html2haml (>= 1.0.1)
139 html2haml (>= 1.0.1)
140 railties (>= 5.1)
140 railties (>= 5.1)
141 html2haml (2.2.0)
141 html2haml (2.2.0)
142 erubis (~> 2.7.0)
142 erubis (~> 2.7.0)
143 haml (>= 4.0, < 6)
143 haml (>= 4.0, < 6)
144 nokogiri (>= 1.6.0)
144 nokogiri (>= 1.6.0)
145 ruby_parser (~> 3.5)
145 ruby_parser (~> 3.5)
146 i18n (1.12.0)
146 i18n (1.12.0)
147 concurrent-ruby (~> 1.0)
147 concurrent-ruby (~> 1.0)
148 importmap-rails (1.1.5)
148 importmap-rails (1.1.5)
149 actionpack (>= 6.0.0)
149 actionpack (>= 6.0.0)
150 railties (>= 6.0.0)
150 railties (>= 6.0.0)
151 in_place_editing (1.2.0)
151 in_place_editing (1.2.0)
152 io-console (0.5.11)
152 io-console (0.5.11)
153 irb (1.4.1)
153 irb (1.4.1)
154 reline (>= 0.3.0)
154 reline (>= 0.3.0)
155 jbuilder (2.11.5)
155 jbuilder (2.11.5)
156 actionview (>= 5.0.0)
156 actionview (>= 5.0.0)
157 activesupport (>= 5.0.0)
157 activesupport (>= 5.0.0)
158 + jquery-rails (4.5.0)
159 + rails-dom-testing (>= 1, < 3)
160 + railties (>= 4.2.0)
161 + thor (>= 0.14, < 2.0)
158 listen (3.0.8)
162 listen (3.0.8)
159 rb-fsevent (~> 0.9, >= 0.9.4)
163 rb-fsevent (~> 0.9, >= 0.9.4)
160 rb-inotify (~> 0.9, >= 0.9.7)
164 rb-inotify (~> 0.9, >= 0.9.7)
161 loofah (2.18.0)
165 loofah (2.18.0)
162 crass (~> 1.0.2)
166 crass (~> 1.0.2)
163 nokogiri (>= 1.5.9)
167 nokogiri (>= 1.5.9)
164 mail (2.7.1)
168 mail (2.7.1)
165 mini_mime (>= 0.1.1)
169 mini_mime (>= 0.1.1)
166 marcel (1.0.2)
170 marcel (1.0.2)
171 + material_icons (2.2.1)
172 + railties (>= 3.2)
167 matrix (0.4.2)
173 matrix (0.4.2)
168 method_source (1.0.0)
174 method_source (1.0.0)
169 mini_mime (1.1.2)
175 mini_mime (1.1.2)
170 minitest (5.16.3)
176 minitest (5.16.3)
171 minitest-reporters (1.5.0)
177 minitest-reporters (1.5.0)
172 ansi
178 ansi
173 builder
179 builder
174 minitest (>= 5.0)
180 minitest (>= 5.0)
175 ruby-progressbar
181 ruby-progressbar
182 + momentjs-rails (2.29.4.1)
183 + railties (>= 3.1)
176 msgpack (1.5.6)
184 msgpack (1.5.6)
177 multi_json (1.15.0)
185 multi_json (1.15.0)
178 mysql2 (0.5.4)
186 mysql2 (0.5.4)
179 net-imap (0.2.3)
187 net-imap (0.2.3)
180 digest
188 digest
181 net-protocol
189 net-protocol
182 strscan
190 strscan
183 net-pop (0.1.1)
191 net-pop (0.1.1)
184 digest
192 digest
185 net-protocol
193 net-protocol
186 timeout
194 timeout
187 net-protocol (0.1.3)
195 net-protocol (0.1.3)
188 timeout
196 timeout
189 net-smtp (0.3.1)
197 net-smtp (0.3.1)
190 digest
198 digest
191 net-protocol
199 net-protocol
192 timeout
200 timeout
193 nio4r (2.5.8)
201 nio4r (2.5.8)
202 + nokogiri (1.13.8-x86_64-darwin)
203 + racc (~> 1.4)
194 nokogiri (1.13.8-x86_64-linux)
204 nokogiri (1.13.8-x86_64-linux)
195 racc (~> 1.4)
205 racc (~> 1.4)
196 popper_js (2.11.5)
206 popper_js (2.11.5)
197 public_suffix (5.0.0)
207 public_suffix (5.0.0)
198 puma (5.6.5)
208 puma (5.6.5)
199 nio4r (~> 2.0)
209 nio4r (~> 2.0)
200 racc (1.6.0)
210 racc (1.6.0)
201 rack (2.2.4)
211 rack (2.2.4)
202 rack-test (2.0.2)
212 rack-test (2.0.2)
203 rack (>= 1.3)
213 rack (>= 1.3)
204 rails (7.0.4)
214 rails (7.0.4)
205 actioncable (= 7.0.4)
215 actioncable (= 7.0.4)
206 actionmailbox (= 7.0.4)
216 actionmailbox (= 7.0.4)
207 actionmailer (= 7.0.4)
217 actionmailer (= 7.0.4)
208 actionpack (= 7.0.4)
218 actionpack (= 7.0.4)
209 actiontext (= 7.0.4)
219 actiontext (= 7.0.4)
210 actionview (= 7.0.4)
220 actionview (= 7.0.4)
211 activejob (= 7.0.4)
221 activejob (= 7.0.4)
212 activemodel (= 7.0.4)
222 activemodel (= 7.0.4)
213 activerecord (= 7.0.4)
223 activerecord (= 7.0.4)
214 activestorage (= 7.0.4)
224 activestorage (= 7.0.4)
215 activesupport (= 7.0.4)
225 activesupport (= 7.0.4)
216 bundler (>= 1.15.0)
226 bundler (>= 1.15.0)
217 railties (= 7.0.4)
227 railties (= 7.0.4)
218 - rails-controller-testing (1.0.5)
219 - actionpack (>= 5.0.1.rc1)
220 - actionview (>= 5.0.1.rc1)
221 - activesupport (>= 5.0.1.rc1)
222 rails-dom-testing (2.0.3)
228 rails-dom-testing (2.0.3)
223 activesupport (>= 4.2.0)
229 activesupport (>= 4.2.0)
224 nokogiri (>= 1.6)
230 nokogiri (>= 1.6)
225 rails-html-sanitizer (1.4.3)
231 rails-html-sanitizer (1.4.3)
226 loofah (~> 2.3)
232 loofah (~> 2.3)
227 railties (7.0.4)
233 railties (7.0.4)
228 actionpack (= 7.0.4)
234 actionpack (= 7.0.4)
229 activesupport (= 7.0.4)
235 activesupport (= 7.0.4)
230 method_source
236 method_source
231 rake (>= 12.2)
237 rake (>= 12.2)
232 thor (~> 1.0)
238 thor (~> 1.0)
233 zeitwerk (~> 2.5)
239 zeitwerk (~> 2.5)
234 rake (13.0.6)
240 rake (13.0.6)
235 rb-fsevent (0.11.2)
241 rb-fsevent (0.11.2)
236 rb-inotify (0.10.1)
242 rb-inotify (0.10.1)
237 ffi (~> 1.0)
243 ffi (~> 1.0)
238 rdiscount (2.2.0.2)
244 rdiscount (2.2.0.2)
239 regexp_parser (2.5.0)
245 regexp_parser (2.5.0)
240 reline (0.3.1)
246 reline (0.3.1)
241 io-console (~> 0.5)
247 io-console (~> 0.5)
242 rexml (3.2.5)
248 rexml (3.2.5)
243 rouge (4.0.0)
249 rouge (4.0.0)
244 ruby-progressbar (1.11.0)
250 ruby-progressbar (1.11.0)
245 ruby_parser (3.19.1)
251 ruby_parser (3.19.1)
246 sexp_processor (~> 4.16)
252 sexp_processor (~> 4.16)
247 rubyzip (2.3.2)
253 rubyzip (2.3.2)
248 sassc (2.4.0)
254 sassc (2.4.0)
249 ffi (~> 1.9)
255 ffi (~> 1.9)
250 sassc-rails (2.1.2)
256 sassc-rails (2.1.2)
251 railties (>= 4.0.0)
257 railties (>= 4.0.0)
252 sassc (>= 2.0)
258 sassc (>= 2.0)
253 sprockets (> 3.0)
259 sprockets (> 3.0)
254 sprockets-rails
260 sprockets-rails
255 tilt
261 tilt
256 - select2-rails (4.0.13)
257 selenium-webdriver (4.4.0)
262 selenium-webdriver (4.4.0)
258 childprocess (>= 0.5, < 5.0)
263 childprocess (>= 0.5, < 5.0)
259 rexml (~> 3.2, >= 3.2.5)
264 rexml (~> 3.2, >= 3.2.5)
260 rubyzip (>= 1.2.2, < 3.0)
265 rubyzip (>= 1.2.2, < 3.0)
261 websocket (~> 1.0)
266 websocket (~> 1.0)
262 sexp_processor (4.16.1)
267 sexp_processor (4.16.1)
263 simple_form (5.1.0)
268 simple_form (5.1.0)
264 actionpack (>= 5.2)
269 actionpack (>= 5.2)
265 activemodel (>= 5.2)
270 activemodel (>= 5.2)
266 spring (2.1.1)
271 spring (2.1.1)
267 spring-watcher-listen (2.0.1)
272 spring-watcher-listen (2.0.1)
268 listen (>= 2.7, < 4.0)
273 listen (>= 2.7, < 4.0)
269 spring (>= 1.2, < 3.0)
274 spring (>= 1.2, < 3.0)
270 sprockets (4.1.1)
275 sprockets (4.1.1)
271 concurrent-ruby (~> 1.0)
276 concurrent-ruby (~> 1.0)
272 rack (> 1, < 3)
277 rack (> 1, < 3)
273 sprockets-rails (3.4.2)
278 sprockets-rails (3.4.2)
274 actionpack (>= 5.2)
279 actionpack (>= 5.2)
275 activesupport (>= 5.2)
280 activesupport (>= 5.2)
276 sprockets (>= 3.0.0)
281 sprockets (>= 3.0.0)
282 + sqlite3 (1.5.0-x86_64-darwin)
277 sqlite3 (1.5.0-x86_64-linux)
283 sqlite3 (1.5.0-x86_64-linux)
278 strscan (3.0.4)
284 strscan (3.0.4)
279 temple (0.8.2)
285 temple (0.8.2)
280 thor (1.2.1)
286 thor (1.2.1)
281 tilt (2.0.11)
287 tilt (2.0.11)
282 timeout (0.3.0)
288 timeout (0.3.0)
283 tzinfo (2.0.5)
289 tzinfo (2.0.5)
284 concurrent-ruby (~> 1.0)
290 concurrent-ruby (~> 1.0)
285 - uglifier (4.2.0)
286 - execjs (>= 0.3.0, < 3)
287 web-console (4.2.0)
291 web-console (4.2.0)
288 actionview (>= 6.0.0)
292 actionview (>= 6.0.0)
289 activemodel (>= 6.0.0)
293 activemodel (>= 6.0.0)
290 bindex (>= 0.4.0)
294 bindex (>= 0.4.0)
291 railties (>= 6.0.0)
295 railties (>= 6.0.0)
292 webdrivers (5.0.0)
296 webdrivers (5.0.0)
293 nokogiri (~> 1.6)
297 nokogiri (~> 1.6)
294 rubyzip (>= 1.3.0)
298 rubyzip (>= 1.3.0)
295 selenium-webdriver (~> 4.0)
299 selenium-webdriver (~> 4.0)
296 websocket (1.2.9)
300 websocket (1.2.9)
297 websocket-driver (0.7.5)
301 websocket-driver (0.7.5)
298 websocket-extensions (>= 0.1.0)
302 websocket-extensions (>= 0.1.0)
299 websocket-extensions (0.1.5)
303 websocket-extensions (0.1.5)
300 xpath (3.2.0)
304 xpath (3.2.0)
301 nokogiri (~> 1.8)
305 nokogiri (~> 1.8)
302 - yaml_db (0.7.0)
303 - rails (>= 3.0)
304 - rake (>= 0.8.7)
305 zeitwerk (2.6.0)
306 zeitwerk (2.6.0)
306
307
307 PLATFORMS
308 PLATFORMS
309 + x86_64-darwin-20
308 x86_64-linux
310 x86_64-linux
309
311
310 DEPENDENCIES
312 DEPENDENCIES
311 ace-rails-ap
313 ace-rails-ap
312 activerecord-session_store
314 activerecord-session_store
313 best_in_place!
315 best_in_place!
314 bootsnap
316 bootsnap
315 bootstrap (~> 5.2)
317 bootstrap (~> 5.2)
316 capybara
318 capybara
317 coffee-rails
319 coffee-rails
318 debug
320 debug
319 dynamic_form
321 dynamic_form
320 fuzzy-string-match
322 fuzzy-string-match
321 haml
323 haml
322 haml-rails
324 haml-rails
323 importmap-rails (~> 1.1)
325 importmap-rails (~> 1.1)
324 in_place_editing
326 in_place_editing
325 jbuilder
327 jbuilder
328 + jquery-rails
326 listen (>= 3.0.5, < 3.2)
329 listen (>= 3.0.5, < 3.2)
327 mail
330 mail
331 + material_icons
328 minitest-reporters
332 minitest-reporters
333 + momentjs-rails
329 mysql2
334 mysql2
330 puma
335 puma
331 rails (~> 7.0)
336 rails (~> 7.0)
332 - rails-controller-testing
333 rdiscount
337 rdiscount
334 rouge
338 rouge
335 sassc-rails
339 sassc-rails
336 - select2-rails
337 selenium-webdriver
340 selenium-webdriver
338 simple_form
341 simple_form
339 spring
342 spring
340 spring-watcher-listen (~> 2.0.0)
343 spring-watcher-listen (~> 2.0.0)
341 sprockets-rails
344 sprockets-rails
342 sqlite3
345 sqlite3
343 - uglifier
344 web-console (>= 3.3.0)
346 web-console (>= 3.3.0)
345 webdrivers
347 webdrivers
346 - yaml_db
347
348
348 RUBY VERSION
349 RUBY VERSION
349 ruby 3.1.2p20
350 ruby 3.1.2p20
350
351
351 BUNDLED WITH
352 BUNDLED WITH
352 2.3.22
353 2.3.22
@@ -1,5 +1,7
1 //= link_tree ../images
1 //= link_tree ../images
2 //= link_directory ../stylesheets .css
2 //= link_directory ../stylesheets .css
3 //= link_tree ../../javascript .js
3 //= link_tree ../../javascript .js
4 //= link_tree ../../../vendor/javascript .js
4 //= link_tree ../../../vendor/javascript .js
5 + //entry point
6 + //= link my_app.js
5
7
@@ -32,24 +32,26
32 //= require ace-rails-ap
32 //= require ace-rails-ap
33 //= require ace/mode-c_cpp
33 //= require ace/mode-c_cpp
34 //= require ace/mode-python
34 //= require ace/mode-python
35 //= require ace/mode-ruby
35 //= require ace/mode-ruby
36 //= require ace/mode-pascal
36 //= require ace/mode-pascal
37 //= require ace/mode-javascript
37 //= require ace/mode-javascript
38 //= require ace/mode-java
38 //= require ace/mode-java
39 //= require ace/theme-merbivore
39 //= require ace/theme-merbivore
40 //= require custom
40 //= require custom
41 //= require jquery.countdown
41 //= require jquery.countdown
42 //-------------- addition from local_jquery -----------
42 //-------------- addition from local_jquery -----------
43 //= require jquery-tablesorter
43 //= require jquery-tablesorter
44 //= require best_in_place
44 //= require best_in_place
45 //= require best_in_place.jquery-ui
45 //= require best_in_place.jquery-ui
46 //= require brython
46 //= require brython
47 //= re quire bootstrap-datepicker
47 //= re quire bootstrap-datepicker
48 //= require bootstrap-datetimepicker
48 //= require bootstrap-datetimepicker
49
49
50 // since this is after blank line, it is not downloaded
50 // since this is after blank line, it is not downloaded
51 //x= require prototype
51 //x= require prototype
52 //x= require prototype_ujs
52 //x= require prototype_ujs
53 //x= require effects
53 //x= require effects
54 //x= require dragdrop
54 //x= require dragdrop
55 //x= require controls
55 //x= require controls
56 +
57 + console.log('app-backup.js')
@@ -6,79 +6,79
6 *
6 *
7 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
7 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
8 * compiled file so the styles you add here take precedence over styles defined in any styles
8 * compiled file so the styles you add here take precedence over styles defined in any styles
9 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
9 * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
10 * file per style scope.
10 * file per style scope.
11 *
11 *
12 * // bootstrap says that we should not do this, but @import each file instead
12 * // bootstrap says that we should not do this, but @import each file instead
13 * # *= require_tree .
13 * # *= require_tree .
14 * # *= require_self
14 * # *= require_self
15 */
15 */
16
16
17 //@import "jquery-ui";
17 //@import "jquery-ui";
18 //@import "jquery.ui.core";
18 //@import "jquery.ui.core";
19 //@import "jquery.ui.theme";
19 //@import "jquery.ui.theme";
20 //@import "jquery.ui.datepicker";
20 //@import "jquery.ui.datepicker";
21 //@import "jquery.ui.slider";
21 //@import "jquery.ui.slider";
22 //@import "jquery-ui-timepicker-addon";
22 //@import "jquery-ui-timepicker-addon";
23 //@import "jquery-tablesorter/theme.metro-dark";
23 //@import "jquery-tablesorter/theme.metro-dark";
24 //@import "jquery.countdown";
24 //@import "jquery.countdown";
25 //@import "tablesorter-theme.cafe";
25 //@import "tablesorter-theme.cafe";
26
26
27 //bootstrap
27 //bootstrap
28 //@import "bootstrap-sprockets";
28 //@import "bootstrap-sprockets";
29 @import "bootstrap";
29 @import "bootstrap";
30 - @import "select2";
30 + @import "select2/select2.min";
31 - @import "select2-bootstrap";
31 + @import "select2/select2-bootstrap-5-theme.min";
32
32
33 //@import bootstrap3-switch
33 //@import bootstrap3-switch
34 //@import "bootstrap-toggle";
34 //@import "bootstrap-toggle";
35 //@import "bootstrap-sortable";
35 //@import "bootstrap-sortable";
36 //@import "bootstrap-datepicker3";
36 //@import "bootstrap-datepicker3";
37 //@import "bootstrap-datetimepicker";
37 //@import "bootstrap-datetimepicker";
38 //@import "datatables.net-bs/css/dataTables.bootstrap.min";
38 //@import "datatables.net-bs/css/dataTables.bootstrap.min";
39 //@import "datatables.net-buttons-bs/css/buttons.bootstrap.min";
39 //@import "datatables.net-buttons-bs/css/buttons.bootstrap.min";
40
40
41 //new import
41 //new import
42 @import 'datatables/datatables.min';
42 @import 'datatables/datatables.min';
43
43
44 //bootstrap navbar color (from)
44 //bootstrap navbar color (from)
45 $bgDefault: #19197b;
45 $bgDefault: #19197b;
46 $bgHighlight: #06064b;
46 $bgHighlight: #06064b;
47 $colDefault: #8e8eb4;
47 $colDefault: #8e8eb4;
48 $colHighlight: #ffffff;
48 $colHighlight: #ffffff;
49 $dropDown: false;
49 $dropDown: false;
50
50
51 @font-face {
51 @font-face {
52 font-family: 'Glyphicons Halflings';
52 font-family: 'Glyphicons Halflings';
53 src: font-path('bootstrap/glyphicons-halflings-regular.eot');
53 src: font-path('bootstrap/glyphicons-halflings-regular.eot');
54 src: font-path('bootstrap/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
54 src: font-path('bootstrap/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),
55 font-path('bootstrap/glyphicons-halflings-regular.woff') format('woff'),
55 font-path('bootstrap/glyphicons-halflings-regular.woff') format('woff'),
56 font-path('bootstrap/glyphicons-halflings-regular.ttf') format('truetype'),
56 font-path('bootstrap/glyphicons-halflings-regular.ttf') format('truetype'),
57 font-path('bootstrap/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
57 font-path('bootstrap/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
58 }
58 }
59
59
60 -
60 + /*
61 .navbar-default {
61 .navbar-default {
62 background-color: $bgDefault;
62 background-color: $bgDefault;
63 border-color: $bgHighlight;
63 border-color: $bgHighlight;
64
64
65 .navbar-brand {
65 .navbar-brand {
66 color: $colDefault;
66 color: $colDefault;
67
67
68 &:hover, &:focus {
68 &:hover, &:focus {
69 color: $colHighlight;
69 color: $colHighlight;
70 }
70 }
71 }
71 }
72
72
73 .navbar-text {
73 .navbar-text {
74 color: $colDefault;
74 color: $colDefault;
75 }
75 }
76
76
77 .navbar-nav {
77 .navbar-nav {
78 > li {
78 > li {
79 > a {
79 > a {
80 color: $colDefault;
80 color: $colDefault;
81
81
82 &:hover, &:focus {
82 &:hover, &:focus {
83 color: $colHighlight;
83 color: $colHighlight;
84 }
84 }
@@ -135,67 +135,69
135
135
136 &:hover, &:focus {
136 &:hover, &:focus {
137 background-color: $bgHighlight;
137 background-color: $bgHighlight;
138 }
138 }
139
139
140 .icon-bar {
140 .icon-bar {
141 background-color: $colDefault;
141 background-color: $colDefault;
142 }
142 }
143 }
143 }
144
144
145 .navbar-collapse,
145 .navbar-collapse,
146 .navbar-form {
146 .navbar-form {
147 border-color: $colDefault;
147 border-color: $colDefault;
148 }
148 }
149
149
150 .navbar-link {
150 .navbar-link {
151 color: $colDefault;
151 color: $colDefault;
152
152
153 &:hover {
153 &:hover {
154 color: $colHighlight;
154 color: $colHighlight;
155 }
155 }
156 }
156 }
157 }
157 }
158
158
159 +
159 @media (max-width: 767px) {
160 @media (max-width: 767px) {
160 .navbar-default .navbar-nav .open .dropdown-menu {
161 .navbar-default .navbar-nav .open .dropdown-menu {
161 > li > a {
162 > li > a {
162 color: $colDefault;
163 color: $colDefault;
163
164
164 &:hover, &:focus {
165 &:hover, &:focus {
165 color: $colHighlight;
166 color: $colHighlight;
166 }
167 }
167 }
168 }
168
169
169 > .active {
170 > .active {
170 > a, > a:hover, > a:focus {
171 > a, > a:hover, > a:focus {
171 color: $colHighlight;
172 color: $colHighlight;
172 background-color: $bgHighlight;
173 background-color: $bgHighlight;
173 }
174 }
174 }
175 }
175 }
176 }
176 }
177 }
177
178
179 + */
178 .secondnavbar {
180 .secondnavbar {
179 top: 50px;
181 top: 50px;
180 }
182 }
181
183
182 // --------------- bootstrap file upload ----------------------
184 // --------------- bootstrap file upload ----------------------
183 .btn-file {
185 .btn-file {
184 position: relative;
186 position: relative;
185 overflow: hidden;
187 overflow: hidden;
186 }
188 }
187
189
188 .btn-file input[type=file] {
190 .btn-file input[type=file] {
189 position: absolute;
191 position: absolute;
190 top: 0;
192 top: 0;
191 right: 0;
193 right: 0;
192 min-width: 100%;
194 min-width: 100%;
193 min-height: 100%;
195 min-height: 100%;
194 font-size: 100px;
196 font-size: 100px;
195 text-align: right;
197 text-align: right;
196 filter: alpha(opacity = 0);
198 filter: alpha(opacity = 0);
197 opacity: 0;
199 opacity: 0;
198 outline: none;
200 outline: none;
199 background: white;
201 background: white;
200 cursor: inherit;
202 cursor: inherit;
201 display: block;
203 display: block;
@@ -1,50 +1,61
1 // Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
1 // Configure your import map in config/importmap.rb. Read more: https://github.com/rails/importmap-rails
2 //import "@hotwired/turbo-rails"
2 //import "@hotwired/turbo-rails"
3 //import "controllers"
3 //import "controllers"
4 //
4 //
5
5
6 + //import "my_sprocket"
6 import "pdfmake"
7 import "pdfmake"
7 import "pdfmake-vfs"
8 import "pdfmake-vfs"
8 import "jszip"
9 import "jszip"
9
10
10 //bootstrap
11 //bootstrap
11 import "bootstrap"
12 import "bootstrap"
12 window.bootstrap = bootstrap
13 window.bootstrap = bootstrap
13 console.log($); // ok
14 console.log($); // ok
14 console.log(bootstrap)
15 console.log(bootstrap)
15 console.log(JSZip);
16 console.log(JSZip);
16
17
17 //datatable
18 //datatable
18 //import 'datatables-bundle'
19 //import 'datatables-bundle'
19 import "datatables"
20 import "datatables"
20 import "datatables-bs5"
21 import "datatables-bs5"
21 import "datatables-editor"
22 import "datatables-editor"
22 - //import "datatables-editor-bs5"
23 + import "datatables-editor-bs5"
23 import "datatables-autofill"
24 import "datatables-autofill"
24 import "datatables-autofill-bs5"
25 import "datatables-autofill-bs5"
25 import "datatables-button"
26 import "datatables-button"
26 import "datatables-button-bs5"
27 import "datatables-button-bs5"
27 import "datatables-button-colvis"
28 import "datatables-button-colvis"
28 import "datatables-button-html5"
29 import "datatables-button-html5"
29 import "datatables-button-print"
30 import "datatables-button-print"
30 import "datatables-colrecorder"
31 import "datatables-colrecorder"
31 import "datatables-datetime"
32 import "datatables-datetime"
32 import "datatables-fixedcolumns"
33 import "datatables-fixedcolumns"
33 import "datatables-fixedheader"
34 import "datatables-fixedheader"
34 import "datatables-keytable"
35 import "datatables-keytable"
35 import "datatables-responsive"
36 import "datatables-responsive"
36 import "datatables-responsive-bs5"
37 import "datatables-responsive-bs5"
37 import "datatables-rowgroup"
38 import "datatables-rowgroup"
38 import "datatables-rowreorder"
39 import "datatables-rowreorder"
39 import "datatables-scroller"
40 import "datatables-scroller"
40 import "datatables-searchbuilder"
41 import "datatables-searchbuilder"
41 import "datatables-searchbuilder-bs5"
42 import "datatables-searchbuilder-bs5"
42 import "datatables-searchpanes"
43 import "datatables-searchpanes"
43 import "datatables-searchpanes-bs5"
44 import "datatables-searchpanes-bs5"
44 import "datatables-select"
45 import "datatables-select"
45 import "datatables-staterestore"
46 import "datatables-staterestore"
46 import "datatables-staterestore-bs5"
47 import "datatables-staterestore-bs5"
47 /* */
48 /* */
48
49
50 + import "select2"
51 +
52 + //import "ace-rails-ap"
53 + //import "ace/theme-merbivore"
54 + //import "ace/mode-python"
55 +
56 + //my own customization
57 + import 'custom'
58 +
59 +
49 console.log('application.js ready')
60 console.log('application.js ready')
50
61
@@ -1,102 +1,82
1 - %header.navbar.navbar-default.navbar-fixed-top
1 + %header
2 - %nav
2 + %nav.navbar.fixed-top.navbar-dark.bg-primary.navbar-expand-lg
3 .container-fluid
3 .container-fluid
4 - .navbar-header
5 - %button.navbar-toggle.collapsed{ data: {toggle: 'collapse', target: '#navbar-collapse'} }
6 - %span.sr-only Togggle Navigation
7 - %span.icon-bar
8 - %span.icon-bar
9 - %span.icon-bar
10 %a.navbar-brand{href: list_main_path}
4 %a.navbar-brand{href: list_main_path}
11 %span.glyphicon.glyphicon-home
5 %span.glyphicon.glyphicon-home
12 MAIN
6 MAIN
7 + %button.navbar-toggler.collapsed{ type: :button, 'data-bs': {toggle: 'collapse', target: '#navbar-collapse'} }
8 + %span.navbar-toggler-icon
13 .collapse.navbar-collapse#navbar-collapse
9 .collapse.navbar-collapse#navbar-collapse
14 - %ul.nav.navbar-nav
10 + %ul.navbar-nav.me-auto.mb-2.mb-lg-0
15 / submission
11 / submission
16 - if (@current_user!=nil) and (GraderConfiguration.show_tasks_to?(@current_user))
12 - if (@current_user!=nil) and (GraderConfiguration.show_tasks_to?(@current_user))
17 - %li.dropdown
13 + %li.nav-item.dropdown
18 - %a.dropdown-toggle{href: '#', data: {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
14 + %a.nav-link.dropdown-toggle{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {expanded:"false"}, role: "button"}
19 = "#{I18n.t 'menu.submissions'}"
15 = "#{I18n.t 'menu.submissions'}"
20 - %span.caret
21 %ul.dropdown-menu
16 %ul.dropdown-menu
22 - = add_menu("View", 'submissions', 'index')
17 + %li= link_to 'View', submissions_path, class:'dropdown-item'
23 - = add_menu("Self Test", 'test', 'index')
18 + %li= link_to 'Self Test', test_index_path, class:'dropdown-item'
24 / hall of fame
19 / hall of fame
25 - if GraderConfiguration['right.user_hall_of_fame']
20 - if GraderConfiguration['right.user_hall_of_fame']
26 - = add_menu("#{I18n.t 'menu.hall_of_fame'}", 'report', 'problem_hof')
21 + = add_menu("#{I18n.t 'menu.hall_of_fame'}", 'report', 'problem_hof', class: 'nav-item')
27 / display MODE button (with countdown in contest mode)
22 / display MODE button (with countdown in contest mode)
28 - if GraderConfiguration.analysis_mode?
23 - if GraderConfiguration.analysis_mode?
29 %div.navbar-btn.btn.btn-success#countdown= "ANALYSIS MODE"
24 %div.navbar-btn.btn.btn-success#countdown= "ANALYSIS MODE"
30 - elsif GraderConfiguration.time_limit_mode?
25 - elsif GraderConfiguration.time_limit_mode?
31 - if @current_user.contest_finished?
26 - if @current_user.contest_finished?
32 %div.navbar-btn.btn.btn-danger#countdown= "Contest is over"
27 %div.navbar-btn.btn.btn-danger#countdown= "Contest is over"
33 - elsif !@current_user.contest_started?
28 - elsif !@current_user.contest_started?
34 %div.navbar-btn.btn.btn-primary#countdown= (t 'title_bar.contest_not_started')
29 %div.navbar-btn.btn.btn-primary#countdown= (t 'title_bar.contest_not_started')
35 - else
30 - else
36 %div.navbar-btn.btn.btn-primary#countdown asdf
31 %div.navbar-btn.btn.btn-primary#countdown asdf
37 :javascript
32 :javascript
38 $("#countdown").countdown({until: "+#{@current_user.contest_time_left.to_i}s", layout: 'Time left: {hnn}:{mnn}:{snn}'});
33 $("#countdown").countdown({until: "+#{@current_user.contest_time_left.to_i}s", layout: 'Time left: {hnn}:{mnn}:{snn}'});
39 / admin section
34 / admin section
40 - if (@current_user!=nil) and (session[:admin])
35 - if (@current_user!=nil) and (session[:admin])
41 / management
36 / management
42 - %li.dropdown
37 + %li.nav-item.dropdown
43 - %a.dropdown-toggle{href: '#', data: {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
38 + %a.nav-link.dropdown-toggle{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
44 Manage
39 Manage
45 - %span.caret
46 %ul.dropdown-menu
40 %ul.dropdown-menu
47 - = add_menu( 'Announcements', 'announcements', 'index')
41 + %li= link_to 'Announcements', announcements_path, class: 'dropdown-item'
48 - = add_menu( 'Problems', 'problems', 'index')
42 + %li= link_to 'Problems', problems_path, class: 'dropdown-item'
49 - = add_menu( 'Tags', 'tags', 'index')
43 + %li= link_to 'Tags', tags_path, class: 'dropdown-item'
50 - = add_menu( 'Users', 'user_admin', 'index')
44 + %li= link_to 'Users', user_admin_index_path, class: 'dropdown-item'
51 - = add_menu( 'User Groups', 'groups', 'index')
45 + %li= link_to 'User Groups', groups_path, class: 'dropdown-item'
52 - = add_menu( 'Graders', 'graders', 'list')
46 + %li= link_to 'Graders', graders_list_path, class: 'dropdown-item'
53 - = add_menu( 'Message ', 'messages', 'console')
47 + %li= link_to 'Message ', console_messages_path, class: 'dropdown-item'
54 - %li.divider{role: 'separator'}
48 + %li
55 - = add_menu( 'System config', 'configurations', 'index')
49 + %hr.dropdown-divider
56 - %li.divider{role: 'separator'}
50 + %li= link_to 'System config', grader_configuration_index_path, class: 'dropdown-item'
57 - = add_menu( 'Sites', 'sites', 'index')
51 + %li
58 - = add_menu( 'Contests', 'contest_management', 'index')
52 + %hr.dropdown-divider
53 + %li= link_to 'Sites', sites_path, class: 'dropdown-item'
54 + %li= link_to 'Contests', contest_management_index_path, class: 'dropdown-item'
55 + -#
59 / report
56 / report
60 - %li.dropdown
57 + %li.nav-item.dropdown
61 - %a.dropdown-toggle{href: '#', data: {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
58 + %a.nav-link.dropdown-toggle{href: '#', 'data-bs': {toggle:'dropdown'}, aria: {haspopup:"true", expanded:"false"}, role: "button"}
62 Report
59 Report
63 - %span.caret
64 %ul.dropdown-menu
60 %ul.dropdown-menu
65 - = add_menu( 'Current Score', 'report', 'current_score')
61 + %li= link_to 'Current Score', current_score_report_path, class: 'dropdown-item'
66 - = add_menu( 'Score Report', 'report', 'max_score')
62 + %li= link_to 'Score Report', max_score_report_path, class: 'dropdown-item'
67 - = add_menu( 'Submission Report', 'report', 'submission')
63 + %li= link_to 'Submission Report', submission_report_path, class: 'dropdown-item'
68 - = add_menu( 'Login Report', 'report', 'login')
64 + %li= link_to 'Login Report', login_report_path, class: 'dropdown-item'
69 - if (ungraded = Submission.where('graded_at is null').where('submitted_at < ?', 1.minutes.ago).count) > 0
65 - if (ungraded = Submission.where('graded_at is null').where('submitted_at < ?', 1.minutes.ago).count) > 0
70 =link_to "#{ungraded} backlogs!",
66 =link_to "#{ungraded} backlogs!",
71 graders_list_path,
67 graders_list_path,
72 class: 'navbar-btn btn btn-default btn-warning', data: {toggle: 'tooltip'},title: 'Number of ungraded submission'
68 class: 'navbar-btn btn btn-default btn-warning', data: {toggle: 'tooltip'},title: 'Number of ungraded submission'
73 / announcement
69 / announcement
74 - @nav_announcement.each do |ann|
70 - @nav_announcement.each do |ann|
75 %p.navbar-text
71 %p.navbar-text
76 = ann.body.html_safe
72 = ann.body.html_safe
77
73
78
74
79
75
80 %ul.nav.navbar-nav.navbar-right
76 %ul.nav.navbar-nav.navbar-right
81 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-question-sign')}".html_safe, 'main', 'help')
77 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-question-sign')}".html_safe, 'main', 'help')
82 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-comment')}".html_safe, 'messages', 'index', {title: I18n.t('menu.messages'), data: {toggle: 'tooltip'}})
78 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-comment')}".html_safe, 'messages', 'index', {title: I18n.t('menu.messages'), data: {toggle: 'tooltip'}})
83 - if GraderConfiguration['system.user_setting_enabled']
79 - if GraderConfiguration['system.user_setting_enabled']
84 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-cog', id: 'user_profile')}".html_safe, 'users', 'profile', {title: I18n.t('menu.settings'), data: {toggle: 'tooltip'}})
80 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-cog', id: 'user_profile')}".html_safe, 'users', 'profile', {title: I18n.t('menu.settings'), data: {toggle: 'tooltip'}})
85 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-log-out')} #{@current_user.full_name}".html_safe, 'main', 'login', {title: I18n.t('menu.log_out'), data: {toggle: 'tooltip'}})
81 = add_menu("#{content_tag(:span,'',class: 'glyphicon glyphicon-log-out')} #{@current_user.full_name}".html_safe, 'main', 'login', {title: I18n.t('menu.log_out'), data: {toggle: 'tooltip'}})
86
82
87 - /
88 - - if (@current_user!=nil) and (session[:admin])
89 - %nav.navbar.navbar-fixed-top.navbar-inverse.secondnavbar
90 - .container-fluid
91 - .collapse.navbar-collapse
92 - %ul.nav.navbar-nav
93 - = add_menu( '[Announcements]', 'announcements', 'index')
94 - = add_menu( '[Msg console]', 'messages', 'console')
95 - = add_menu( '[Problems]', 'problems', 'index')
96 - = add_menu( '[Users]', 'user_admin', 'index')
97 - = add_menu( '[Results]', 'user_admin', 'user_stat')
98 - = add_menu( '[Report]', 'report', 'multiple_login')
99 - = add_menu( '[Graders]', 'graders', 'list')
100 - = add_menu( '[Contests]', 'contest_management', 'index')
101 - = add_menu( '[Sites]', 'sites', 'index')
102 - = add_menu( '[System config]', 'configurations', 'index')
@@ -1,25 +1,25
1 <!DOCTYPE html>
1 <!DOCTYPE html>
2 %html
2 %html
3 %head
3 %head
4 %title= GraderConfiguration['contest.name']
4 %title= GraderConfiguration['contest.name']
5 = stylesheet_link_tag "application", params[:controller], :media => "all"
5 = stylesheet_link_tag "application", params[:controller], :media => "all"
6 = csrf_meta_tags
6 = csrf_meta_tags
7 = csp_meta_tag
7 = csp_meta_tag
8 - = javascript_import_module_tag('prepend_jquery')
8 + = javascript_include_tag :my_app
9 + -# = javascript_import_module_tag('prepend_jquery')
9 = javascript_importmap_tags
10 = javascript_importmap_tags
10 - = javascript_import_module_tag('datatable_late')
11 = content_for :header
11 = content_for :header
12 = yield :head
12 = yield :head
13 -# %link{href:"https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css",rel:"stylesheet",integrity:"sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT",crossorigin:"anonymous"}
13 -# %link{href:"https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css",rel:"stylesheet",integrity:"sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT",crossorigin:"anonymous"}
14 -# %script{src:"https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js",integrity:"sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3",crossorigin:"anonymous"}
14 -# %script{src:"https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js",integrity:"sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3",crossorigin:"anonymous"}
15 -# %script{src:"https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js",integrity:"sha384-7VPbUDkoPSGFnVtYi0QogXtr74QeVeeIs99Qfg5YCF+TidwNdjvaKZX19NZ/e6oz",crossorigin:"anonymous"}
15 -# %script{src:"https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js",integrity:"sha384-7VPbUDkoPSGFnVtYi0QogXtr74QeVeeIs99Qfg5YCF+TidwNdjvaKZX19NZ/e6oz",crossorigin:"anonymous"}
16
16
17
17
18
18
19 %body
19 %body
20 - unless local_assigns[:skip_header]
20 - unless local_assigns[:skip_header]
21 = render 'layouts/header'
21 = render 'layouts/header'
22
22
23 /= content_tag(:p,flash[:notice],class: 'alert alert-success') if flash[:notice]!=nil
23 /= content_tag(:p,flash[:notice],class: 'alert alert-success') if flash[:notice]!=nil
24 = flash_messages
24 = flash_messages
25 = yield
25 = yield
@@ -1,79 +1,56
1 # Pin npm packages by running ./bin/importmap
1 # Pin npm packages by running ./bin/importmap
2
2
3 #entry point
3 #entry point
4 pin "application"
4 pin "application"
5 pin "prepend_jquery"
5 pin "prepend_jquery"
6 - pin "datatable_late"
6 + pin "my_sprocket"
7 pin_all_from "app/javascript/controllers", under: "controllers"
7 pin_all_from "app/javascript/controllers", under: "controllers"
8
8
9 - pin "jquery", to: 'jquery.js'
9 + pin "jquery", to: 'jquery.js', preload: true
10 - pin "bootstrap", to: "bootstrap.bundle.min.js"
10 + pin "bootstrap", to: "bootstrap.bundle.min.js", preload: true
11 #no need popper, because bundled already in bootstrap
11 #no need popper, because bundled already in bootstrap
12 #pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/lib/index.js"
12 #pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/lib/index.js"
13
13
14 + # datatable
15 + # I have to fix vfs_font.js for this to work
14 pin "jszip", to: "jszip.min.js"
16 pin "jszip", to: "jszip.min.js"
15 pin "pdfmake"
17 pin "pdfmake"
16 -
18 + pin "pdfmake-vfs", to: 'datatables/pdfmake-0.1.36/vfs_fonts.js'
17 - #pin "", to: "JSZip-2.5.0/jszip.min.js"
18 - #pin "", to: "pdfmake-0.1.36/pdfmake.min.js"
19 - #pin "", to: "pdfmake-0.1.36/vfs_fonts.js"
20 -
21 - ## pin "datatables", to: "datatables/DataTables-1.12.1/js/jquery.dataTables.min.js"
22 - ## pin "datatables-bs5", to: "datatables/DataTables-1.12.1/js/dataTables.bootstrap5.min.js"
23 - ## pin "datatables-editor", to: "datatables/Editor-2.0.9/js/dataTables.editor.min.js"
24 - ## pin "datatables-editor-bs5", to: "datatables/Editor-2.0.9/js/editor.bootstrap5.min.js"
25 - ## pin "datatables-autofill", to: "datatables/AutoFill-2.4.0/js/dataTables.autoFill.min.js"
26 - ## pin "datatables-autofill-bs5", to: "datatables/AutoFill-2.4.0/js/autoFill.bootstrap5.min.js"
27 - ## pin "datatables-button", to: "datatables/Buttons-2.2.3/js/dataTables.buttons.min.js"
28 - ## pin "datatables-button-bs5", to: "datatables/Buttons-2.2.3/js/buttons.bootstrap5.min.js"
29 - ## pin "datatables-button-colvis", to: "datatables/Buttons-2.2.3/js/buttons.colVis.min.js"
30 - ## pin "datatables-button-html5", to: "datatables/Buttons-2.2.3/js/buttons.html5.min.js"
31 - ## pin "datatables-button-print", to: "datatables/Buttons-2.2.3/js/buttons.print.min.js"
32 - ## pin "datatables-colrecorder", to: "datatables/ColReorder-1.5.6/js/dataTables.colReorder.min.js"
33 - ## pin "datatables-datetime", to: "datatables/DateTime-1.1.2/js/dataTables.dateTime.min.js"
34 - ## pin "datatables-fixedcolumns", to: "datatables/FixedColumns-4.1.0/js/dataTables.fixedColumns.min.js"
35 - ## pin "datatables-fixedheader", to: "datatables/FixedHeader-3.2.4/js/dataTables.fixedHeader.min.js"
36 - ## pin "datatables-keytable", to: "datatables/KeyTable-2.7.0/js/dataTables.keyTable.min.js"
37 - ## pin "datatables-responsive", to: "datatables/Responsive-2.3.0/js/dataTables.responsive.min.js"
38 - ## pin "datatables-responsive-bs5", to: "datatables/Responsive-2.3.0/js/responsive.bootstrap5.js"
39 - ## pin "datatables-rowgroup", to: "datatables/RowGroup-1.2.0/js/dataTables.rowGroup.min.js"
40 - ## pin "datatables-rowreorder", to: "datatables/RowReorder-1.2.8/js/dataTables.rowReorder.min.js"
41 - ## pin "datatables-scroller", to: "datatables/Scroller-2.0.7/js/dataTables.scroller.min.js"
42 - ## pin "datatables-searchbuilder", to: "datatables/SearchBuilder-1.3.4/js/dataTables.searchBuilder.min.js"
43 - ## pin "datatables-searchbuilder-bs5", to: "datatables/SearchBuilder-1.3.4/js/searchBuilder.bootstrap5.min.js"
44 - ## pin "datatables-searchpanes", to: "datatables/SearchPanes-2.0.2/js/dataTables.searchPanes.min.js"
45 - ## pin "datatables-searchpanes-bs5", to: "datatables/SearchPanes-2.0.2/js/searchPanes.bootstrap5.min.js"
46 - ## pin "datatables-select", to: "datatables/Select-1.4.0/js/dataTables.select.min.js"
47 - ## pin "datatables-staterestore", to: "datatables/StateRestore-1.1.1/js/dataTables.stateRestore.min.js"
48 - ## pin "datatables-staterestore-bs5", to: "datatables/StateRestore-1.1.1/js/stateRestore.bootstrap5.min.js"
49
19
50 pin "datatables-bundle", to: 'datatables/datatables.js'
20 pin "datatables-bundle", to: 'datatables/datatables.js'
51 - pin "pdfmake-vfs", to: 'datatables/pdfmake-0.1.36/vfs_fonts.js'
52 pin "datatables", to: "datatables/DataTables-1.12.1/js/jquery.dataTables.js"
21 pin "datatables", to: "datatables/DataTables-1.12.1/js/jquery.dataTables.js"
53 pin "datatables-bs5", to: "datatables/DataTables-1.12.1/js/dataTables.bootstrap5.js"
22 pin "datatables-bs5", to: "datatables/DataTables-1.12.1/js/dataTables.bootstrap5.js"
54 pin "datatables-editor", to: "datatables/Editor-2.0.9/js/dataTables.editor.js"
23 pin "datatables-editor", to: "datatables/Editor-2.0.9/js/dataTables.editor.js"
55 - pin "datatables-editor-bs5", to: "datatables/Editor-2.0.9/js/editor.bootstrap5.js"
24 + pin "datatables-editor-bs5", to: "datatables/Editor-2.0.9/js/editor.bootstrap5.min.js"
56 pin "datatables-autofill", to: "datatables/AutoFill-2.4.0/js/dataTables.autoFill.js"
25 pin "datatables-autofill", to: "datatables/AutoFill-2.4.0/js/dataTables.autoFill.js"
57 pin "datatables-autofill-bs5", to: "datatables/AutoFill-2.4.0/js/autoFill.bootstrap5.js"
26 pin "datatables-autofill-bs5", to: "datatables/AutoFill-2.4.0/js/autoFill.bootstrap5.js"
58 pin "datatables-button", to: "datatables/Buttons-2.2.3/js/dataTables.buttons.js"
27 pin "datatables-button", to: "datatables/Buttons-2.2.3/js/dataTables.buttons.js"
59 pin "datatables-button-bs5", to: "datatables/Buttons-2.2.3/js/buttons.bootstrap5.js"
28 pin "datatables-button-bs5", to: "datatables/Buttons-2.2.3/js/buttons.bootstrap5.js"
60 pin "datatables-button-colvis", to: "datatables/Buttons-2.2.3/js/buttons.colVis.js"
29 pin "datatables-button-colvis", to: "datatables/Buttons-2.2.3/js/buttons.colVis.js"
61 pin "datatables-button-html5", to: "datatables/Buttons-2.2.3/js/buttons.html5.js"
30 pin "datatables-button-html5", to: "datatables/Buttons-2.2.3/js/buttons.html5.js"
62 pin "datatables-button-print", to: "datatables/Buttons-2.2.3/js/buttons.print.js"
31 pin "datatables-button-print", to: "datatables/Buttons-2.2.3/js/buttons.print.js"
63 pin "datatables-colrecorder", to: "datatables/ColReorder-1.5.6/js/dataTables.colReorder.js"
32 pin "datatables-colrecorder", to: "datatables/ColReorder-1.5.6/js/dataTables.colReorder.js"
64 pin "datatables-datetime", to: "datatables/DateTime-1.1.2/js/dataTables.dateTime.js"
33 pin "datatables-datetime", to: "datatables/DateTime-1.1.2/js/dataTables.dateTime.js"
65 pin "datatables-fixedcolumns", to: "datatables/FixedColumns-4.1.0/js/dataTables.fixedColumns.js"
34 pin "datatables-fixedcolumns", to: "datatables/FixedColumns-4.1.0/js/dataTables.fixedColumns.js"
66 pin "datatables-fixedheader", to: "datatables/FixedHeader-3.2.4/js/dataTables.fixedHeader.js"
35 pin "datatables-fixedheader", to: "datatables/FixedHeader-3.2.4/js/dataTables.fixedHeader.js"
67 pin "datatables-keytable", to: "datatables/KeyTable-2.7.0/js/dataTables.keyTable.js"
36 pin "datatables-keytable", to: "datatables/KeyTable-2.7.0/js/dataTables.keyTable.js"
68 pin "datatables-responsive", to: "datatables/Responsive-2.3.0/js/dataTables.responsive.js"
37 pin "datatables-responsive", to: "datatables/Responsive-2.3.0/js/dataTables.responsive.js"
69 pin "datatables-responsive-bs5", to: "datatables/Responsive-2.3.0/js/responsive.bootstrap5.js"
38 pin "datatables-responsive-bs5", to: "datatables/Responsive-2.3.0/js/responsive.bootstrap5.js"
70 pin "datatables-rowgroup", to: "datatables/RowGroup-1.2.0/js/dataTables.rowGroup.js"
39 pin "datatables-rowgroup", to: "datatables/RowGroup-1.2.0/js/dataTables.rowGroup.js"
71 pin "datatables-rowreorder", to: "datatables/RowReorder-1.2.8/js/dataTables.rowReorder.js"
40 pin "datatables-rowreorder", to: "datatables/RowReorder-1.2.8/js/dataTables.rowReorder.js"
72 pin "datatables-scroller", to: "datatables/Scroller-2.0.7/js/dataTables.scroller.js"
41 pin "datatables-scroller", to: "datatables/Scroller-2.0.7/js/dataTables.scroller.js"
73 pin "datatables-searchbuilder", to: "datatables/SearchBuilder-1.3.4/js/dataTables.searchBuilder.js"
42 pin "datatables-searchbuilder", to: "datatables/SearchBuilder-1.3.4/js/dataTables.searchBuilder.js"
74 pin "datatables-searchbuilder-bs5", to: "datatables/SearchBuilder-1.3.4/js/searchBuilder.bootstrap5.js"
43 pin "datatables-searchbuilder-bs5", to: "datatables/SearchBuilder-1.3.4/js/searchBuilder.bootstrap5.js"
75 pin "datatables-searchpanes", to: "datatables/SearchPanes-2.0.2/js/dataTables.searchPanes.js"
44 pin "datatables-searchpanes", to: "datatables/SearchPanes-2.0.2/js/dataTables.searchPanes.js"
76 pin "datatables-searchpanes-bs5", to: "datatables/SearchPanes-2.0.2/js/searchPanes.bootstrap5.js"
45 pin "datatables-searchpanes-bs5", to: "datatables/SearchPanes-2.0.2/js/searchPanes.bootstrap5.js"
77 pin "datatables-select", to: "datatables/Select-1.4.0/js/dataTables.select.js"
46 pin "datatables-select", to: "datatables/Select-1.4.0/js/dataTables.select.js"
78 pin "datatables-staterestore", to: "datatables/StateRestore-1.1.1/js/dataTables.stateRestore.js"
47 pin "datatables-staterestore", to: "datatables/StateRestore-1.1.1/js/dataTables.stateRestore.js"
79 pin "datatables-staterestore-bs5", to: "datatables/StateRestore-1.1.1/js/stateRestore.bootstrap5.js"
48 pin "datatables-staterestore-bs5", to: "datatables/StateRestore-1.1.1/js/stateRestore.bootstrap5.js"
49 +
50 + #select2
51 + pin "select2", to: "select2.min.js"
52 +
53 + #my local js
54 + pin "custom", to: "custom.js"
55 +
56 + #pin "ace-rails-ap"
@@ -1,315 +1,325
1 # This file is auto-generated from the current state of the database. Instead
1 # This file is auto-generated from the current state of the database. Instead
2 # of editing this file, please use the migrations feature of Active Record to
2 # of editing this file, please use the migrations feature of Active Record to
3 # incrementally modify your database, and then regenerate this schema definition.
3 # incrementally modify your database, and then regenerate this schema definition.
4 #
4 #
5 # This file is the source Rails uses to define your schema when running `bin/rails
5 # This file is the source Rails uses to define your schema when running `bin/rails
6 # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
6 # db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
7 # be faster and is potentially less error prone than running all of your
7 # be faster and is potentially less error prone than running all of your
8 # migrations from scratch. Old migrations may fail to apply correctly if those
8 # migrations from scratch. Old migrations may fail to apply correctly if those
9 # migrations use external dependencies or application code.
9 # migrations use external dependencies or application code.
10 #
10 #
11 # It's strongly recommended that you check this file into your version control system.
11 # It's strongly recommended that you check this file into your version control system.
12
12
13 - ActiveRecord::Schema.define(version: 2022_02_04_080936) do
13 + ActiveRecord::Schema[7.0].define(version: 2022_02_04_080936) do
14 -
14 + create_table "announcements", id: :integer, charset: "utf8", force: :cascade do |t|
15 - create_table "announcements", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
16 t.string "author"
15 t.string "author"
17 - t.text "body"
16 + t.text "body", size: :medium
18 t.boolean "published"
17 t.boolean "published"
19 - t.datetime "created_at"
18 + t.datetime "created_at", precision: nil, null: false
20 - t.datetime "updated_at"
19 + t.datetime "updated_at", precision: nil, null: false
21 t.boolean "frontpage", default: false
20 t.boolean "frontpage", default: false
22 t.boolean "contest_only", default: false
21 t.boolean "contest_only", default: false
23 t.string "title"
22 t.string "title"
24 t.string "notes"
23 t.string "notes"
25 t.boolean "on_nav_bar", default: false
24 t.boolean "on_nav_bar", default: false
26 end
25 end
27
26
28 - create_table "contests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
27 + create_table "contests", id: :integer, charset: "utf8", force: :cascade do |t|
29 t.string "title"
28 t.string "title"
30 t.boolean "enabled"
29 t.boolean "enabled"
31 - t.datetime "created_at"
30 + t.datetime "created_at", precision: nil, null: false
32 - t.datetime "updated_at"
31 + t.datetime "updated_at", precision: nil, null: false
33 t.string "name"
32 t.string "name"
34 end
33 end
35
34
36 - create_table "contests_problems", id: false, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
35 + create_table "contests_problems", id: false, charset: "utf8", force: :cascade do |t|
37 t.integer "contest_id"
36 t.integer "contest_id"
38 t.integer "problem_id"
37 t.integer "problem_id"
39 end
38 end
40
39
41 - create_table "contests_users", id: false, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
40 + create_table "contests_users", id: false, charset: "utf8", force: :cascade do |t|
42 t.integer "contest_id"
41 t.integer "contest_id"
43 t.integer "user_id"
42 t.integer "user_id"
44 end
43 end
45
44
46 - create_table "countries", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
45 + create_table "countries", id: :integer, charset: "utf8", force: :cascade do |t|
47 t.string "name"
46 t.string "name"
48 - t.datetime "created_at"
47 + t.datetime "created_at", precision: nil, null: false
49 - t.datetime "updated_at"
48 + t.datetime "updated_at", precision: nil, null: false
50 end
49 end
51
50
52 - create_table "descriptions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
51 + create_table "descriptions", id: :integer, charset: "utf8", force: :cascade do |t|
53 - t.text "body"
52 + t.text "body", size: :medium
54 t.boolean "markdowned"
53 t.boolean "markdowned"
55 - t.datetime "created_at"
54 + t.datetime "created_at", precision: nil, null: false
56 - t.datetime "updated_at"
55 + t.datetime "updated_at", precision: nil, null: false
57 end
56 end
58
57
59 - create_table "grader_configurations", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
58 + create_table "grader_configurations", id: :integer, charset: "utf8", force: :cascade do |t|
60 t.string "key"
59 t.string "key"
61 t.string "value_type"
60 t.string "value_type"
62 t.string "value"
61 t.string "value"
63 - t.datetime "created_at"
62 + t.datetime "created_at", precision: nil, null: false
64 - t.datetime "updated_at"
63 + t.datetime "updated_at", precision: nil, null: false
65 - t.text "description"
64 + t.text "description", size: :medium
66 end
65 end
67
66
68 - create_table "grader_processes", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
67 + create_table "grader_processes", id: :integer, charset: "utf8", force: :cascade do |t|
69 t.string "host"
68 t.string "host"
70 t.integer "pid"
69 t.integer "pid"
71 t.string "mode"
70 t.string "mode"
72 t.boolean "active"
71 t.boolean "active"
73 - t.datetime "created_at"
72 + t.datetime "created_at", precision: nil, null: false
74 - t.datetime "updated_at"
73 + t.datetime "updated_at", precision: nil, null: false
75 t.integer "task_id"
74 t.integer "task_id"
76 t.string "task_type"
75 t.string "task_type"
77 t.boolean "terminated"
76 t.boolean "terminated"
78 - t.index ["host", "pid"], name: "index_grader_processes_on_host_and_pid"
77 + t.index ["host", "pid"], name: "index_grader_processes_on_ip_and_pid"
79 end
78 end
80
79
81 - create_table "groups", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
80 + create_table "groups", id: :integer, charset: "latin1", force: :cascade do |t|
82 t.string "name"
81 t.string "name"
83 t.string "description"
82 t.string "description"
84 t.boolean "enabled", default: true
83 t.boolean "enabled", default: true
85 end
84 end
86
85
87 - create_table "groups_problems", id: false, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
86 + create_table "groups_problems", id: false, charset: "latin1", force: :cascade do |t|
88 t.integer "problem_id", null: false
87 t.integer "problem_id", null: false
89 t.integer "group_id", null: false
88 t.integer "group_id", null: false
90 t.index ["group_id", "problem_id"], name: "index_groups_problems_on_group_id_and_problem_id"
89 t.index ["group_id", "problem_id"], name: "index_groups_problems_on_group_id_and_problem_id"
91 end
90 end
92
91
93 - create_table "groups_users", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
92 + create_table "groups_users", charset: "latin1", force: :cascade do |t|
94 t.integer "group_id", null: false
93 t.integer "group_id", null: false
95 t.integer "user_id", null: false
94 t.integer "user_id", null: false
96 t.index ["user_id", "group_id"], name: "index_groups_users_on_user_id_and_group_id"
95 t.index ["user_id", "group_id"], name: "index_groups_users_on_user_id_and_group_id"
97 end
96 end
98
97
99 - create_table "heart_beats", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
98 + create_table "heart_beats", id: :integer, charset: "latin1", force: :cascade do |t|
100 t.integer "user_id"
99 t.integer "user_id"
101 t.string "ip_address"
100 t.string "ip_address"
102 - t.datetime "created_at"
101 + t.datetime "created_at", precision: nil, null: false
103 - t.datetime "updated_at"
102 + t.datetime "updated_at", precision: nil, null: false
104 t.string "status"
103 t.string "status"
105 t.index ["updated_at"], name: "index_heart_beats_on_updated_at"
104 t.index ["updated_at"], name: "index_heart_beats_on_updated_at"
106 end
105 end
107
106
108 - create_table "languages", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
107 + create_table "languages", id: :integer, charset: "utf8", force: :cascade do |t|
109 t.string "name", limit: 10
108 t.string "name", limit: 10
110 t.string "pretty_name"
109 t.string "pretty_name"
111 t.string "ext", limit: 10
110 t.string "ext", limit: 10
112 t.string "common_ext"
111 t.string "common_ext"
113 end
112 end
114
113
115 - create_table "logins", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
114 + create_table "logins", id: :integer, charset: "latin1", force: :cascade do |t|
116 t.integer "user_id"
115 t.integer "user_id"
117 t.string "ip_address"
116 t.string "ip_address"
118 - t.datetime "created_at"
117 + t.datetime "created_at", precision: nil, null: false
119 - t.datetime "updated_at"
118 + t.datetime "updated_at", precision: nil, null: false
120 t.index ["user_id"], name: "index_logins_on_user_id"
119 t.index ["user_id"], name: "index_logins_on_user_id"
121 end
120 end
122
121
123 - create_table "messages", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
122 + create_table "messages", id: :integer, charset: "utf8", force: :cascade do |t|
124 t.integer "sender_id"
123 t.integer "sender_id"
125 t.integer "receiver_id"
124 t.integer "receiver_id"
126 t.integer "replying_message_id"
125 t.integer "replying_message_id"
127 - t.text "body"
126 + t.text "body", size: :medium
128 t.boolean "replied"
127 t.boolean "replied"
129 - t.datetime "created_at"
128 + t.datetime "created_at", precision: nil, null: false
130 - t.datetime "updated_at"
129 + t.datetime "updated_at", precision: nil, null: false
131 end
130 end
132
131
133 - create_table "problems", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
132 + create_table "problems", id: :bigint, default: nil, charset: "utf8", force: :cascade do |t|
134 - t.string "name", limit: 30
133 + t.string "name", limit: 100
135 t.string "full_name"
134 t.string "full_name"
136 t.integer "full_score"
135 t.integer "full_score"
137 t.date "date_added"
136 t.date "date_added"
138 t.boolean "available"
137 t.boolean "available"
139 t.string "url"
138 t.string "url"
140 t.integer "description_id"
139 t.integer "description_id"
141 t.boolean "test_allowed"
140 t.boolean "test_allowed"
142 t.boolean "output_only"
141 t.boolean "output_only"
143 t.string "description_filename"
142 t.string "description_filename"
144 t.boolean "view_testcase"
143 t.boolean "view_testcase"
145 t.integer "difficulty"
144 t.integer "difficulty"
146 end
145 end
147
146
148 - create_table "problems_tags", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
147 + create_table "problems_tags", id: :bigint, default: nil, charset: "latin1", force: :cascade do |t|
149 - t.integer "problem_id"
148 + t.bigint "problem_id"
150 t.integer "tag_id"
149 t.integer "tag_id"
151 t.index ["problem_id", "tag_id"], name: "index_problems_tags_on_problem_id_and_tag_id", unique: true
150 t.index ["problem_id", "tag_id"], name: "index_problems_tags_on_problem_id_and_tag_id", unique: true
152 t.index ["problem_id"], name: "index_problems_tags_on_problem_id"
151 t.index ["problem_id"], name: "index_problems_tags_on_problem_id"
153 t.index ["tag_id"], name: "index_problems_tags_on_tag_id"
152 t.index ["tag_id"], name: "index_problems_tags_on_tag_id"
154 end
153 end
155
154
156 - create_table "rights", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
155 + create_table "rights", id: :integer, charset: "utf8", force: :cascade do |t|
157 t.string "name"
156 t.string "name"
158 t.string "controller"
157 t.string "controller"
159 t.string "action"
158 t.string "action"
160 end
159 end
161
160
162 - create_table "rights_roles", id: false, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
161 + create_table "rights_roles", id: false, charset: "utf8", force: :cascade do |t|
163 t.integer "right_id"
162 t.integer "right_id"
164 t.integer "role_id"
163 t.integer "role_id"
165 t.index ["role_id"], name: "index_rights_roles_on_role_id"
164 t.index ["role_id"], name: "index_rights_roles_on_role_id"
166 end
165 end
167
166
168 - create_table "roles", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
167 + create_table "roles", id: :integer, charset: "utf8", force: :cascade do |t|
169 t.string "name"
168 t.string "name"
170 end
169 end
171
170
172 - create_table "roles_users", id: false, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
171 + create_table "roles_users", id: false, charset: "utf8", force: :cascade do |t|
173 t.integer "role_id"
172 t.integer "role_id"
174 t.integer "user_id"
173 t.integer "user_id"
175 t.index ["user_id"], name: "index_roles_users_on_user_id"
174 t.index ["user_id"], name: "index_roles_users_on_user_id"
176 end
175 end
177
176
178 - create_table "sessions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
177 + create_table "sessions", id: :integer, charset: "utf8", force: :cascade do |t|
179 t.string "session_id"
178 t.string "session_id"
180 - t.text "data"
179 + t.text "data", size: :medium
181 - t.datetime "updated_at"
180 + t.datetime "updated_at", precision: nil
182 t.index ["session_id"], name: "index_sessions_on_session_id"
181 t.index ["session_id"], name: "index_sessions_on_session_id"
183 t.index ["updated_at"], name: "index_sessions_on_updated_at"
182 t.index ["updated_at"], name: "index_sessions_on_updated_at"
184 end
183 end
185
184
186 - create_table "sites", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
185 + create_table "sites", id: :integer, charset: "utf8", force: :cascade do |t|
187 t.string "name"
186 t.string "name"
188 t.boolean "started"
187 t.boolean "started"
189 - t.datetime "start_time"
188 + t.datetime "start_time", precision: nil
190 - t.datetime "created_at"
189 + t.datetime "created_at", precision: nil, null: false
191 - t.datetime "updated_at"
190 + t.datetime "updated_at", precision: nil, null: false
192 t.integer "country_id"
191 t.integer "country_id"
193 t.string "password"
192 t.string "password"
194 end
193 end
195
194
196 - create_table "submission_view_logs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
195 + create_table "solutions", charset: "latin1", force: :cascade do |t|
196 + t.string "solution"
197 + t.bigint "problem_id"
198 + t.bigint "submission_id"
199 + t.integer "type"
200 + t.index ["problem_id"], name: "index_solutions_on_problem_id"
201 + t.index ["submission_id"], name: "index_solutions_on_submission_id"
202 + end
203 +
204 + create_table "submission_view_logs", id: :integer, charset: "latin1", force: :cascade do |t|
197 t.integer "user_id"
205 t.integer "user_id"
198 t.integer "submission_id"
206 t.integer "submission_id"
199 - t.datetime "created_at"
207 + t.datetime "created_at", precision: nil, null: false
200 - t.datetime "updated_at"
208 + t.datetime "updated_at", precision: nil, null: false
201 end
209 end
202
210
203 - create_table "submissions", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
211 + create_table "submissions", id: :bigint, default: nil, charset: "utf8", force: :cascade do |t|
204 t.integer "user_id"
212 t.integer "user_id"
205 t.integer "problem_id"
213 t.integer "problem_id"
206 t.integer "language_id"
214 t.integer "language_id"
207 t.text "source", size: :medium
215 t.text "source", size: :medium
208 t.binary "binary"
216 t.binary "binary"
209 - t.datetime "submitted_at"
217 + t.datetime "submitted_at", precision: nil
210 - t.datetime "compiled_at"
218 + t.datetime "compiled_at", precision: nil
211 - t.text "compiler_message"
219 + t.text "compiler_message", size: :medium
212 - t.datetime "graded_at"
220 + t.datetime "graded_at", precision: nil
213 t.integer "points"
221 t.integer "points"
214 - t.text "grader_comment"
222 + t.text "grader_comment", size: :medium
215 t.integer "number"
223 t.integer "number"
216 t.string "source_filename"
224 t.string "source_filename"
217 t.float "max_runtime"
225 t.float "max_runtime"
218 t.integer "peak_memory"
226 t.integer "peak_memory"
219 t.integer "effective_code_length"
227 t.integer "effective_code_length"
220 t.string "ip_address"
228 t.string "ip_address"
221 t.integer "tag", default: 0
229 t.integer "tag", default: 0
222 t.index ["submitted_at"], name: "index_submissions_on_submitted_at"
230 t.index ["submitted_at"], name: "index_submissions_on_submitted_at"
223 t.index ["user_id", "problem_id", "number"], name: "index_submissions_on_user_id_and_problem_id_and_number", unique: true
231 t.index ["user_id", "problem_id", "number"], name: "index_submissions_on_user_id_and_problem_id_and_number", unique: true
224 t.index ["user_id", "problem_id"], name: "index_submissions_on_user_id_and_problem_id"
232 t.index ["user_id", "problem_id"], name: "index_submissions_on_user_id_and_problem_id"
225 end
233 end
226
234
227 - create_table "tags", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
235 + create_table "tags", id: :integer, charset: "latin1", force: :cascade do |t|
228 t.string "name", null: false
236 t.string "name", null: false
229 t.text "description"
237 t.text "description"
230 t.boolean "public"
238 t.boolean "public"
231 - t.datetime "created_at", null: false
239 + t.datetime "created_at", precision: nil, null: false
232 - t.datetime "updated_at", null: false
240 + t.datetime "updated_at", precision: nil, null: false
233 end
241 end
234
242
235 - create_table "tasks", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
243 + create_table "tasks", id: :integer, charset: "utf8", force: :cascade do |t|
236 t.integer "submission_id"
244 t.integer "submission_id"
237 - t.datetime "created_at"
245 + t.datetime "created_at", precision: nil
238 t.integer "status"
246 t.integer "status"
239 - t.datetime "updated_at"
247 + t.datetime "updated_at", precision: nil
240 t.index ["status"], name: "index_tasks_on_status"
248 t.index ["status"], name: "index_tasks_on_status"
241 t.index ["submission_id"], name: "index_tasks_on_submission_id"
249 t.index ["submission_id"], name: "index_tasks_on_submission_id"
242 end
250 end
243
251
244 - create_table "test_pairs", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
252 + create_table "test_pairs", id: :integer, charset: "utf8", force: :cascade do |t|
245 t.integer "problem_id"
253 t.integer "problem_id"
246 - t.text "input", size: :medium
254 + t.text "input", size: :long
247 - t.text "solution", size: :medium
255 + t.text "solution", size: :long
248 - t.datetime "created_at"
256 + t.datetime "created_at", precision: nil, null: false
249 - t.datetime "updated_at"
257 + t.datetime "updated_at", precision: nil, null: false
250 end
258 end
251
259
252 - create_table "test_requests", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
260 + create_table "test_requests", id: :integer, charset: "utf8", force: :cascade do |t|
253 t.integer "user_id"
261 t.integer "user_id"
254 t.integer "problem_id"
262 t.integer "problem_id"
255 t.integer "submission_id"
263 t.integer "submission_id"
256 t.string "input_file_name"
264 t.string "input_file_name"
257 t.string "output_file_name"
265 t.string "output_file_name"
258 t.string "running_stat"
266 t.string "running_stat"
259 t.integer "status"
267 t.integer "status"
260 - t.datetime "submitted_at"
268 + t.datetime "updated_at", precision: nil, null: false
261 - t.datetime "compiled_at"
269 + t.datetime "submitted_at", precision: nil
262 - t.text "compiler_message"
270 + t.datetime "compiled_at", precision: nil
263 - t.datetime "graded_at"
271 + t.text "compiler_message", size: :medium
272 + t.datetime "graded_at", precision: nil
264 t.string "grader_comment"
273 t.string "grader_comment"
265 - t.datetime "created_at"
274 + t.datetime "created_at", precision: nil, null: false
266 - t.datetime "updated_at"
267 t.float "running_time"
275 t.float "running_time"
268 t.string "exit_status"
276 t.string "exit_status"
269 t.integer "memory_usage"
277 t.integer "memory_usage"
270 t.index ["user_id", "problem_id"], name: "index_test_requests_on_user_id_and_problem_id"
278 t.index ["user_id", "problem_id"], name: "index_test_requests_on_user_id_and_problem_id"
271 end
279 end
272
280
273 - create_table "testcases", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
281 + create_table "testcases", id: :integer, charset: "latin1", force: :cascade do |t|
274 t.integer "problem_id"
282 t.integer "problem_id"
275 t.integer "num"
283 t.integer "num"
276 t.integer "group"
284 t.integer "group"
277 t.integer "score"
285 t.integer "score"
278 t.text "input", size: :long
286 t.text "input", size: :long
279 t.text "sol", size: :long
287 t.text "sol", size: :long
280 - t.datetime "created_at"
288 + t.datetime "created_at", precision: nil, null: false
281 - t.datetime "updated_at"
289 + t.datetime "updated_at", precision: nil, null: false
282 t.index ["problem_id"], name: "index_testcases_on_problem_id"
290 t.index ["problem_id"], name: "index_testcases_on_problem_id"
283 end
291 end
284
292
285 - create_table "user_contest_stats", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
293 + create_table "user_contest_stats", id: :integer, charset: "utf8", force: :cascade do |t|
286 t.integer "user_id"
294 t.integer "user_id"
287 - t.timestamp "started_at"
295 + t.datetime "started_at", precision: nil
288 - t.datetime "created_at"
296 + t.datetime "created_at", precision: nil, null: false
289 - t.datetime "updated_at"
297 + t.datetime "updated_at", precision: nil, null: false
290 t.boolean "forced_logout"
298 t.boolean "forced_logout"
291 end
299 end
292
300
293 - create_table "users", id: :integer, charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t|
301 + create_table "users", id: :integer, charset: "utf8", force: :cascade do |t|
294 t.string "login", limit: 50
302 t.string "login", limit: 50
295 t.string "full_name"
303 t.string "full_name"
296 t.string "hashed_password"
304 t.string "hashed_password"
297 t.string "salt", limit: 5
305 t.string "salt", limit: 5
298 t.string "alias"
306 t.string "alias"
299 t.string "email"
307 t.string "email"
300 t.integer "site_id"
308 t.integer "site_id"
301 t.integer "country_id"
309 t.integer "country_id"
302 t.boolean "activated", default: false
310 t.boolean "activated", default: false
303 - t.datetime "created_at"
311 + t.datetime "created_at", precision: nil
304 - t.datetime "updated_at"
312 + t.datetime "updated_at", precision: nil
305 t.string "section"
313 t.string "section"
306 t.boolean "enabled", default: true
314 t.boolean "enabled", default: true
307 t.string "remark"
315 t.string "remark"
308 t.string "last_ip"
316 t.string "last_ip"
309 t.integer "default_language"
317 t.integer "default_language"
310 t.index ["login"], name: "index_users_on_login", unique: true
318 t.index ["login"], name: "index_users_on_login", unique: true
311 end
319 end
312
320
313 add_foreign_key "problems_tags", "problems"
321 add_foreign_key "problems_tags", "problems"
314 add_foreign_key "problems_tags", "tags"
322 add_foreign_key "problems_tags", "tags"
323 + add_foreign_key "solutions", "problems"
324 + add_foreign_key "solutions", "submissions"
315 end
325 end
deleted file
deleted file
You need to be logged in to leave comments. Login now