Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
J
jumpserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
jumpserver
Commits
3c3fda80
Commit
3c3fda80
authored
Aug 23, 2016
by
ibuler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change chosen To select2 lib
parent
ae9bbb40
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
52 additions
and
1680 deletions
+52
-1680
chosen-sprite.png
apps/static/css/plugins/chosen/chosen-sprite.png
+0
-0
chosen-sprite@2x.png
apps/static/css/plugins/chosen/chosen-sprite@2x.png
+0
-0
chosen.css
apps/static/css/plugins/chosen/chosen.css
+0
-429
select2.min.css
apps/static/css/plugins/select2/select2.min.css
+2
-0
style.css
apps/static/css/style.css
+36
-10
chosen.jquery.js
apps/static/js/plugins/chosen/chosen.jquery.js
+0
-1211
chosen.jquery.min.js
apps/static/js/plugins/chosen/chosen.jquery.min.js
+0
-3
select2.full.min.js
apps/static/js/plugins/select2/select2.full.min.js
+4
-0
forms.py
apps/users/forms.py
+1
-1
_user.html
apps/users/templates/users/_user.html
+3
-12
user_detail.html
apps/users/templates/users/user_detail.html
+6
-14
No files found.
apps/static/css/plugins/chosen/chosen-sprite.png
deleted
100755 → 0
View file @
ae9bbb40
646 Bytes
apps/static/css/plugins/chosen/chosen-sprite@2x.png
deleted
100755 → 0
View file @
ae9bbb40
872 Bytes
apps/static/css/plugins/chosen/chosen.css
deleted
100755 → 0
View file @
ae9bbb40
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com
Version 1.1.0
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011 Harvest http://getharvest.com
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/
/* @group Base */
.chosen-container
{
position
:
relative
;
display
:
inline-block
;
vertical-align
:
middle
;
font-size
:
13px
;
zoom
:
1
;
*
display
:
inline
;
-webkit-user-select
:
none
;
-moz-user-select
:
none
;
user-select
:
none
;
}
.chosen-container
.chosen-drop
{
position
:
absolute
;
top
:
100%
;
left
:
-9999px
;
z-index
:
1010
;
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
width
:
100%
;
border
:
1px
solid
#aaa
;
border-top
:
0
;
background
:
#fff
;
box-shadow
:
0
4px
5px
rgba
(
0
,
0
,
0
,
0.15
);
}
.chosen-container.chosen-with-drop
.chosen-drop
{
left
:
0
;
}
.chosen-container
a
{
cursor
:
pointer
;
}
/* @end */
/* @group Single Chosen */
.chosen-container-single
.chosen-single
{
position
:
relative
;
display
:
block
;
overflow
:
hidden
;
padding
:
0
0
0
8px
;
height
:
23px
;
border
:
1px
solid
#aaa
;
border-radius
:
5px
;
background-color
:
#fff
;
background
:
-webkit-gradient
(
linear
,
50%
0%
,
50%
100%
,
color-stop
(
20%
,
#ffffff
),
color-stop
(
50%
,
#f6f6f6
),
color-stop
(
52%
,
#eeeeee
),
color-stop
(
100%
,
#f4f4f4
));
background
:
-webkit-linear-gradient
(
top
,
#ffffff
20%
,
#f6f6f6
50%
,
#eeeeee
52%
,
#f4f4f4
100%
);
background
:
-moz-linear-gradient
(
top
,
#ffffff
20%
,
#f6f6f6
50%
,
#eeeeee
52%
,
#f4f4f4
100%
);
background
:
-o-linear-gradient
(
top
,
#ffffff
20%
,
#f6f6f6
50%
,
#eeeeee
52%
,
#f4f4f4
100%
);
background
:
linear-gradient
(
top
,
#ffffff
20%
,
#f6f6f6
50%
,
#eeeeee
52%
,
#f4f4f4
100%
);
background-clip
:
padding-box
;
box-shadow
:
0
0
3px
white
inset
,
0
1px
1px
rgba
(
0
,
0
,
0
,
0.1
);
color
:
#444
;
text-decoration
:
none
;
white-space
:
nowrap
;
line-height
:
24px
;
}
.chosen-container-single
.chosen-default
{
color
:
#999
;
}
.chosen-container-single
.chosen-single
span
{
display
:
block
;
overflow
:
hidden
;
margin-right
:
26px
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.chosen-container-single
.chosen-single-with-deselect
span
{
margin-right
:
38px
;
}
.chosen-container-single
.chosen-single
abbr
{
position
:
absolute
;
top
:
6px
;
right
:
26px
;
display
:
block
;
width
:
12px
;
height
:
12px
;
background
:
url('chosen-sprite.png')
-42px
1px
no-repeat
;
font-size
:
1px
;
}
.chosen-container-single
.chosen-single
abbr
:hover
{
background-position
:
-42px
-10px
;
}
.chosen-container-single.chosen-disabled
.chosen-single
abbr
:hover
{
background-position
:
-42px
-10px
;
}
.chosen-container-single
.chosen-single
div
{
position
:
absolute
;
top
:
0
;
right
:
0
;
display
:
block
;
width
:
18px
;
height
:
100%
;
}
.chosen-container-single
.chosen-single
div
b
{
display
:
block
;
width
:
100%
;
height
:
100%
;
background
:
url('chosen-sprite.png')
no-repeat
0px
2px
;
}
.chosen-container-single
.chosen-search
{
position
:
relative
;
z-index
:
1010
;
margin
:
0
;
padding
:
3px
4px
;
white-space
:
nowrap
;
}
.chosen-container-single
.chosen-search
input
[
type
=
"text"
]
{
-webkit-box-sizing
:
border-box
;
-moz-box-sizing
:
border-box
;
box-sizing
:
border-box
;
margin
:
1px
0
;
padding
:
4px
20px
4px
5px
;
width
:
100%
;
height
:
auto
;
outline
:
0
;
border
:
1px
solid
#aaa
;
background
:
white
url('chosen-sprite.png')
no-repeat
100%
-20px
;
background
:
url('chosen-sprite.png')
no-repeat
100%
-20px
;
font-size
:
1em
;
font-family
:
sans-serif
;
line-height
:
normal
;
border-radius
:
0
;
}
.chosen-container-single
.chosen-drop
{
margin-top
:
-1px
;
border-radius
:
0
0
4px
4px
;
background-clip
:
padding-box
;
}
.chosen-container-single.chosen-container-single-nosearch
.chosen-search
{
position
:
absolute
;
left
:
-9999px
;
}
/* @end */
/* @group Results */
.chosen-container
.chosen-results
{
position
:
relative
;
overflow-x
:
hidden
;
overflow-y
:
auto
;
margin
:
0
4px
4px
0
;
padding
:
0
0
0
4px
;
max-height
:
240px
;
-webkit-overflow-scrolling
:
touch
;
}
.chosen-container
.chosen-results
li
{
display
:
none
;
margin
:
0
;
padding
:
5px
6px
;
list-style
:
none
;
line-height
:
15px
;
-webkit-touch-callout
:
none
;
}
.chosen-container
.chosen-results
li
.active-result
{
display
:
list-item
;
cursor
:
pointer
;
}
.chosen-container
.chosen-results
li
.disabled-result
{
display
:
list-item
;
color
:
#ccc
;
cursor
:
default
;
}
.chosen-container
.chosen-results
li
.highlighted
{
background-color
:
#3875d7
;
background-image
:
-webkit-gradient
(
linear
,
50%
0%
,
50%
100%
,
color-stop
(
20%
,
#3875d7
),
color-stop
(
90%
,
#2a62bc
));
background-image
:
-webkit-linear-gradient
(
#3875d7
20%
,
#2a62bc
90%
);
background-image
:
-moz-linear-gradient
(
#3875d7
20%
,
#2a62bc
90%
);
background-image
:
-o-linear-gradient
(
#3875d7
20%
,
#2a62bc
90%
);
background-image
:
linear-gradient
(
#3875d7
20%
,
#2a62bc
90%
);
color
:
#fff
;
}
.chosen-container
.chosen-results
li
.no-results
{
display
:
list-item
;
background
:
#f4f4f4
;
}
.chosen-container
.chosen-results
li
.group-result
{
display
:
list-item
;
font-weight
:
bold
;
cursor
:
default
;
}
.chosen-container
.chosen-results
li
.group-option
{
padding-left
:
15px
;
}
.chosen-container
.chosen-results
li
em
{
font-style
:
normal
;
text-decoration
:
underline
;
}
/* @end */
/* @group Multi Chosen */
.chosen-container-multi
.chosen-choices
{
-moz-box-sizing
:
border-box
;
background-color
:
#FFFFFF
;
border
:
1px
solid
#CBD5DD
;
border-radius
:
2px
;
cursor
:
text
;
height
:
auto
!important
;
margin
:
0
;
min-height
:
30px
;
overflow
:
hidden
;
padding
:
2px
;
position
:
relative
;
width
:
100%
;
}
.chosen-container-multi
.chosen-choices
li
{
float
:
left
;
list-style
:
none
;
}
.chosen-container-multi
.chosen-choices
li
.search-field
{
margin
:
0
;
padding
:
0
;
white-space
:
nowrap
;
}
.chosen-container-multi
.chosen-choices
li
.search-field
input
[
type
=
"text"
]
{
margin
:
1px
0
;
padding
:
5px
;
height
:
25px
;
outline
:
0
;
border
:
0
!important
;
background
:
transparent
!important
;
box-shadow
:
none
;
color
:
#666
;
font-size
:
100%
;
font-family
:
sans-serif
;
line-height
:
normal
;
border-radius
:
0
;
}
.chosen-container-multi
.chosen-choices
li
.search-field
.default
{
color
:
#999
;
}
.chosen-container-multi
.chosen-choices
li
.search-choice
{
position
:
relative
;
margin
:
3px
0
3px
5px
;
padding
:
3px
20px
3px
5px
;
border
:
1px
solid
#aaa
;
border-radius
:
3px
;
background-color
:
#e4e4e4
;
background-image
:
-webkit-gradient
(
linear
,
50%
0%
,
50%
100%
,
color-stop
(
20%
,
#f4f4f4
),
color-stop
(
50%
,
#f0f0f0
),
color-stop
(
52%
,
#e8e8e8
),
color-stop
(
100%
,
#eeeeee
));
background-image
:
-webkit-linear-gradient
(
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
background-image
:
-moz-linear-gradient
(
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
background-image
:
-o-linear-gradient
(
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
background-image
:
linear-gradient
(
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
background-clip
:
padding-box
;
box-shadow
:
0
0
2px
white
inset
,
0
1px
0
rgba
(
0
,
0
,
0
,
0.05
);
color
:
#333
;
line-height
:
13px
;
cursor
:
default
;
}
.chosen-container-multi
.chosen-choices
li
.search-choice
.search-choice-close
{
position
:
absolute
;
top
:
4px
;
right
:
3px
;
display
:
block
;
width
:
12px
;
height
:
12px
;
background
:
url('chosen-sprite.png')
-42px
1px
no-repeat
;
font-size
:
1px
;
}
.chosen-container-multi
.chosen-choices
li
.search-choice
.search-choice-close
:hover
{
background-position
:
-42px
-10px
;
}
.chosen-container-multi
.chosen-choices
li
.search-choice-disabled
{
padding-right
:
5px
;
border
:
1px
solid
#ccc
;
background-color
:
#e4e4e4
;
background-image
:
-webkit-gradient
(
linear
,
50%
0%
,
50%
100%
,
color-stop
(
20%
,
#f4f4f4
),
color-stop
(
50%
,
#f0f0f0
),
color-stop
(
52%
,
#e8e8e8
),
color-stop
(
100%
,
#eeeeee
));
background-image
:
-webkit-linear-gradient
(
top
,
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
background-image
:
-moz-linear-gradient
(
top
,
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
background-image
:
-o-linear-gradient
(
top
,
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
background-image
:
linear-gradient
(
top
,
#f4f4f4
20%
,
#f0f0f0
50%
,
#e8e8e8
52%
,
#eeeeee
100%
);
color
:
#666
;
}
.chosen-container-multi
.chosen-choices
li
.search-choice-focus
{
background
:
#d4d4d4
;
}
.chosen-container-multi
.chosen-choices
li
.search-choice-focus
.search-choice-close
{
background-position
:
-42px
-10px
;
}
.chosen-container-multi
.chosen-results
{
margin
:
0
;
padding
:
0
;
}
.chosen-container-multi
.chosen-drop
.result-selected
{
display
:
list-item
;
color
:
#ccc
;
cursor
:
default
;
}
/* @end */
/* @group Active */
.chosen-container-active
.chosen-single
{
border
:
1px
solid
#5897fb
;
box-shadow
:
0
0
5px
rgba
(
0
,
0
,
0
,
0.3
);
}
.chosen-container-active.chosen-with-drop
.chosen-single
{
border
:
1px
solid
#aaa
;
-moz-border-radius-bottomright
:
0
;
border-bottom-right-radius
:
0
;
-moz-border-radius-bottomleft
:
0
;
border-bottom-left-radius
:
0
;
background-image
:
-webkit-gradient
(
linear
,
50%
0%
,
50%
100%
,
color-stop
(
20%
,
#eeeeee
),
color-stop
(
80%
,
#ffffff
));
background-image
:
-webkit-linear-gradient
(
#eeeeee
20%
,
#ffffff
80%
);
background-image
:
-moz-linear-gradient
(
#eeeeee
20%
,
#ffffff
80%
);
background-image
:
-o-linear-gradient
(
#eeeeee
20%
,
#ffffff
80%
);
background-image
:
linear-gradient
(
#eeeeee
20%
,
#ffffff
80%
);
box-shadow
:
0
1px
0
#fff
inset
;
}
.chosen-container-active.chosen-with-drop
.chosen-single
div
{
border-left
:
none
;
background
:
transparent
;
}
.chosen-container-active.chosen-with-drop
.chosen-single
div
b
{
background-position
:
-18px
2px
;
}
.chosen-container-active
.chosen-choices
{
border
:
1px
solid
#5897fb
;
box-shadow
:
0
0
5px
rgba
(
0
,
0
,
0
,
0.3
);
}
.chosen-container-active
.chosen-choices
li
.search-field
input
[
type
=
"text"
]
{
color
:
#111
!important
;
}
/* @end */
/* @group Disabled Support */
.chosen-disabled
{
opacity
:
0.5
!important
;
cursor
:
default
;
}
.chosen-disabled
.chosen-single
{
cursor
:
default
;
}
.chosen-disabled
.chosen-choices
.search-choice
.search-choice-close
{
cursor
:
default
;
}
/* @end */
/* @group Right to Left */
.chosen-rtl
{
text-align
:
right
;
}
.chosen-rtl
.chosen-single
{
overflow
:
visible
;
padding
:
0
8px
0
0
;
}
.chosen-rtl
.chosen-single
span
{
margin-right
:
0
;
margin-left
:
26px
;
direction
:
rtl
;
}
.chosen-rtl
.chosen-single-with-deselect
span
{
margin-left
:
38px
;
}
.chosen-rtl
.chosen-single
div
{
right
:
auto
;
left
:
3px
;
}
.chosen-rtl
.chosen-single
abbr
{
right
:
auto
;
left
:
26px
;
}
.chosen-rtl
.chosen-choices
li
{
float
:
right
;
}
.chosen-rtl
.chosen-choices
li
.search-field
input
[
type
=
"text"
]
{
direction
:
rtl
;
}
.chosen-rtl
.chosen-choices
li
.search-choice
{
margin
:
3px
5px
3px
0
;
padding
:
3px
5px
3px
19px
;
}
.chosen-rtl
.chosen-choices
li
.search-choice
.search-choice-close
{
right
:
auto
;
left
:
4px
;
}
.chosen-rtl.chosen-container-single-nosearch
.chosen-search
,
.chosen-rtl
.chosen-drop
{
left
:
9999px
;
}
.chosen-rtl.chosen-container-single
.chosen-results
{
margin
:
0
0
4px
4px
;
padding
:
0
4px
0
0
;
}
.chosen-rtl
.chosen-results
li
.group-option
{
padding-right
:
15px
;
padding-left
:
0
;
}
.chosen-rtl.chosen-container-active.chosen-with-drop
.chosen-single
div
{
border-right
:
none
;
}
.chosen-rtl
.chosen-search
input
[
type
=
"text"
]
{
padding
:
4px
5px
4px
20px
;
background
:
white
url('chosen-sprite.png')
no-repeat
-30px
-20px
;
background
:
url('chosen-sprite.png')
no-repeat
-30px
-20px
;
direction
:
rtl
;
}
.chosen-rtl.chosen-container-single
.chosen-single
div
b
{
background-position
:
6px
2px
;
}
.chosen-rtl.chosen-container-single.chosen-with-drop
.chosen-single
div
b
{
background-position
:
-12px
2px
;
}
/* @end */
/* @group Retina compatibility */
@media
only
screen
and
(
-webkit-min-device-pixel-ratio
:
2
),
only
screen
and
(
min-resolution
:
144dpi
)
{
.chosen-rtl
.chosen-search
input
[
type
=
"text"
],
.chosen-container-single
.chosen-single
abbr
,
.chosen-container-single
.chosen-single
div
b
,
.chosen-container-single
.chosen-search
input
[
type
=
"text"
],
.chosen-container-multi
.chosen-choices
.search-choice
.search-choice-close
,
.chosen-container
.chosen-results-scroll-down
span
,
.chosen-container
.chosen-results-scroll-up
span
{
background-image
:
url('chosen-sprite@2x.png')
!important
;
background-size
:
52px
37px
!important
;
background-repeat
:
no-repeat
!important
;
}
}
/* @end */
apps/static/css/plugins/select2/select2.min.css
0 → 100755
View file @
3c3fda80
.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
[
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-block
;
overflow
:
hidden
;
padding-left
:
8px
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;}
.select2-container
.select2-search--inline
{
float
:
left
;}
.select2-container
.select2-search--inline
.select2-search__field
{
box-sizing
:
border-box
;
border
:
none
;
font-size
:
100%
;
margin-top
:
5px
;}
.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
[
aria-selected
]
{
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
;
clip
:
rect
(
0
0
0
0
);
height
:
1px
;
margin
:
-1px
;
overflow
:
hidden
;
padding
:
0
;
position
:
absolute
;
width
:
1px
;}
.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
;}
.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
;}
.select2-container--default
.select2-selection--multiple
.select2-selection__rendered
{
box-sizing
:
border-box
;
list-style
:
none
;
margin
:
0
;
padding
:
0
5px
;
width
:
100%
;}
.select2-container--default
.select2-selection--multiple
.select2-selection__placeholder
{
color
:
#999
;
margin-top
:
5px
;
float
:
left
;}
.select2-container--default
.select2-selection--multiple
.select2-selection__clear
{
cursor
:
pointer
;
float
:
right
;
font-weight
:
bold
;
margin-top
:
5px
;
margin-right
:
10px
;}
.select2-container--default
.select2-selection--multiple
.select2-selection__choice
{
background-color
:
#e4e4e4
;
border
:
1px
solid
#aaa
;
border-radius
:
4px
;
cursor
:
default
;
float
:
left
;
margin-right
:
5px
;
margin-top
:
5px
;
padding
:
0
5px
;}
.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove
{
color
:
#999
;
cursor
:
pointer
;
display
:
inline-block
;
font-weight
:
bold
;
margin-right
:
2px
;}
.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove
:hover
{
color
:
#333
;}
.select2-container--default
[
dir
=
"rtl"
]
.select2-selection--multiple
.select2-selection__choice
,
.select2-container--default
[
dir
=
"rtl"
]
.select2-selection--multiple
.select2-selection__placeholder
{
float
:
right
;}
.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__remove
{
margin-left
:
2px
;
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
;}
.select2-container--default
.select2-results
>
.select2-results__options
{
max-height
:
200px
;
overflow-y
:
auto
;}
.select2-container--default
.select2-results__option
[
role
=
group
]
{
padding
:
0
;}
.select2-container--default
.select2-results__option
[
aria-disabled
=
true
]
{
color
:
#999
;}
.select2-container--default
.select2-results__option
[
aria-selected
=
true
]
{
background-color
:
#ddd
;}
.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--highlighted
[
aria-selected
]
{
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
:
#f6f6f6
;
border
:
1px
solid
#aaa
;
border-radius
:
4px
;
outline
:
0
;
background-image
:
-webkit-linear-gradient
(
top
,
#ffffff
50%
,
#eeeeee
100%
);
background-image
:
-o-linear-gradient
(
top
,
#ffffff
50%
,
#eeeeee
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#ffffff
50%
,
#eeeeee
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffffff'
,
endColorstr
=
'#eeeeee'
,
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
;
margin-right
:
10px
;}
.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
,
#eeeeee
50%
,
#cccccc
100%
);
background-image
:
-o-linear-gradient
(
top
,
#eeeeee
50%
,
#cccccc
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#eeeeee
50%
,
#cccccc
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#eeeeee'
,
endColorstr
=
'#cccccc'
,
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
,
#ffffff
0%
,
#eeeeee
50%
);
background-image
:
-o-linear-gradient
(
top
,
#ffffff
0%
,
#eeeeee
50%
);
background-image
:
linear-gradient
(
to
bottom
,
#ffffff
0%
,
#eeeeee
50%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#ffffff'
,
endColorstr
=
'#eeeeee'
,
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
,
#eeeeee
50%
,
#ffffff
100%
);
background-image
:
-o-linear-gradient
(
top
,
#eeeeee
50%
,
#ffffff
100%
);
background-image
:
linear-gradient
(
to
bottom
,
#eeeeee
50%
,
#ffffff
100%
);
background-repeat
:
repeat-x
;
filter
:
progid
:
DXImageTransform
.
Microsoft
.
gradient
(
startColorstr
=
'#eeeeee'
,
endColorstr
=
'#ffffff'
,
GradientType
=
0
);}
.select2-container--classic
.select2-selection--multiple
{
background-color
:
white
;
border
:
1px
solid
#aaa
;
border-radius
:
4px
;
cursor
:
text
;
outline
:
0
;}
.select2-container--classic
.select2-selection--multiple
:focus
{
border
:
1px
solid
#5897fb
;}
.select2-container--classic
.select2-selection--multiple
.select2-selection__rendered
{
list-style
:
none
;
margin
:
0
;
padding
:
0
5px
;}
.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
;
cursor
:
default
;
float
:
left
;
margin-right
:
5px
;
margin-top
:
5px
;
padding
:
0
5px
;}
.select2-container--classic
.select2-selection--multiple
.select2-selection__choice__remove
{
color
:
#888
;
cursor
:
pointer
;
display
:
inline-block
;
font-weight
:
bold
;
margin-right
:
2px
;}
.select2-container--classic
.select2-selection--multiple
.select2-selection__choice__remove
:hover
{
color
:
#555
;}
.select2-container--classic
[
dir
=
"rtl"
]
.select2-selection--multiple
.select2-selection__choice
{
float
:
right
;}
.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__remove
{
margin-left
:
2px
;
margin-right
:
auto
;}
.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
;}
.select2-container--classic
.select2-dropdown
{
background-color
:
white
;
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
[
role
=
group
]
{
padding
:
0
;}
.select2-container--classic
.select2-results__option
[
aria-disabled
=
true
]
{
color
:
grey
;}
.select2-container--classic
.select2-results__option--highlighted
[
aria-selected
]
{
background-color
:
#3875d7
;
color
:
white
;}
.select2-container--classic
.select2-results__group
{
cursor
:
default
;
display
:
block
;
padding
:
6px
;}
.select2-container--classic.select2-container--open
.select2-dropdown
{
border-color
:
#5897fb
;}
\ No newline at end of file
apps/static/css/style.css
View file @
3c3fda80
...
...
@@ -969,17 +969,43 @@ button.dim:active:before {
position
:
relative
;
width
:
100%
;
}
.select2-container--default
.select2-results__option--highlighted
[
aria-selected
]
{
background-color
:
#1ab394
;
color
:
white
;
}
.select2-selection--multiple
{
border
:
1px
solid
#e5e6e7
!important
;
cursor
:
text
!important
;
}
/*.select2-container--classic .select2-selection--multiple:focus {*/
/*border: 1px solid #1ab394;*/
/*}*/
.select2-container--forcus
{
border
:
1px
solid
#1AB394
!important
;
}
.select2-selection__choice
,
.chosen-container-multi
.chosen-choices
li
.search-choice
{
background
:
#f1f1f1
;
border
:
1px
solid
#ededed
;
border-radius
:
2px
;
box-shadow
:
none
;
color
:
#333333
;
cursor
:
default
;
line-height
:
13px
;
margin
:
3px
0
3px
5px
;
padding
:
3px
20px
3px
5px
;
position
:
relative
;
background
:
#f1f1f1
!important
;
border
:
1px
solid
#e5e6e7
!important
;
/*border: 1px solid #ededed;*/
border-radius
:
2px
!important
;
box-shadow
:
none
!important
;
color
:
#333333
!important
;
cursor
:
default
!important
;
line-height
:
13px
!important
;
/*margin: 3px 0 3px 5px !important;*/
padding
:
3px
20px
3px
5px
!important
;
position
:
relative
!important
;
}
.select2-container--default.select2-container--focus
.select2-selection--multiple
{
border
:
1px
solid
#1ab394
!important
;
box-shadow
:
0
0
5px
rgba
(
0
,
0
,
0
,
0.3
)
!important
;
}
.chosen-container
.chosen-results
li
.highlighted
{
...
...
apps/static/js/plugins/chosen/chosen.jquery.js
deleted
100755 → 0
View file @
ae9bbb40
/*!
Chosen, a Select Box Enhancer for jQuery and Prototype
by Patrick Filler for Harvest, http://getharvest.com
Version 1.1.0
Full source at https://github.com/harvesthq/chosen
Copyright (c) 2011 Harvest http://getharvest.com
MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
This file is generated by `grunt build`, do not edit it by hand.
*/
(
function
()
{
var
$
,
AbstractChosen
,
Chosen
,
SelectParser
,
_ref
,
__hasProp
=
{}.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
();
child
.
__super__
=
parent
.
prototype
;
return
child
;
};
SelectParser
=
(
function
()
{
function
SelectParser
()
{
this
.
options_index
=
0
;
this
.
parsed
=
[];
}
SelectParser
.
prototype
.
add_node
=
function
(
child
)
{
if
(
child
.
nodeName
.
toUpperCase
()
===
"OPTGROUP"
)
{
return
this
.
add_group
(
child
);
}
else
{
return
this
.
add_option
(
child
);
}
};
SelectParser
.
prototype
.
add_group
=
function
(
group
)
{
var
group_position
,
option
,
_i
,
_len
,
_ref
,
_results
;
group_position
=
this
.
parsed
.
length
;
this
.
parsed
.
push
({
array_index
:
group_position
,
group
:
true
,
label
:
this
.
escapeExpression
(
group
.
label
),
children
:
0
,
disabled
:
group
.
disabled
});
_ref
=
group
.
childNodes
;
_results
=
[];
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
option
=
_ref
[
_i
];
_results
.
push
(
this
.
add_option
(
option
,
group_position
,
group
.
disabled
));
}
return
_results
;
};
SelectParser
.
prototype
.
add_option
=
function
(
option
,
group_position
,
group_disabled
)
{
if
(
option
.
nodeName
.
toUpperCase
()
===
"OPTION"
)
{
if
(
option
.
text
!==
""
)
{
if
(
group_position
!=
null
)
{
this
.
parsed
[
group_position
].
children
+=
1
;
}
this
.
parsed
.
push
({
array_index
:
this
.
parsed
.
length
,
options_index
:
this
.
options_index
,
value
:
option
.
value
,
text
:
option
.
text
,
html
:
option
.
innerHTML
,
selected
:
option
.
selected
,
disabled
:
group_disabled
===
true
?
group_disabled
:
option
.
disabled
,
group_array_index
:
group_position
,
classes
:
option
.
className
,
style
:
option
.
style
.
cssText
});
}
else
{
this
.
parsed
.
push
({
array_index
:
this
.
parsed
.
length
,
options_index
:
this
.
options_index
,
empty
:
true
});
}
return
this
.
options_index
+=
1
;
}
};
SelectParser
.
prototype
.
escapeExpression
=
function
(
text
)
{
var
map
,
unsafe_chars
;
if
((
text
==
null
)
||
text
===
false
)
{
return
""
;
}
if
(
!
/
[\&\<\>\"\'\`]
/
.
test
(
text
))
{
return
text
;
}
map
=
{
"<"
:
"<"
,
">"
:
">"
,
'"'
:
"""
,
"'"
:
"'"
,
"`"
:
"`"
};
unsafe_chars
=
/&
(?!\w
+;
)
|
[\<\>\"\'\`]
/g
;
return
text
.
replace
(
unsafe_chars
,
function
(
chr
)
{
return
map
[
chr
]
||
"&"
;
});
};
return
SelectParser
;
})();
SelectParser
.
select_to_array
=
function
(
select
)
{
var
child
,
parser
,
_i
,
_len
,
_ref
;
parser
=
new
SelectParser
();
_ref
=
select
.
childNodes
;
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
child
=
_ref
[
_i
];
parser
.
add_node
(
child
);
}
return
parser
.
parsed
;
};
AbstractChosen
=
(
function
()
{
function
AbstractChosen
(
form_field
,
options
)
{
this
.
form_field
=
form_field
;
this
.
options
=
options
!=
null
?
options
:
{};
if
(
!
AbstractChosen
.
browser_is_supported
())
{
return
;
}
this
.
is_multiple
=
this
.
form_field
.
multiple
;
this
.
set_default_text
();
this
.
set_default_values
();
this
.
setup
();
this
.
set_up_html
();
this
.
register_observers
();
}
AbstractChosen
.
prototype
.
set_default_values
=
function
()
{
var
_this
=
this
;
this
.
click_test_action
=
function
(
evt
)
{
return
_this
.
test_active_click
(
evt
);
};
this
.
activate_action
=
function
(
evt
)
{
return
_this
.
activate_field
(
evt
);
};
this
.
active_field
=
false
;
this
.
mouse_on_container
=
false
;
this
.
results_showing
=
false
;
this
.
result_highlighted
=
null
;
this
.
allow_single_deselect
=
(
this
.
options
.
allow_single_deselect
!=
null
)
&&
(
this
.
form_field
.
options
[
0
]
!=
null
)
&&
this
.
form_field
.
options
[
0
].
text
===
""
?
this
.
options
.
allow_single_deselect
:
false
;
this
.
disable_search_threshold
=
this
.
options
.
disable_search_threshold
||
0
;
this
.
disable_search
=
this
.
options
.
disable_search
||
false
;
this
.
enable_split_word_search
=
this
.
options
.
enable_split_word_search
!=
null
?
this
.
options
.
enable_split_word_search
:
true
;
this
.
group_search
=
this
.
options
.
group_search
!=
null
?
this
.
options
.
group_search
:
true
;
this
.
search_contains
=
this
.
options
.
search_contains
||
false
;
this
.
single_backstroke_delete
=
this
.
options
.
single_backstroke_delete
!=
null
?
this
.
options
.
single_backstroke_delete
:
true
;
this
.
max_selected_options
=
this
.
options
.
max_selected_options
||
Infinity
;
this
.
inherit_select_classes
=
this
.
options
.
inherit_select_classes
||
false
;
this
.
display_selected_options
=
this
.
options
.
display_selected_options
!=
null
?
this
.
options
.
display_selected_options
:
true
;
return
this
.
display_disabled_options
=
this
.
options
.
display_disabled_options
!=
null
?
this
.
options
.
display_disabled_options
:
true
;
};
AbstractChosen
.
prototype
.
set_default_text
=
function
()
{
if
(
this
.
form_field
.
getAttribute
(
"data-placeholder"
))
{
this
.
default_text
=
this
.
form_field
.
getAttribute
(
"data-placeholder"
);
}
else
if
(
this
.
is_multiple
)
{
this
.
default_text
=
this
.
options
.
placeholder_text_multiple
||
this
.
options
.
placeholder_text
||
AbstractChosen
.
default_multiple_text
;
}
else
{
this
.
default_text
=
this
.
options
.
placeholder_text_single
||
this
.
options
.
placeholder_text
||
AbstractChosen
.
default_single_text
;
}
return
this
.
results_none_found
=
this
.
form_field
.
getAttribute
(
"data-no_results_text"
)
||
this
.
options
.
no_results_text
||
AbstractChosen
.
default_no_result_text
;
};
AbstractChosen
.
prototype
.
mouse_enter
=
function
()
{
return
this
.
mouse_on_container
=
true
;
};
AbstractChosen
.
prototype
.
mouse_leave
=
function
()
{
return
this
.
mouse_on_container
=
false
;
};
AbstractChosen
.
prototype
.
input_focus
=
function
(
evt
)
{
var
_this
=
this
;
if
(
this
.
is_multiple
)
{
if
(
!
this
.
active_field
)
{
return
setTimeout
((
function
()
{
return
_this
.
container_mousedown
();
}),
50
);
}
}
else
{
if
(
!
this
.
active_field
)
{
return
this
.
activate_field
();
}
}
};
AbstractChosen
.
prototype
.
input_blur
=
function
(
evt
)
{
var
_this
=
this
;
if
(
!
this
.
mouse_on_container
)
{
this
.
active_field
=
false
;
return
setTimeout
((
function
()
{
return
_this
.
blur_test
();
}),
100
);
}
};
AbstractChosen
.
prototype
.
results_option_build
=
function
(
options
)
{
var
content
,
data
,
_i
,
_len
,
_ref
;
content
=
''
;
_ref
=
this
.
results_data
;
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
data
=
_ref
[
_i
];
if
(
data
.
group
)
{
content
+=
this
.
result_add_group
(
data
);
}
else
{
content
+=
this
.
result_add_option
(
data
);
}
if
(
options
!=
null
?
options
.
first
:
void
0
)
{
if
(
data
.
selected
&&
this
.
is_multiple
)
{
this
.
choice_build
(
data
);
}
else
if
(
data
.
selected
&&
!
this
.
is_multiple
)
{
this
.
single_set_selected_text
(
data
.
text
);
}
}
}
return
content
;
};
AbstractChosen
.
prototype
.
result_add_option
=
function
(
option
)
{
var
classes
,
option_el
;
if
(
!
option
.
search_match
)
{
return
''
;
}
if
(
!
this
.
include_option_in_results
(
option
))
{
return
''
;
}
classes
=
[];
if
(
!
option
.
disabled
&&
!
(
option
.
selected
&&
this
.
is_multiple
))
{
classes
.
push
(
"active-result"
);
}
if
(
option
.
disabled
&&
!
(
option
.
selected
&&
this
.
is_multiple
))
{
classes
.
push
(
"disabled-result"
);
}
if
(
option
.
selected
)
{
classes
.
push
(
"result-selected"
);
}
if
(
option
.
group_array_index
!=
null
)
{
classes
.
push
(
"group-option"
);
}
if
(
option
.
classes
!==
""
)
{
classes
.
push
(
option
.
classes
);
}
option_el
=
document
.
createElement
(
"li"
);
option_el
.
className
=
classes
.
join
(
" "
);
option_el
.
style
.
cssText
=
option
.
style
;
option_el
.
setAttribute
(
"data-option-array-index"
,
option
.
array_index
);
option_el
.
innerHTML
=
option
.
search_text
;
return
this
.
outerHTML
(
option_el
);
};
AbstractChosen
.
prototype
.
result_add_group
=
function
(
group
)
{
var
group_el
;
if
(
!
(
group
.
search_match
||
group
.
group_match
))
{
return
''
;
}
if
(
!
(
group
.
active_options
>
0
))
{
return
''
;
}
group_el
=
document
.
createElement
(
"li"
);
group_el
.
className
=
"group-result"
;
group_el
.
innerHTML
=
group
.
search_text
;
return
this
.
outerHTML
(
group_el
);
};
AbstractChosen
.
prototype
.
results_update_field
=
function
()
{
this
.
set_default_text
();
if
(
!
this
.
is_multiple
)
{
this
.
results_reset_cleanup
();
}
this
.
result_clear_highlight
();
this
.
results_build
();
if
(
this
.
results_showing
)
{
return
this
.
winnow_results
();
}
};
AbstractChosen
.
prototype
.
reset_single_select_options
=
function
()
{
var
result
,
_i
,
_len
,
_ref
,
_results
;
_ref
=
this
.
results_data
;
_results
=
[];
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
result
=
_ref
[
_i
];
if
(
result
.
selected
)
{
_results
.
push
(
result
.
selected
=
false
);
}
else
{
_results
.
push
(
void
0
);
}
}
return
_results
;
};
AbstractChosen
.
prototype
.
results_toggle
=
function
()
{
if
(
this
.
results_showing
)
{
return
this
.
results_hide
();
}
else
{
return
this
.
results_show
();
}
};
AbstractChosen
.
prototype
.
results_search
=
function
(
evt
)
{
if
(
this
.
results_showing
)
{
return
this
.
winnow_results
();
}
else
{
return
this
.
results_show
();
}
};
AbstractChosen
.
prototype
.
winnow_results
=
function
()
{
var
escapedSearchText
,
option
,
regex
,
regexAnchor
,
results
,
results_group
,
searchText
,
startpos
,
text
,
zregex
,
_i
,
_len
,
_ref
;
this
.
no_results_clear
();
results
=
0
;
searchText
=
this
.
get_search_text
();
escapedSearchText
=
searchText
.
replace
(
/
[
-[
\]
{}()*+?.,
\\
^$|#
\s]
/g
,
"
\\
$&"
);
regexAnchor
=
this
.
search_contains
?
""
:
"^"
;
regex
=
new
RegExp
(
regexAnchor
+
escapedSearchText
,
'i'
);
zregex
=
new
RegExp
(
escapedSearchText
,
'i'
);
_ref
=
this
.
results_data
;
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
option
=
_ref
[
_i
];
option
.
search_match
=
false
;
results_group
=
null
;
if
(
this
.
include_option_in_results
(
option
))
{
if
(
option
.
group
)
{
option
.
group_match
=
false
;
option
.
active_options
=
0
;
}
if
((
option
.
group_array_index
!=
null
)
&&
this
.
results_data
[
option
.
group_array_index
])
{
results_group
=
this
.
results_data
[
option
.
group_array_index
];
if
(
results_group
.
active_options
===
0
&&
results_group
.
search_match
)
{
results
+=
1
;
}
results_group
.
active_options
+=
1
;
}
if
(
!
(
option
.
group
&&
!
this
.
group_search
))
{
option
.
search_text
=
option
.
group
?
option
.
label
:
option
.
html
;
option
.
search_match
=
this
.
search_string_match
(
option
.
search_text
,
regex
);
if
(
option
.
search_match
&&
!
option
.
group
)
{
results
+=
1
;
}
if
(
option
.
search_match
)
{
if
(
searchText
.
length
)
{
startpos
=
option
.
search_text
.
search
(
zregex
);
text
=
option
.
search_text
.
substr
(
0
,
startpos
+
searchText
.
length
)
+
'</em>'
+
option
.
search_text
.
substr
(
startpos
+
searchText
.
length
);
option
.
search_text
=
text
.
substr
(
0
,
startpos
)
+
'<em>'
+
text
.
substr
(
startpos
);
}
if
(
results_group
!=
null
)
{
results_group
.
group_match
=
true
;
}
}
else
if
((
option
.
group_array_index
!=
null
)
&&
this
.
results_data
[
option
.
group_array_index
].
search_match
)
{
option
.
search_match
=
true
;
}
}
}
}
this
.
result_clear_highlight
();
if
(
results
<
1
&&
searchText
.
length
)
{
this
.
update_results_content
(
""
);
return
this
.
no_results
(
searchText
);
}
else
{
this
.
update_results_content
(
this
.
results_option_build
());
return
this
.
winnow_results_set_highlight
();
}
};
AbstractChosen
.
prototype
.
search_string_match
=
function
(
search_string
,
regex
)
{
var
part
,
parts
,
_i
,
_len
;
if
(
regex
.
test
(
search_string
))
{
return
true
;
}
else
if
(
this
.
enable_split_word_search
&&
(
search_string
.
indexOf
(
" "
)
>=
0
||
search_string
.
indexOf
(
"["
)
===
0
))
{
parts
=
search_string
.
replace
(
/
\[
|
\]
/g
,
""
).
split
(
" "
);
if
(
parts
.
length
)
{
for
(
_i
=
0
,
_len
=
parts
.
length
;
_i
<
_len
;
_i
++
)
{
part
=
parts
[
_i
];
if
(
regex
.
test
(
part
))
{
return
true
;
}
}
}
}
};
AbstractChosen
.
prototype
.
choices_count
=
function
()
{
var
option
,
_i
,
_len
,
_ref
;
if
(
this
.
selected_option_count
!=
null
)
{
return
this
.
selected_option_count
;
}
this
.
selected_option_count
=
0
;
_ref
=
this
.
form_field
.
options
;
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
option
=
_ref
[
_i
];
if
(
option
.
selected
)
{
this
.
selected_option_count
+=
1
;
}
}
return
this
.
selected_option_count
;
};
AbstractChosen
.
prototype
.
choices_click
=
function
(
evt
)
{
evt
.
preventDefault
();
if
(
!
(
this
.
results_showing
||
this
.
is_disabled
))
{
return
this
.
results_show
();
}
};
AbstractChosen
.
prototype
.
keyup_checker
=
function
(
evt
)
{
var
stroke
,
_ref
;
stroke
=
(
_ref
=
evt
.
which
)
!=
null
?
_ref
:
evt
.
keyCode
;
this
.
search_field_scale
();
switch
(
stroke
)
{
case
8
:
if
(
this
.
is_multiple
&&
this
.
backstroke_length
<
1
&&
this
.
choices_count
()
>
0
)
{
return
this
.
keydown_backstroke
();
}
else
if
(
!
this
.
pending_backstroke
)
{
this
.
result_clear_highlight
();
return
this
.
results_search
();
}
break
;
case
13
:
evt
.
preventDefault
();
if
(
this
.
results_showing
)
{
return
this
.
result_select
(
evt
);
}
break
;
case
27
:
if
(
this
.
results_showing
)
{
this
.
results_hide
();
}
return
true
;
case
9
:
case
38
:
case
40
:
case
16
:
case
91
:
case
17
:
break
;
default
:
return
this
.
results_search
();
}
};
AbstractChosen
.
prototype
.
clipboard_event_checker
=
function
(
evt
)
{
var
_this
=
this
;
return
setTimeout
((
function
()
{
return
_this
.
results_search
();
}),
50
);
};
AbstractChosen
.
prototype
.
container_width
=
function
()
{
if
(
this
.
options
.
width
!=
null
)
{
return
this
.
options
.
width
;
}
else
{
return
""
+
this
.
form_field
.
offsetWidth
+
"px"
;
}
};
AbstractChosen
.
prototype
.
include_option_in_results
=
function
(
option
)
{
if
(
this
.
is_multiple
&&
(
!
this
.
display_selected_options
&&
option
.
selected
))
{
return
false
;
}
if
(
!
this
.
display_disabled_options
&&
option
.
disabled
)
{
return
false
;
}
if
(
option
.
empty
)
{
return
false
;
}
return
true
;
};
AbstractChosen
.
prototype
.
search_results_touchstart
=
function
(
evt
)
{
this
.
touch_started
=
true
;
return
this
.
search_results_mouseover
(
evt
);
};
AbstractChosen
.
prototype
.
search_results_touchmove
=
function
(
evt
)
{
this
.
touch_started
=
false
;
return
this
.
search_results_mouseout
(
evt
);
};
AbstractChosen
.
prototype
.
search_results_touchend
=
function
(
evt
)
{
if
(
this
.
touch_started
)
{
return
this
.
search_results_mouseup
(
evt
);
}
};
AbstractChosen
.
prototype
.
outerHTML
=
function
(
element
)
{
var
tmp
;
if
(
element
.
outerHTML
)
{
return
element
.
outerHTML
;
}
tmp
=
document
.
createElement
(
"div"
);
tmp
.
appendChild
(
element
);
return
tmp
.
innerHTML
;
};
AbstractChosen
.
browser_is_supported
=
function
()
{
if
(
window
.
navigator
.
appName
===
"Microsoft Internet Explorer"
)
{
return
document
.
documentMode
>=
8
;
}
if
(
/iP
(
od|hone
)
/i
.
test
(
window
.
navigator
.
userAgent
))
{
return
false
;
}
if
(
/Android/i
.
test
(
window
.
navigator
.
userAgent
))
{
if
(
/Mobile/i
.
test
(
window
.
navigator
.
userAgent
))
{
return
false
;
}
}
return
true
;
};
AbstractChosen
.
default_multiple_text
=
"Select Some Options"
;
AbstractChosen
.
default_single_text
=
"Select an Option"
;
AbstractChosen
.
default_no_result_text
=
"No results match"
;
return
AbstractChosen
;
})();
$
=
jQuery
;
$
.
fn
.
extend
({
chosen
:
function
(
options
)
{
if
(
!
AbstractChosen
.
browser_is_supported
())
{
return
this
;
}
return
this
.
each
(
function
(
input_field
)
{
var
$this
,
chosen
;
$this
=
$
(
this
);
chosen
=
$this
.
data
(
'chosen'
);
if
(
options
===
'destroy'
&&
chosen
)
{
chosen
.
destroy
();
}
else
if
(
!
chosen
)
{
$this
.
data
(
'chosen'
,
new
Chosen
(
this
,
options
));
}
});
}
});
Chosen
=
(
function
(
_super
)
{
__extends
(
Chosen
,
_super
);
function
Chosen
()
{
_ref
=
Chosen
.
__super__
.
constructor
.
apply
(
this
,
arguments
);
return
_ref
;
}
Chosen
.
prototype
.
setup
=
function
()
{
this
.
form_field_jq
=
$
(
this
.
form_field
);
this
.
current_selectedIndex
=
this
.
form_field
.
selectedIndex
;
return
this
.
is_rtl
=
this
.
form_field_jq
.
hasClass
(
"chosen-rtl"
);
};
Chosen
.
prototype
.
set_up_html
=
function
()
{
var
container_classes
,
container_props
;
container_classes
=
[
"chosen-container"
];
container_classes
.
push
(
"chosen-container-"
+
(
this
.
is_multiple
?
"multi"
:
"single"
));
if
(
this
.
inherit_select_classes
&&
this
.
form_field
.
className
)
{
container_classes
.
push
(
this
.
form_field
.
className
);
}
if
(
this
.
is_rtl
)
{
container_classes
.
push
(
"chosen-rtl"
);
}
container_props
=
{
'class'
:
container_classes
.
join
(
' '
),
'style'
:
"width: "
+
(
this
.
container_width
())
+
";"
,
'title'
:
this
.
form_field
.
title
};
if
(
this
.
form_field
.
id
.
length
)
{
container_props
.
id
=
this
.
form_field
.
id
.
replace
(
/
[^\w]
/g
,
'_'
)
+
"_chosen"
;
}
this
.
container
=
$
(
"<div />"
,
container_props
);
if
(
this
.
is_multiple
)
{
this
.
container
.
html
(
'<ul class="chosen-choices"><li class="search-field"><input type="text" value="'
+
this
.
default_text
+
'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'
);
}
else
{
this
.
container
.
html
(
'<a class="chosen-single chosen-default" tabindex="-1"><span>'
+
this
.
default_text
+
'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'
);
}
this
.
form_field_jq
.
hide
().
after
(
this
.
container
);
this
.
dropdown
=
this
.
container
.
find
(
'div.chosen-drop'
).
first
();
this
.
search_field
=
this
.
container
.
find
(
'input'
).
first
();
this
.
search_results
=
this
.
container
.
find
(
'ul.chosen-results'
).
first
();
this
.
search_field_scale
();
this
.
search_no_results
=
this
.
container
.
find
(
'li.no-results'
).
first
();
if
(
this
.
is_multiple
)
{
this
.
search_choices
=
this
.
container
.
find
(
'ul.chosen-choices'
).
first
();
this
.
search_container
=
this
.
container
.
find
(
'li.search-field'
).
first
();
}
else
{
this
.
search_container
=
this
.
container
.
find
(
'div.chosen-search'
).
first
();
this
.
selected_item
=
this
.
container
.
find
(
'.chosen-single'
).
first
();
}
this
.
results_build
();
this
.
set_tab_index
();
this
.
set_label_behavior
();
return
this
.
form_field_jq
.
trigger
(
"chosen:ready"
,
{
chosen
:
this
});
};
Chosen
.
prototype
.
register_observers
=
function
()
{
var
_this
=
this
;
this
.
container
.
bind
(
'mousedown.chosen'
,
function
(
evt
)
{
_this
.
container_mousedown
(
evt
);
});
this
.
container
.
bind
(
'mouseup.chosen'
,
function
(
evt
)
{
_this
.
container_mouseup
(
evt
);
});
this
.
container
.
bind
(
'mouseenter.chosen'
,
function
(
evt
)
{
_this
.
mouse_enter
(
evt
);
});
this
.
container
.
bind
(
'mouseleave.chosen'
,
function
(
evt
)
{
_this
.
mouse_leave
(
evt
);
});
this
.
search_results
.
bind
(
'mouseup.chosen'
,
function
(
evt
)
{
_this
.
search_results_mouseup
(
evt
);
});
this
.
search_results
.
bind
(
'mouseover.chosen'
,
function
(
evt
)
{
_this
.
search_results_mouseover
(
evt
);
});
this
.
search_results
.
bind
(
'mouseout.chosen'
,
function
(
evt
)
{
_this
.
search_results_mouseout
(
evt
);
});
this
.
search_results
.
bind
(
'mousewheel.chosen DOMMouseScroll.chosen'
,
function
(
evt
)
{
_this
.
search_results_mousewheel
(
evt
);
});
this
.
search_results
.
bind
(
'touchstart.chosen'
,
function
(
evt
)
{
_this
.
search_results_touchstart
(
evt
);
});
this
.
search_results
.
bind
(
'touchmove.chosen'
,
function
(
evt
)
{
_this
.
search_results_touchmove
(
evt
);
});
this
.
search_results
.
bind
(
'touchend.chosen'
,
function
(
evt
)
{
_this
.
search_results_touchend
(
evt
);
});
this
.
form_field_jq
.
bind
(
"chosen:updated.chosen"
,
function
(
evt
)
{
_this
.
results_update_field
(
evt
);
});
this
.
form_field_jq
.
bind
(
"chosen:activate.chosen"
,
function
(
evt
)
{
_this
.
activate_field
(
evt
);
});
this
.
form_field_jq
.
bind
(
"chosen:open.chosen"
,
function
(
evt
)
{
_this
.
container_mousedown
(
evt
);
});
this
.
form_field_jq
.
bind
(
"chosen:close.chosen"
,
function
(
evt
)
{
_this
.
input_blur
(
evt
);
});
this
.
search_field
.
bind
(
'blur.chosen'
,
function
(
evt
)
{
_this
.
input_blur
(
evt
);
});
this
.
search_field
.
bind
(
'keyup.chosen'
,
function
(
evt
)
{
_this
.
keyup_checker
(
evt
);
});
this
.
search_field
.
bind
(
'keydown.chosen'
,
function
(
evt
)
{
_this
.
keydown_checker
(
evt
);
});
this
.
search_field
.
bind
(
'focus.chosen'
,
function
(
evt
)
{
_this
.
input_focus
(
evt
);
});
this
.
search_field
.
bind
(
'cut.chosen'
,
function
(
evt
)
{
_this
.
clipboard_event_checker
(
evt
);
});
this
.
search_field
.
bind
(
'paste.chosen'
,
function
(
evt
)
{
_this
.
clipboard_event_checker
(
evt
);
});
if
(
this
.
is_multiple
)
{
return
this
.
search_choices
.
bind
(
'click.chosen'
,
function
(
evt
)
{
_this
.
choices_click
(
evt
);
});
}
else
{
return
this
.
container
.
bind
(
'click.chosen'
,
function
(
evt
)
{
evt
.
preventDefault
();
});
}
};
Chosen
.
prototype
.
destroy
=
function
()
{
$
(
this
.
container
[
0
].
ownerDocument
).
unbind
(
"click.chosen"
,
this
.
click_test_action
);
if
(
this
.
search_field
[
0
].
tabIndex
)
{
this
.
form_field_jq
[
0
].
tabIndex
=
this
.
search_field
[
0
].
tabIndex
;
}
this
.
container
.
remove
();
this
.
form_field_jq
.
removeData
(
'chosen'
);
return
this
.
form_field_jq
.
show
();
};
Chosen
.
prototype
.
search_field_disabled
=
function
()
{
this
.
is_disabled
=
this
.
form_field_jq
[
0
].
disabled
;
if
(
this
.
is_disabled
)
{
this
.
container
.
addClass
(
'chosen-disabled'
);
this
.
search_field
[
0
].
disabled
=
true
;
if
(
!
this
.
is_multiple
)
{
this
.
selected_item
.
unbind
(
"focus.chosen"
,
this
.
activate_action
);
}
return
this
.
close_field
();
}
else
{
this
.
container
.
removeClass
(
'chosen-disabled'
);
this
.
search_field
[
0
].
disabled
=
false
;
if
(
!
this
.
is_multiple
)
{
return
this
.
selected_item
.
bind
(
"focus.chosen"
,
this
.
activate_action
);
}
}
};
Chosen
.
prototype
.
container_mousedown
=
function
(
evt
)
{
if
(
!
this
.
is_disabled
)
{
if
(
evt
&&
evt
.
type
===
"mousedown"
&&
!
this
.
results_showing
)
{
evt
.
preventDefault
();
}
if
(
!
((
evt
!=
null
)
&&
(
$
(
evt
.
target
)).
hasClass
(
"search-choice-close"
)))
{
if
(
!
this
.
active_field
)
{
if
(
this
.
is_multiple
)
{
this
.
search_field
.
val
(
""
);
}
$
(
this
.
container
[
0
].
ownerDocument
).
bind
(
'click.chosen'
,
this
.
click_test_action
);
this
.
results_show
();
}
else
if
(
!
this
.
is_multiple
&&
evt
&&
((
$
(
evt
.
target
)[
0
]
===
this
.
selected_item
[
0
])
||
$
(
evt
.
target
).
parents
(
"a.chosen-single"
).
length
))
{
evt
.
preventDefault
();
this
.
results_toggle
();
}
return
this
.
activate_field
();
}
}
};
Chosen
.
prototype
.
container_mouseup
=
function
(
evt
)
{
if
(
evt
.
target
.
nodeName
===
"ABBR"
&&
!
this
.
is_disabled
)
{
return
this
.
results_reset
(
evt
);
}
};
Chosen
.
prototype
.
search_results_mousewheel
=
function
(
evt
)
{
var
delta
;
if
(
evt
.
originalEvent
)
{
delta
=
-
evt
.
originalEvent
.
wheelDelta
||
evt
.
originalEvent
.
detail
;
}
if
(
delta
!=
null
)
{
evt
.
preventDefault
();
if
(
evt
.
type
===
'DOMMouseScroll'
)
{
delta
=
delta
*
40
;
}
return
this
.
search_results
.
scrollTop
(
delta
+
this
.
search_results
.
scrollTop
());
}
};
Chosen
.
prototype
.
blur_test
=
function
(
evt
)
{
if
(
!
this
.
active_field
&&
this
.
container
.
hasClass
(
"chosen-container-active"
))
{
return
this
.
close_field
();
}
};
Chosen
.
prototype
.
close_field
=
function
()
{
$
(
this
.
container
[
0
].
ownerDocument
).
unbind
(
"click.chosen"
,
this
.
click_test_action
);
this
.
active_field
=
false
;
this
.
results_hide
();
this
.
container
.
removeClass
(
"chosen-container-active"
);
this
.
clear_backstroke
();
this
.
show_search_field_default
();
return
this
.
search_field_scale
();
};
Chosen
.
prototype
.
activate_field
=
function
()
{
this
.
container
.
addClass
(
"chosen-container-active"
);
this
.
active_field
=
true
;
this
.
search_field
.
val
(
this
.
search_field
.
val
());
return
this
.
search_field
.
focus
();
};
Chosen
.
prototype
.
test_active_click
=
function
(
evt
)
{
var
active_container
;
active_container
=
$
(
evt
.
target
).
closest
(
'.chosen-container'
);
if
(
active_container
.
length
&&
this
.
container
[
0
]
===
active_container
[
0
])
{
return
this
.
active_field
=
true
;
}
else
{
return
this
.
close_field
();
}
};
Chosen
.
prototype
.
results_build
=
function
()
{
this
.
parsing
=
true
;
this
.
selected_option_count
=
null
;
this
.
results_data
=
SelectParser
.
select_to_array
(
this
.
form_field
);
if
(
this
.
is_multiple
)
{
this
.
search_choices
.
find
(
"li.search-choice"
).
remove
();
}
else
if
(
!
this
.
is_multiple
)
{
this
.
single_set_selected_text
();
if
(
this
.
disable_search
||
this
.
form_field
.
options
.
length
<=
this
.
disable_search_threshold
)
{
this
.
search_field
[
0
].
readOnly
=
true
;
this
.
container
.
addClass
(
"chosen-container-single-nosearch"
);
}
else
{
this
.
search_field
[
0
].
readOnly
=
false
;
this
.
container
.
removeClass
(
"chosen-container-single-nosearch"
);
}
}
this
.
update_results_content
(
this
.
results_option_build
({
first
:
true
}));
this
.
search_field_disabled
();
this
.
show_search_field_default
();
this
.
search_field_scale
();
return
this
.
parsing
=
false
;
};
Chosen
.
prototype
.
result_do_highlight
=
function
(
el
)
{
var
high_bottom
,
high_top
,
maxHeight
,
visible_bottom
,
visible_top
;
if
(
el
.
length
)
{
this
.
result_clear_highlight
();
this
.
result_highlight
=
el
;
this
.
result_highlight
.
addClass
(
"highlighted"
);
maxHeight
=
parseInt
(
this
.
search_results
.
css
(
"maxHeight"
),
10
);
visible_top
=
this
.
search_results
.
scrollTop
();
visible_bottom
=
maxHeight
+
visible_top
;
high_top
=
this
.
result_highlight
.
position
().
top
+
this
.
search_results
.
scrollTop
();
high_bottom
=
high_top
+
this
.
result_highlight
.
outerHeight
();
if
(
high_bottom
>=
visible_bottom
)
{
return
this
.
search_results
.
scrollTop
((
high_bottom
-
maxHeight
)
>
0
?
high_bottom
-
maxHeight
:
0
);
}
else
if
(
high_top
<
visible_top
)
{
return
this
.
search_results
.
scrollTop
(
high_top
);
}
}
};
Chosen
.
prototype
.
result_clear_highlight
=
function
()
{
if
(
this
.
result_highlight
)
{
this
.
result_highlight
.
removeClass
(
"highlighted"
);
}
return
this
.
result_highlight
=
null
;
};
Chosen
.
prototype
.
results_show
=
function
()
{
if
(
this
.
is_multiple
&&
this
.
max_selected_options
<=
this
.
choices_count
())
{
this
.
form_field_jq
.
trigger
(
"chosen:maxselected"
,
{
chosen
:
this
});
return
false
;
}
this
.
container
.
addClass
(
"chosen-with-drop"
);
this
.
results_showing
=
true
;
this
.
search_field
.
focus
();
this
.
search_field
.
val
(
this
.
search_field
.
val
());
this
.
winnow_results
();
return
this
.
form_field_jq
.
trigger
(
"chosen:showing_dropdown"
,
{
chosen
:
this
});
};
Chosen
.
prototype
.
update_results_content
=
function
(
content
)
{
return
this
.
search_results
.
html
(
content
);
};
Chosen
.
prototype
.
results_hide
=
function
()
{
if
(
this
.
results_showing
)
{
this
.
result_clear_highlight
();
this
.
container
.
removeClass
(
"chosen-with-drop"
);
this
.
form_field_jq
.
trigger
(
"chosen:hiding_dropdown"
,
{
chosen
:
this
});
}
return
this
.
results_showing
=
false
;
};
Chosen
.
prototype
.
set_tab_index
=
function
(
el
)
{
var
ti
;
if
(
this
.
form_field
.
tabIndex
)
{
ti
=
this
.
form_field
.
tabIndex
;
this
.
form_field
.
tabIndex
=
-
1
;
return
this
.
search_field
[
0
].
tabIndex
=
ti
;
}
};
Chosen
.
prototype
.
set_label_behavior
=
function
()
{
var
_this
=
this
;
this
.
form_field_label
=
this
.
form_field_jq
.
parents
(
"label"
);
if
(
!
this
.
form_field_label
.
length
&&
this
.
form_field
.
id
.
length
)
{
this
.
form_field_label
=
$
(
"label[for='"
+
this
.
form_field
.
id
+
"']"
);
}
if
(
this
.
form_field_label
.
length
>
0
)
{
return
this
.
form_field_label
.
bind
(
'click.chosen'
,
function
(
evt
)
{
if
(
_this
.
is_multiple
)
{
return
_this
.
container_mousedown
(
evt
);
}
else
{
return
_this
.
activate_field
();
}
});
}
};
Chosen
.
prototype
.
show_search_field_default
=
function
()
{
if
(
this
.
is_multiple
&&
this
.
choices_count
()
<
1
&&
!
this
.
active_field
)
{
this
.
search_field
.
val
(
this
.
default_text
);
return
this
.
search_field
.
addClass
(
"default"
);
}
else
{
this
.
search_field
.
val
(
""
);
return
this
.
search_field
.
removeClass
(
"default"
);
}
};
Chosen
.
prototype
.
search_results_mouseup
=
function
(
evt
)
{
var
target
;
target
=
$
(
evt
.
target
).
hasClass
(
"active-result"
)
?
$
(
evt
.
target
)
:
$
(
evt
.
target
).
parents
(
".active-result"
).
first
();
if
(
target
.
length
)
{
this
.
result_highlight
=
target
;
this
.
result_select
(
evt
);
return
this
.
search_field
.
focus
();
}
};
Chosen
.
prototype
.
search_results_mouseover
=
function
(
evt
)
{
var
target
;
target
=
$
(
evt
.
target
).
hasClass
(
"active-result"
)
?
$
(
evt
.
target
)
:
$
(
evt
.
target
).
parents
(
".active-result"
).
first
();
if
(
target
)
{
return
this
.
result_do_highlight
(
target
);
}
};
Chosen
.
prototype
.
search_results_mouseout
=
function
(
evt
)
{
if
(
$
(
evt
.
target
).
hasClass
(
"active-result"
||
$
(
evt
.
target
).
parents
(
'.active-result'
).
first
()))
{
return
this
.
result_clear_highlight
();
}
};
Chosen
.
prototype
.
choice_build
=
function
(
item
)
{
var
choice
,
close_link
,
_this
=
this
;
choice
=
$
(
'<li />'
,
{
"class"
:
"search-choice"
}).
html
(
"<span>"
+
item
.
html
+
"</span>"
);
if
(
item
.
disabled
)
{
choice
.
addClass
(
'search-choice-disabled'
);
}
else
{
close_link
=
$
(
'<a />'
,
{
"class"
:
'search-choice-close'
,
'data-option-array-index'
:
item
.
array_index
});
close_link
.
bind
(
'click.chosen'
,
function
(
evt
)
{
return
_this
.
choice_destroy_link_click
(
evt
);
});
choice
.
append
(
close_link
);
}
return
this
.
search_container
.
before
(
choice
);
};
Chosen
.
prototype
.
choice_destroy_link_click
=
function
(
evt
)
{
evt
.
preventDefault
();
evt
.
stopPropagation
();
if
(
!
this
.
is_disabled
)
{
return
this
.
choice_destroy
(
$
(
evt
.
target
));
}
};
Chosen
.
prototype
.
choice_destroy
=
function
(
link
)
{
if
(
this
.
result_deselect
(
link
[
0
].
getAttribute
(
"data-option-array-index"
)))
{
this
.
show_search_field_default
();
if
(
this
.
is_multiple
&&
this
.
choices_count
()
>
0
&&
this
.
search_field
.
val
().
length
<
1
)
{
this
.
results_hide
();
}
link
.
parents
(
'li'
).
first
().
remove
();
return
this
.
search_field_scale
();
}
};
Chosen
.
prototype
.
results_reset
=
function
()
{
this
.
reset_single_select_options
();
this
.
form_field
.
options
[
0
].
selected
=
true
;
this
.
single_set_selected_text
();
this
.
show_search_field_default
();
this
.
results_reset_cleanup
();
this
.
form_field_jq
.
trigger
(
"change"
);
if
(
this
.
active_field
)
{
return
this
.
results_hide
();
}
};
Chosen
.
prototype
.
results_reset_cleanup
=
function
()
{
this
.
current_selectedIndex
=
this
.
form_field
.
selectedIndex
;
return
this
.
selected_item
.
find
(
"abbr"
).
remove
();
};
Chosen
.
prototype
.
result_select
=
function
(
evt
)
{
var
high
,
item
;
if
(
this
.
result_highlight
)
{
high
=
this
.
result_highlight
;
this
.
result_clear_highlight
();
if
(
this
.
is_multiple
&&
this
.
max_selected_options
<=
this
.
choices_count
())
{
this
.
form_field_jq
.
trigger
(
"chosen:maxselected"
,
{
chosen
:
this
});
return
false
;
}
if
(
this
.
is_multiple
)
{
high
.
removeClass
(
"active-result"
);
}
else
{
this
.
reset_single_select_options
();
}
item
=
this
.
results_data
[
high
[
0
].
getAttribute
(
"data-option-array-index"
)];
item
.
selected
=
true
;
this
.
form_field
.
options
[
item
.
options_index
].
selected
=
true
;
this
.
selected_option_count
=
null
;
if
(
this
.
is_multiple
)
{
this
.
choice_build
(
item
);
}
else
{
this
.
single_set_selected_text
(
item
.
text
);
}
if
(
!
((
evt
.
metaKey
||
evt
.
ctrlKey
)
&&
this
.
is_multiple
))
{
this
.
results_hide
();
}
this
.
search_field
.
val
(
""
);
if
(
this
.
is_multiple
||
this
.
form_field
.
selectedIndex
!==
this
.
current_selectedIndex
)
{
this
.
form_field_jq
.
trigger
(
"change"
,
{
'selected'
:
this
.
form_field
.
options
[
item
.
options_index
].
value
});
}
this
.
current_selectedIndex
=
this
.
form_field
.
selectedIndex
;
return
this
.
search_field_scale
();
}
};
Chosen
.
prototype
.
single_set_selected_text
=
function
(
text
)
{
if
(
text
==
null
)
{
text
=
this
.
default_text
;
}
if
(
text
===
this
.
default_text
)
{
this
.
selected_item
.
addClass
(
"chosen-default"
);
}
else
{
this
.
single_deselect_control_build
();
this
.
selected_item
.
removeClass
(
"chosen-default"
);
}
return
this
.
selected_item
.
find
(
"span"
).
text
(
text
);
};
Chosen
.
prototype
.
result_deselect
=
function
(
pos
)
{
var
result_data
;
result_data
=
this
.
results_data
[
pos
];
if
(
!
this
.
form_field
.
options
[
result_data
.
options_index
].
disabled
)
{
result_data
.
selected
=
false
;
this
.
form_field
.
options
[
result_data
.
options_index
].
selected
=
false
;
this
.
selected_option_count
=
null
;
this
.
result_clear_highlight
();
if
(
this
.
results_showing
)
{
this
.
winnow_results
();
}
this
.
form_field_jq
.
trigger
(
"change"
,
{
deselected
:
this
.
form_field
.
options
[
result_data
.
options_index
].
value
});
this
.
search_field_scale
();
return
true
;
}
else
{
return
false
;
}
};
Chosen
.
prototype
.
single_deselect_control_build
=
function
()
{
if
(
!
this
.
allow_single_deselect
)
{
return
;
}
if
(
!
this
.
selected_item
.
find
(
"abbr"
).
length
)
{
this
.
selected_item
.
find
(
"span"
).
first
().
after
(
"<abbr class=
\"
search-choice-close
\"
></abbr>"
);
}
return
this
.
selected_item
.
addClass
(
"chosen-single-with-deselect"
);
};
Chosen
.
prototype
.
get_search_text
=
function
()
{
if
(
this
.
search_field
.
val
()
===
this
.
default_text
)
{
return
""
;
}
else
{
return
$
(
'<div/>'
).
text
(
$
.
trim
(
this
.
search_field
.
val
())).
html
();
}
};
Chosen
.
prototype
.
winnow_results_set_highlight
=
function
()
{
var
do_high
,
selected_results
;
selected_results
=
!
this
.
is_multiple
?
this
.
search_results
.
find
(
".result-selected.active-result"
)
:
[];
do_high
=
selected_results
.
length
?
selected_results
.
first
()
:
this
.
search_results
.
find
(
".active-result"
).
first
();
if
(
do_high
!=
null
)
{
return
this
.
result_do_highlight
(
do_high
);
}
};
Chosen
.
prototype
.
no_results
=
function
(
terms
)
{
var
no_results_html
;
no_results_html
=
$
(
'<li class="no-results">'
+
this
.
results_none_found
+
' "<span></span>"</li>'
);
no_results_html
.
find
(
"span"
).
first
().
html
(
terms
);
this
.
search_results
.
append
(
no_results_html
);
return
this
.
form_field_jq
.
trigger
(
"chosen:no_results"
,
{
chosen
:
this
});
};
Chosen
.
prototype
.
no_results_clear
=
function
()
{
return
this
.
search_results
.
find
(
".no-results"
).
remove
();
};
Chosen
.
prototype
.
keydown_arrow
=
function
()
{
var
next_sib
;
if
(
this
.
results_showing
&&
this
.
result_highlight
)
{
next_sib
=
this
.
result_highlight
.
nextAll
(
"li.active-result"
).
first
();
if
(
next_sib
)
{
return
this
.
result_do_highlight
(
next_sib
);
}
}
else
{
return
this
.
results_show
();
}
};
Chosen
.
prototype
.
keyup_arrow
=
function
()
{
var
prev_sibs
;
if
(
!
this
.
results_showing
&&
!
this
.
is_multiple
)
{
return
this
.
results_show
();
}
else
if
(
this
.
result_highlight
)
{
prev_sibs
=
this
.
result_highlight
.
prevAll
(
"li.active-result"
);
if
(
prev_sibs
.
length
)
{
return
this
.
result_do_highlight
(
prev_sibs
.
first
());
}
else
{
if
(
this
.
choices_count
()
>
0
)
{
this
.
results_hide
();
}
return
this
.
result_clear_highlight
();
}
}
};
Chosen
.
prototype
.
keydown_backstroke
=
function
()
{
var
next_available_destroy
;
if
(
this
.
pending_backstroke
)
{
this
.
choice_destroy
(
this
.
pending_backstroke
.
find
(
"a"
).
first
());
return
this
.
clear_backstroke
();
}
else
{
next_available_destroy
=
this
.
search_container
.
siblings
(
"li.search-choice"
).
last
();
if
(
next_available_destroy
.
length
&&
!
next_available_destroy
.
hasClass
(
"search-choice-disabled"
))
{
this
.
pending_backstroke
=
next_available_destroy
;
if
(
this
.
single_backstroke_delete
)
{
return
this
.
keydown_backstroke
();
}
else
{
return
this
.
pending_backstroke
.
addClass
(
"search-choice-focus"
);
}
}
}
};
Chosen
.
prototype
.
clear_backstroke
=
function
()
{
if
(
this
.
pending_backstroke
)
{
this
.
pending_backstroke
.
removeClass
(
"search-choice-focus"
);
}
return
this
.
pending_backstroke
=
null
;
};
Chosen
.
prototype
.
keydown_checker
=
function
(
evt
)
{
var
stroke
,
_ref1
;
stroke
=
(
_ref1
=
evt
.
which
)
!=
null
?
_ref1
:
evt
.
keyCode
;
this
.
search_field_scale
();
if
(
stroke
!==
8
&&
this
.
pending_backstroke
)
{
this
.
clear_backstroke
();
}
switch
(
stroke
)
{
case
8
:
this
.
backstroke_length
=
this
.
search_field
.
val
().
length
;
break
;
case
9
:
if
(
this
.
results_showing
&&
!
this
.
is_multiple
)
{
this
.
result_select
(
evt
);
}
this
.
mouse_on_container
=
false
;
break
;
case
13
:
evt
.
preventDefault
();
break
;
case
38
:
evt
.
preventDefault
();
this
.
keyup_arrow
();
break
;
case
40
:
evt
.
preventDefault
();
this
.
keydown_arrow
();
break
;
}
};
Chosen
.
prototype
.
search_field_scale
=
function
()
{
var
div
,
f_width
,
h
,
style
,
style_block
,
styles
,
w
,
_i
,
_len
;
if
(
this
.
is_multiple
)
{
h
=
0
;
w
=
0
;
style_block
=
"position:absolute; left: -1000px; top: -1000px; display:none;"
;
styles
=
[
'font-size'
,
'font-style'
,
'font-weight'
,
'font-family'
,
'line-height'
,
'text-transform'
,
'letter-spacing'
];
for
(
_i
=
0
,
_len
=
styles
.
length
;
_i
<
_len
;
_i
++
)
{
style
=
styles
[
_i
];
style_block
+=
style
+
":"
+
this
.
search_field
.
css
(
style
)
+
";"
;
}
div
=
$
(
'<div />'
,
{
'style'
:
style_block
});
div
.
text
(
this
.
search_field
.
val
());
$
(
'body'
).
append
(
div
);
w
=
div
.
width
()
+
25
;
div
.
remove
();
f_width
=
this
.
container
.
outerWidth
();
if
(
w
>
f_width
-
10
)
{
w
=
f_width
-
10
;
}
return
this
.
search_field
.
css
({
'width'
:
w
+
'px'
});
}
};
return
Chosen
;
})(
AbstractChosen
);
}).
call
(
this
);
apps/static/js/plugins/chosen/chosen.jquery.min.js
deleted
100755 → 0
View file @
ae9bbb40
/* Chosen v1.6.2 | (c) 2011-2016 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
(
function
(){
var
a
,
AbstractChosen
,
Chosen
,
SelectParser
,
b
,
c
=
{}.
hasOwnProperty
,
d
=
function
(
a
,
b
){
function
d
(){
this
.
constructor
=
a
}
for
(
var
e
in
b
)
c
.
call
(
b
,
e
)
&&
(
a
[
e
]
=
b
[
e
]);
return
d
.
prototype
=
b
.
prototype
,
a
.
prototype
=
new
d
,
a
.
__super__
=
b
.
prototype
,
a
};
SelectParser
=
function
(){
function
SelectParser
(){
this
.
options_index
=
0
,
this
.
parsed
=
[]}
return
SelectParser
.
prototype
.
add_node
=
function
(
a
){
return
"OPTGROUP"
===
a
.
nodeName
.
toUpperCase
()?
this
.
add_group
(
a
):
this
.
add_option
(
a
)},
SelectParser
.
prototype
.
add_group
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
;
for
(
b
=
this
.
parsed
.
length
,
this
.
parsed
.
push
({
array_index
:
b
,
group
:
!
0
,
label
:
this
.
escapeExpression
(
a
.
label
),
title
:
a
.
title
?
a
.
title
:
void
0
,
children
:
0
,
disabled
:
a
.
disabled
,
classes
:
a
.
className
}),
f
=
a
.
childNodes
,
g
=
[],
d
=
0
,
e
=
f
.
length
;
e
>
d
;
d
++
)
c
=
f
[
d
],
g
.
push
(
this
.
add_option
(
c
,
b
,
a
.
disabled
));
return
g
},
SelectParser
.
prototype
.
add_option
=
function
(
a
,
b
,
c
){
return
"OPTION"
===
a
.
nodeName
.
toUpperCase
()?(
""
!==
a
.
text
?(
null
!=
b
&&
(
this
.
parsed
[
b
].
children
+=
1
),
this
.
parsed
.
push
({
array_index
:
this
.
parsed
.
length
,
options_index
:
this
.
options_index
,
value
:
a
.
value
,
text
:
a
.
text
,
html
:
a
.
innerHTML
,
title
:
a
.
title
?
a
.
title
:
void
0
,
selected
:
a
.
selected
,
disabled
:
c
===!
0
?
c
:
a
.
disabled
,
group_array_index
:
b
,
group_label
:
null
!=
b
?
this
.
parsed
[
b
].
label
:
null
,
classes
:
a
.
className
,
style
:
a
.
style
.
cssText
})):
this
.
parsed
.
push
({
array_index
:
this
.
parsed
.
length
,
options_index
:
this
.
options_index
,
empty
:
!
0
}),
this
.
options_index
+=
1
):
void
0
},
SelectParser
.
prototype
.
escapeExpression
=
function
(
a
){
var
b
,
c
;
return
null
==
a
||
a
===!
1
?
""
:
/
[\&\<\>\"\'\`]
/
.
test
(
a
)?(
b
=
{
"<"
:
"<"
,
">"
:
">"
,
'"'
:
"""
,
"'"
:
"'"
,
"`"
:
"`"
},
c
=
/&
(?!\w
+;
)
|
[\<\>\"\'\`]
/g
,
a
.
replace
(
c
,
function
(
a
){
return
b
[
a
]
||
"&"
})):
a
},
SelectParser
}(),
SelectParser
.
select_to_array
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
;
for
(
c
=
new
SelectParser
,
f
=
a
.
childNodes
,
d
=
0
,
e
=
f
.
length
;
e
>
d
;
d
++
)
b
=
f
[
d
],
c
.
add_node
(
b
);
return
c
.
parsed
},
AbstractChosen
=
function
(){
function
AbstractChosen
(
a
,
b
){
this
.
form_field
=
a
,
this
.
options
=
null
!=
b
?
b
:{},
AbstractChosen
.
browser_is_supported
()
&&
(
this
.
is_multiple
=
this
.
form_field
.
multiple
,
this
.
set_default_text
(),
this
.
set_default_values
(),
this
.
setup
(),
this
.
set_up_html
(),
this
.
register_observers
(),
this
.
on_ready
())}
return
AbstractChosen
.
prototype
.
set_default_values
=
function
(){
var
a
=
this
;
return
this
.
click_test_action
=
function
(
b
){
return
a
.
test_active_click
(
b
)},
this
.
activate_action
=
function
(
b
){
return
a
.
activate_field
(
b
)},
this
.
active_field
=!
1
,
this
.
mouse_on_container
=!
1
,
this
.
results_showing
=!
1
,
this
.
result_highlighted
=
null
,
this
.
allow_single_deselect
=
null
!=
this
.
options
.
allow_single_deselect
&&
null
!=
this
.
form_field
.
options
[
0
]
&&
""
===
this
.
form_field
.
options
[
0
].
text
?
this
.
options
.
allow_single_deselect
:
!
1
,
this
.
disable_search_threshold
=
this
.
options
.
disable_search_threshold
||
0
,
this
.
disable_search
=
this
.
options
.
disable_search
||!
1
,
this
.
enable_split_word_search
=
null
!=
this
.
options
.
enable_split_word_search
?
this
.
options
.
enable_split_word_search
:
!
0
,
this
.
group_search
=
null
!=
this
.
options
.
group_search
?
this
.
options
.
group_search
:
!
0
,
this
.
search_contains
=
this
.
options
.
search_contains
||!
1
,
this
.
single_backstroke_delete
=
null
!=
this
.
options
.
single_backstroke_delete
?
this
.
options
.
single_backstroke_delete
:
!
0
,
this
.
max_selected_options
=
this
.
options
.
max_selected_options
||
1
/
0
,
this
.
inherit_select_classes
=
this
.
options
.
inherit_select_classes
||!
1
,
this
.
display_selected_options
=
null
!=
this
.
options
.
display_selected_options
?
this
.
options
.
display_selected_options
:
!
0
,
this
.
display_disabled_options
=
null
!=
this
.
options
.
display_disabled_options
?
this
.
options
.
display_disabled_options
:
!
0
,
this
.
include_group_label_in_selected
=
this
.
options
.
include_group_label_in_selected
||!
1
,
this
.
max_shown_results
=
this
.
options
.
max_shown_results
||
Number
.
POSITIVE_INFINITY
,
this
.
case_sensitive_search
=
this
.
options
.
case_sensitive_search
||!
1
},
AbstractChosen
.
prototype
.
set_default_text
=
function
(){
return
this
.
form_field
.
getAttribute
(
"data-placeholder"
)?
this
.
default_text
=
this
.
form_field
.
getAttribute
(
"data-placeholder"
):
this
.
is_multiple
?
this
.
default_text
=
this
.
options
.
placeholder_text_multiple
||
this
.
options
.
placeholder_text
||
AbstractChosen
.
default_multiple_text
:
this
.
default_text
=
this
.
options
.
placeholder_text_single
||
this
.
options
.
placeholder_text
||
AbstractChosen
.
default_single_text
,
this
.
results_none_found
=
this
.
form_field
.
getAttribute
(
"data-no_results_text"
)
||
this
.
options
.
no_results_text
||
AbstractChosen
.
default_no_result_text
},
AbstractChosen
.
prototype
.
choice_label
=
function
(
a
){
return
this
.
include_group_label_in_selected
&&
null
!=
a
.
group_label
?
"<b class='group-name'>"
+
a
.
group_label
+
"</b>"
+
a
.
html
:
a
.
html
},
AbstractChosen
.
prototype
.
mouse_enter
=
function
(){
return
this
.
mouse_on_container
=!
0
},
AbstractChosen
.
prototype
.
mouse_leave
=
function
(){
return
this
.
mouse_on_container
=!
1
},
AbstractChosen
.
prototype
.
input_focus
=
function
(
a
){
var
b
=
this
;
if
(
this
.
is_multiple
){
if
(
!
this
.
active_field
)
return
setTimeout
(
function
(){
return
b
.
container_mousedown
()},
50
)}
else
if
(
!
this
.
active_field
)
return
this
.
activate_field
()},
AbstractChosen
.
prototype
.
input_blur
=
function
(
a
){
var
b
=
this
;
return
this
.
mouse_on_container
?
void
0
:(
this
.
active_field
=!
1
,
setTimeout
(
function
(){
return
b
.
blur_test
()},
100
))},
AbstractChosen
.
prototype
.
results_option_build
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
;
for
(
b
=
""
,
e
=
0
,
h
=
this
.
results_data
,
f
=
0
,
g
=
h
.
length
;
g
>
f
&&
(
c
=
h
[
f
],
d
=
""
,
d
=
c
.
group
?
this
.
result_add_group
(
c
):
this
.
result_add_option
(
c
),
""
!==
d
&&
(
e
++
,
b
+=
d
),(
null
!=
a
?
a
.
first
:
void
0
)
&&
(
c
.
selected
&&
this
.
is_multiple
?
this
.
choice_build
(
c
):
c
.
selected
&&!
this
.
is_multiple
&&
this
.
single_set_selected_text
(
this
.
choice_label
(
c
))),
!
(
e
>=
this
.
max_shown_results
));
f
++
);
return
b
},
AbstractChosen
.
prototype
.
result_add_option
=
function
(
a
){
var
b
,
c
;
return
a
.
search_match
&&
this
.
include_option_in_results
(
a
)?(
b
=
[],
a
.
disabled
||
a
.
selected
&&
this
.
is_multiple
||
b
.
push
(
"active-result"
),
!
a
.
disabled
||
a
.
selected
&&
this
.
is_multiple
||
b
.
push
(
"disabled-result"
),
a
.
selected
&&
b
.
push
(
"result-selected"
),
null
!=
a
.
group_array_index
&&
b
.
push
(
"group-option"
),
""
!==
a
.
classes
&&
b
.
push
(
a
.
classes
),
c
=
document
.
createElement
(
"li"
),
c
.
className
=
b
.
join
(
" "
),
c
.
style
.
cssText
=
a
.
style
,
c
.
setAttribute
(
"data-option-array-index"
,
a
.
array_index
),
c
.
innerHTML
=
a
.
search_text
,
a
.
title
&&
(
c
.
title
=
a
.
title
),
this
.
outerHTML
(
c
)):
""
},
AbstractChosen
.
prototype
.
result_add_group
=
function
(
a
){
var
b
,
c
;
return
(
a
.
search_match
||
a
.
group_match
)
&&
a
.
active_options
>
0
?(
b
=
[],
b
.
push
(
"group-result"
),
a
.
classes
&&
b
.
push
(
a
.
classes
),
c
=
document
.
createElement
(
"li"
),
c
.
className
=
b
.
join
(
" "
),
c
.
innerHTML
=
a
.
search_text
,
a
.
title
&&
(
c
.
title
=
a
.
title
),
this
.
outerHTML
(
c
)):
""
},
AbstractChosen
.
prototype
.
results_update_field
=
function
(){
return
this
.
set_default_text
(),
this
.
is_multiple
||
this
.
results_reset_cleanup
(),
this
.
result_clear_highlight
(),
this
.
results_build
(),
this
.
results_showing
?
this
.
winnow_results
():
void
0
},
AbstractChosen
.
prototype
.
reset_single_select_options
=
function
(){
var
a
,
b
,
c
,
d
,
e
;
for
(
d
=
this
.
results_data
,
e
=
[],
b
=
0
,
c
=
d
.
length
;
c
>
b
;
b
++
)
a
=
d
[
b
],
a
.
selected
?
e
.
push
(
a
.
selected
=!
1
):
e
.
push
(
void
0
);
return
e
},
AbstractChosen
.
prototype
.
results_toggle
=
function
(){
return
this
.
results_showing
?
this
.
results_hide
():
this
.
results_show
()},
AbstractChosen
.
prototype
.
results_search
=
function
(
a
){
return
this
.
results_showing
?
this
.
winnow_results
():
this
.
results_show
()},
AbstractChosen
.
prototype
.
winnow_results
=
function
(){
var
a
,
b
,
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
,
l
;
for
(
this
.
no_results_clear
(),
d
=
0
,
f
=
this
.
get_search_text
(),
a
=
f
.
replace
(
/
[
-[
\]
{}()*+?.,
\\
^$|#
\s]
/g
,
"
\\
$&"
),
i
=
new
RegExp
(
a
,
"i"
),
c
=
this
.
get_search_regex
(
a
),
l
=
this
.
results_data
,
j
=
0
,
k
=
l
.
length
;
k
>
j
;
j
++
)
b
=
l
[
j
],
b
.
search_match
=!
1
,
e
=
null
,
this
.
include_option_in_results
(
b
)
&&
(
b
.
group
&&
(
b
.
group_match
=!
1
,
b
.
active_options
=
0
),
null
!=
b
.
group_array_index
&&
this
.
results_data
[
b
.
group_array_index
]
&&
(
e
=
this
.
results_data
[
b
.
group_array_index
],
0
===
e
.
active_options
&&
e
.
search_match
&&
(
d
+=
1
),
e
.
active_options
+=
1
),
b
.
search_text
=
b
.
group
?
b
.
label
:
b
.
html
,(
!
b
.
group
||
this
.
group_search
)
&&
(
b
.
search_match
=
this
.
search_string_match
(
b
.
search_text
,
c
),
b
.
search_match
&&!
b
.
group
&&
(
d
+=
1
),
b
.
search_match
?(
f
.
length
&&
(
g
=
b
.
search_text
.
search
(
i
),
h
=
b
.
search_text
.
substr
(
0
,
g
+
f
.
length
)
+
"</em>"
+
b
.
search_text
.
substr
(
g
+
f
.
length
),
b
.
search_text
=
h
.
substr
(
0
,
g
)
+
"<em>"
+
h
.
substr
(
g
)),
null
!=
e
&&
(
e
.
group_match
=!
0
)):
null
!=
b
.
group_array_index
&&
this
.
results_data
[
b
.
group_array_index
].
search_match
&&
(
b
.
search_match
=!
0
)));
return
this
.
result_clear_highlight
(),
1
>
d
&&
f
.
length
?(
this
.
update_results_content
(
""
),
this
.
no_results
(
f
)):(
this
.
update_results_content
(
this
.
results_option_build
()),
this
.
winnow_results_set_highlight
())},
AbstractChosen
.
prototype
.
get_search_regex
=
function
(
a
){
var
b
,
c
;
return
b
=
this
.
search_contains
?
""
:
"^"
,
c
=
this
.
case_sensitive_search
?
""
:
"i"
,
new
RegExp
(
b
+
a
,
c
)},
AbstractChosen
.
prototype
.
search_string_match
=
function
(
a
,
b
){
var
c
,
d
,
e
,
f
;
if
(
b
.
test
(
a
))
return
!
0
;
if
(
this
.
enable_split_word_search
&&
(
a
.
indexOf
(
" "
)
>=
0
||
0
===
a
.
indexOf
(
"["
))
&&
(
d
=
a
.
replace
(
/
\[
|
\]
/g
,
""
).
split
(
" "
),
d
.
length
))
for
(
e
=
0
,
f
=
d
.
length
;
f
>
e
;
e
++
)
if
(
c
=
d
[
e
],
b
.
test
(
c
))
return
!
0
},
AbstractChosen
.
prototype
.
choices_count
=
function
(){
var
a
,
b
,
c
,
d
;
if
(
null
!=
this
.
selected_option_count
)
return
this
.
selected_option_count
;
for
(
this
.
selected_option_count
=
0
,
d
=
this
.
form_field
.
options
,
b
=
0
,
c
=
d
.
length
;
c
>
b
;
b
++
)
a
=
d
[
b
],
a
.
selected
&&
(
this
.
selected_option_count
+=
1
);
return
this
.
selected_option_count
},
AbstractChosen
.
prototype
.
choices_click
=
function
(
a
){
return
a
.
preventDefault
(),
this
.
results_showing
||
this
.
is_disabled
?
void
0
:
this
.
results_show
()},
AbstractChosen
.
prototype
.
keyup_checker
=
function
(
a
){
var
b
,
c
;
switch
(
b
=
null
!=
(
c
=
a
.
which
)?
c
:
a
.
keyCode
,
this
.
search_field_scale
(),
b
){
case
8
:
if
(
this
.
is_multiple
&&
this
.
backstroke_length
<
1
&&
this
.
choices_count
()
>
0
)
return
this
.
keydown_backstroke
();
if
(
!
this
.
pending_backstroke
)
return
this
.
result_clear_highlight
(),
this
.
results_search
();
break
;
case
13
:
if
(
a
.
preventDefault
(),
this
.
results_showing
)
return
this
.
result_select
(
a
);
break
;
case
27
:
return
this
.
results_showing
&&
this
.
results_hide
(),
!
0
;
case
9
:
case
38
:
case
40
:
case
16
:
case
91
:
case
17
:
case
18
:
break
;
default
:
return
this
.
results_search
()}},
AbstractChosen
.
prototype
.
clipboard_event_checker
=
function
(
a
){
var
b
=
this
;
return
setTimeout
(
function
(){
return
b
.
results_search
()},
50
)},
AbstractChosen
.
prototype
.
container_width
=
function
(){
return
null
!=
this
.
options
.
width
?
this
.
options
.
width
:
""
+
this
.
form_field
.
offsetWidth
+
"px"
},
AbstractChosen
.
prototype
.
include_option_in_results
=
function
(
a
){
return
this
.
is_multiple
&&!
this
.
display_selected_options
&&
a
.
selected
?
!
1
:
!
this
.
display_disabled_options
&&
a
.
disabled
?
!
1
:
a
.
empty
?
!
1
:
!
0
},
AbstractChosen
.
prototype
.
search_results_touchstart
=
function
(
a
){
return
this
.
touch_started
=!
0
,
this
.
search_results_mouseover
(
a
)},
AbstractChosen
.
prototype
.
search_results_touchmove
=
function
(
a
){
return
this
.
touch_started
=!
1
,
this
.
search_results_mouseout
(
a
)},
AbstractChosen
.
prototype
.
search_results_touchend
=
function
(
a
){
return
this
.
touch_started
?
this
.
search_results_mouseup
(
a
):
void
0
},
AbstractChosen
.
prototype
.
outerHTML
=
function
(
a
){
var
b
;
return
a
.
outerHTML
?
a
.
outerHTML
:(
b
=
document
.
createElement
(
"div"
),
b
.
appendChild
(
a
),
b
.
innerHTML
)},
AbstractChosen
.
browser_is_supported
=
function
(){
return
"Microsoft Internet Explorer"
===
window
.
navigator
.
appName
?
document
.
documentMode
>=
8
:
/iP
(
od|hone
)
/i
.
test
(
window
.
navigator
.
userAgent
)
||
/IEMobile/i
.
test
(
window
.
navigator
.
userAgent
)
||
/Windows Phone/i
.
test
(
window
.
navigator
.
userAgent
)
||
/BlackBerry/i
.
test
(
window
.
navigator
.
userAgent
)
||
/BB10/i
.
test
(
window
.
navigator
.
userAgent
)
||
/Android.*Mobile/i
.
test
(
window
.
navigator
.
userAgent
)?
!
1
:
!
0
},
AbstractChosen
.
default_multiple_text
=
"Select Some Options"
,
AbstractChosen
.
default_single_text
=
"Select an Option"
,
AbstractChosen
.
default_no_result_text
=
"No results match"
,
AbstractChosen
}(),
a
=
jQuery
,
a
.
fn
.
extend
({
chosen
:
function
(
b
){
return
AbstractChosen
.
browser_is_supported
()?
this
.
each
(
function
(
c
){
var
d
,
e
;
return
d
=
a
(
this
),
e
=
d
.
data
(
"chosen"
),
"destroy"
===
b
?
void
(
e
instanceof
Chosen
&&
e
.
destroy
()):
void
(
e
instanceof
Chosen
||
d
.
data
(
"chosen"
,
new
Chosen
(
this
,
b
)))}):
this
}}),
Chosen
=
function
(
c
){
function
Chosen
(){
return
b
=
Chosen
.
__super__
.
constructor
.
apply
(
this
,
arguments
)}
return
d
(
Chosen
,
c
),
Chosen
.
prototype
.
setup
=
function
(){
return
this
.
form_field_jq
=
a
(
this
.
form_field
),
this
.
current_selectedIndex
=
this
.
form_field
.
selectedIndex
,
this
.
is_rtl
=
this
.
form_field_jq
.
hasClass
(
"chosen-rtl"
)},
Chosen
.
prototype
.
set_up_html
=
function
(){
var
b
,
c
;
return
b
=
[
"chosen-container"
],
b
.
push
(
"chosen-container-"
+
(
this
.
is_multiple
?
"multi"
:
"single"
)),
this
.
inherit_select_classes
&&
this
.
form_field
.
className
&&
b
.
push
(
this
.
form_field
.
className
),
this
.
is_rtl
&&
b
.
push
(
"chosen-rtl"
),
c
=
{
"class"
:
b
.
join
(
" "
),
style
:
"width: "
+
this
.
container_width
()
+
";"
,
title
:
this
.
form_field
.
title
},
this
.
form_field
.
id
.
length
&&
(
c
.
id
=
this
.
form_field
.
id
.
replace
(
/
[^\w]
/g
,
"_"
)
+
"_chosen"
),
this
.
container
=
a
(
"<div />"
,
c
),
this
.
is_multiple
?
this
.
container
.
html
(
'<ul class="chosen-choices"><li class="search-field"><input type="text" value="'
+
this
.
default_text
+
'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>'
):
this
.
container
.
html
(
'<a class="chosen-single chosen-default"><span>'
+
this
.
default_text
+
'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>'
),
this
.
form_field_jq
.
hide
().
after
(
this
.
container
),
this
.
dropdown
=
this
.
container
.
find
(
"div.chosen-drop"
).
first
(),
this
.
search_field
=
this
.
container
.
find
(
"input"
).
first
(),
this
.
search_results
=
this
.
container
.
find
(
"ul.chosen-results"
).
first
(),
this
.
search_field_scale
(),
this
.
search_no_results
=
this
.
container
.
find
(
"li.no-results"
).
first
(),
this
.
is_multiple
?(
this
.
search_choices
=
this
.
container
.
find
(
"ul.chosen-choices"
).
first
(),
this
.
search_container
=
this
.
container
.
find
(
"li.search-field"
).
first
()):(
this
.
search_container
=
this
.
container
.
find
(
"div.chosen-search"
).
first
(),
this
.
selected_item
=
this
.
container
.
find
(
".chosen-single"
).
first
()),
this
.
results_build
(),
this
.
set_tab_index
(),
this
.
set_label_behavior
()},
Chosen
.
prototype
.
on_ready
=
function
(){
return
this
.
form_field_jq
.
trigger
(
"chosen:ready"
,{
chosen
:
this
})},
Chosen
.
prototype
.
register_observers
=
function
(){
var
a
=
this
;
return
this
.
container
.
bind
(
"touchstart.chosen"
,
function
(
b
){
return
a
.
container_mousedown
(
b
),
b
.
preventDefault
()}),
this
.
container
.
bind
(
"touchend.chosen"
,
function
(
b
){
return
a
.
container_mouseup
(
b
),
b
.
preventDefault
()}),
this
.
container
.
bind
(
"mousedown.chosen"
,
function
(
b
){
a
.
container_mousedown
(
b
)}),
this
.
container
.
bind
(
"mouseup.chosen"
,
function
(
b
){
a
.
container_mouseup
(
b
)}),
this
.
container
.
bind
(
"mouseenter.chosen"
,
function
(
b
){
a
.
mouse_enter
(
b
)}),
this
.
container
.
bind
(
"mouseleave.chosen"
,
function
(
b
){
a
.
mouse_leave
(
b
)}),
this
.
search_results
.
bind
(
"mouseup.chosen"
,
function
(
b
){
a
.
search_results_mouseup
(
b
)}),
this
.
search_results
.
bind
(
"mouseover.chosen"
,
function
(
b
){
a
.
search_results_mouseover
(
b
)}),
this
.
search_results
.
bind
(
"mouseout.chosen"
,
function
(
b
){
a
.
search_results_mouseout
(
b
)}),
this
.
search_results
.
bind
(
"mousewheel.chosen DOMMouseScroll.chosen"
,
function
(
b
){
a
.
search_results_mousewheel
(
b
)}),
this
.
search_results
.
bind
(
"touchstart.chosen"
,
function
(
b
){
a
.
search_results_touchstart
(
b
)}),
this
.
search_results
.
bind
(
"touchmove.chosen"
,
function
(
b
){
a
.
search_results_touchmove
(
b
)}),
this
.
search_results
.
bind
(
"touchend.chosen"
,
function
(
b
){
a
.
search_results_touchend
(
b
)}),
this
.
form_field_jq
.
bind
(
"chosen:updated.chosen"
,
function
(
b
){
a
.
results_update_field
(
b
)}),
this
.
form_field_jq
.
bind
(
"chosen:activate.chosen"
,
function
(
b
){
a
.
activate_field
(
b
)}),
this
.
form_field_jq
.
bind
(
"chosen:open.chosen"
,
function
(
b
){
a
.
container_mousedown
(
b
)}),
this
.
form_field_jq
.
bind
(
"chosen:close.chosen"
,
function
(
b
){
a
.
input_blur
(
b
)}),
this
.
search_field
.
bind
(
"blur.chosen"
,
function
(
b
){
a
.
input_blur
(
b
)}),
this
.
search_field
.
bind
(
"keyup.chosen"
,
function
(
b
){
a
.
keyup_checker
(
b
)}),
this
.
search_field
.
bind
(
"keydown.chosen"
,
function
(
b
){
a
.
keydown_checker
(
b
)}),
this
.
search_field
.
bind
(
"focus.chosen"
,
function
(
b
){
a
.
input_focus
(
b
)}),
this
.
search_field
.
bind
(
"cut.chosen"
,
function
(
b
){
a
.
clipboard_event_checker
(
b
)}),
this
.
search_field
.
bind
(
"paste.chosen"
,
function
(
b
){
a
.
clipboard_event_checker
(
b
)}),
this
.
is_multiple
?
this
.
search_choices
.
bind
(
"click.chosen"
,
function
(
b
){
a
.
choices_click
(
b
)}):
this
.
container
.
bind
(
"click.chosen"
,
function
(
a
){
a
.
preventDefault
()})},
Chosen
.
prototype
.
destroy
=
function
(){
return
a
(
this
.
container
[
0
].
ownerDocument
).
unbind
(
"click.chosen"
,
this
.
click_test_action
),
this
.
search_field
[
0
].
tabIndex
&&
(
this
.
form_field_jq
[
0
].
tabIndex
=
this
.
search_field
[
0
].
tabIndex
),
this
.
container
.
remove
(),
this
.
form_field_jq
.
removeData
(
"chosen"
),
this
.
form_field_jq
.
show
()},
Chosen
.
prototype
.
search_field_disabled
=
function
(){
return
this
.
is_disabled
=
this
.
form_field_jq
[
0
].
disabled
,
this
.
is_disabled
?(
this
.
container
.
addClass
(
"chosen-disabled"
),
this
.
search_field
[
0
].
disabled
=!
0
,
this
.
is_multiple
||
this
.
selected_item
.
unbind
(
"focus.chosen"
,
this
.
activate_action
),
this
.
close_field
()):(
this
.
container
.
removeClass
(
"chosen-disabled"
),
this
.
search_field
[
0
].
disabled
=!
1
,
this
.
is_multiple
?
void
0
:
this
.
selected_item
.
bind
(
"focus.chosen"
,
this
.
activate_action
))},
Chosen
.
prototype
.
container_mousedown
=
function
(
b
){
return
this
.
is_disabled
||
(
b
&&
"mousedown"
===
b
.
type
&&!
this
.
results_showing
&&
b
.
preventDefault
(),
null
!=
b
&&
a
(
b
.
target
).
hasClass
(
"search-choice-close"
))?
void
0
:(
this
.
active_field
?
this
.
is_multiple
||!
b
||
a
(
b
.
target
)[
0
]
!==
this
.
selected_item
[
0
]
&&!
a
(
b
.
target
).
parents
(
"a.chosen-single"
).
length
||
(
b
.
preventDefault
(),
this
.
results_toggle
()):(
this
.
is_multiple
&&
this
.
search_field
.
val
(
""
),
a
(
this
.
container
[
0
].
ownerDocument
).
bind
(
"click.chosen"
,
this
.
click_test_action
),
this
.
results_show
()),
this
.
activate_field
())},
Chosen
.
prototype
.
container_mouseup
=
function
(
a
){
return
"ABBR"
!==
a
.
target
.
nodeName
||
this
.
is_disabled
?
void
0
:
this
.
results_reset
(
a
)},
Chosen
.
prototype
.
search_results_mousewheel
=
function
(
a
){
var
b
;
return
a
.
originalEvent
&&
(
b
=
a
.
originalEvent
.
deltaY
||-
a
.
originalEvent
.
wheelDelta
||
a
.
originalEvent
.
detail
),
null
!=
b
?(
a
.
preventDefault
(),
"DOMMouseScroll"
===
a
.
type
&&
(
b
=
40
*
b
),
this
.
search_results
.
scrollTop
(
b
+
this
.
search_results
.
scrollTop
())):
void
0
},
Chosen
.
prototype
.
blur_test
=
function
(
a
){
return
!
this
.
active_field
&&
this
.
container
.
hasClass
(
"chosen-container-active"
)?
this
.
close_field
():
void
0
},
Chosen
.
prototype
.
close_field
=
function
(){
return
a
(
this
.
container
[
0
].
ownerDocument
).
unbind
(
"click.chosen"
,
this
.
click_test_action
),
this
.
active_field
=!
1
,
this
.
results_hide
(),
this
.
container
.
removeClass
(
"chosen-container-active"
),
this
.
clear_backstroke
(),
this
.
show_search_field_default
(),
this
.
search_field_scale
()},
Chosen
.
prototype
.
activate_field
=
function
(){
return
this
.
container
.
addClass
(
"chosen-container-active"
),
this
.
active_field
=!
0
,
this
.
search_field
.
val
(
this
.
search_field
.
val
()),
this
.
search_field
.
focus
()},
Chosen
.
prototype
.
test_active_click
=
function
(
b
){
var
c
;
return
c
=
a
(
b
.
target
).
closest
(
".chosen-container"
),
c
.
length
&&
this
.
container
[
0
]
===
c
[
0
]?
this
.
active_field
=!
0
:
this
.
close_field
()},
Chosen
.
prototype
.
results_build
=
function
(){
return
this
.
parsing
=!
0
,
this
.
selected_option_count
=
null
,
this
.
results_data
=
SelectParser
.
select_to_array
(
this
.
form_field
),
this
.
is_multiple
?
this
.
search_choices
.
find
(
"li.search-choice"
).
remove
():
this
.
is_multiple
||
(
this
.
single_set_selected_text
(),
this
.
disable_search
||
this
.
form_field
.
options
.
length
<=
this
.
disable_search_threshold
?(
this
.
search_field
[
0
].
readOnly
=!
0
,
this
.
container
.
addClass
(
"chosen-container-single-nosearch"
)):(
this
.
search_field
[
0
].
readOnly
=!
1
,
this
.
container
.
removeClass
(
"chosen-container-single-nosearch"
))),
this
.
update_results_content
(
this
.
results_option_build
({
first
:
!
0
})),
this
.
search_field_disabled
(),
this
.
show_search_field_default
(),
this
.
search_field_scale
(),
this
.
parsing
=!
1
},
Chosen
.
prototype
.
result_do_highlight
=
function
(
a
){
var
b
,
c
,
d
,
e
,
f
;
if
(
a
.
length
){
if
(
this
.
result_clear_highlight
(),
this
.
result_highlight
=
a
,
this
.
result_highlight
.
addClass
(
"highlighted"
),
d
=
parseInt
(
this
.
search_results
.
css
(
"maxHeight"
),
10
),
f
=
this
.
search_results
.
scrollTop
(),
e
=
d
+
f
,
c
=
this
.
result_highlight
.
position
().
top
+
this
.
search_results
.
scrollTop
(),
b
=
c
+
this
.
result_highlight
.
outerHeight
(),
b
>=
e
)
return
this
.
search_results
.
scrollTop
(
b
-
d
>
0
?
b
-
d
:
0
);
if
(
f
>
c
)
return
this
.
search_results
.
scrollTop
(
c
)}},
Chosen
.
prototype
.
result_clear_highlight
=
function
(){
return
this
.
result_highlight
&&
this
.
result_highlight
.
removeClass
(
"highlighted"
),
this
.
result_highlight
=
null
},
Chosen
.
prototype
.
results_show
=
function
(){
return
this
.
is_multiple
&&
this
.
max_selected_options
<=
this
.
choices_count
()?(
this
.
form_field_jq
.
trigger
(
"chosen:maxselected"
,{
chosen
:
this
}),
!
1
):(
this
.
container
.
addClass
(
"chosen-with-drop"
),
this
.
results_showing
=!
0
,
this
.
search_field
.
focus
(),
this
.
search_field
.
val
(
this
.
search_field
.
val
()),
this
.
winnow_results
(),
this
.
form_field_jq
.
trigger
(
"chosen:showing_dropdown"
,{
chosen
:
this
}))},
Chosen
.
prototype
.
update_results_content
=
function
(
a
){
return
this
.
search_results
.
html
(
a
)},
Chosen
.
prototype
.
results_hide
=
function
(){
return
this
.
results_showing
&&
(
this
.
result_clear_highlight
(),
this
.
container
.
removeClass
(
"chosen-with-drop"
),
this
.
form_field_jq
.
trigger
(
"chosen:hiding_dropdown"
,{
chosen
:
this
})),
this
.
results_showing
=!
1
},
Chosen
.
prototype
.
set_tab_index
=
function
(
a
){
var
b
;
return
this
.
form_field
.
tabIndex
?(
b
=
this
.
form_field
.
tabIndex
,
this
.
form_field
.
tabIndex
=-
1
,
this
.
search_field
[
0
].
tabIndex
=
b
):
void
0
},
Chosen
.
prototype
.
set_label_behavior
=
function
(){
var
b
=
this
;
return
this
.
form_field_label
=
this
.
form_field_jq
.
parents
(
"label"
),
!
this
.
form_field_label
.
length
&&
this
.
form_field
.
id
.
length
&&
(
this
.
form_field_label
=
a
(
"label[for='"
+
this
.
form_field
.
id
+
"']"
)),
this
.
form_field_label
.
length
>
0
?
this
.
form_field_label
.
bind
(
"click.chosen"
,
function
(
a
){
return
b
.
is_multiple
?
b
.
container_mousedown
(
a
):
b
.
activate_field
()}):
void
0
},
Chosen
.
prototype
.
show_search_field_default
=
function
(){
return
this
.
is_multiple
&&
this
.
choices_count
()
<
1
&&!
this
.
active_field
?(
this
.
search_field
.
val
(
this
.
default_text
),
this
.
search_field
.
addClass
(
"default"
)):(
this
.
search_field
.
val
(
""
),
this
.
search_field
.
removeClass
(
"default"
))},
Chosen
.
prototype
.
search_results_mouseup
=
function
(
b
){
var
c
;
return
c
=
a
(
b
.
target
).
hasClass
(
"active-result"
)?
a
(
b
.
target
):
a
(
b
.
target
).
parents
(
".active-result"
).
first
(),
c
.
length
?(
this
.
result_highlight
=
c
,
this
.
result_select
(
b
),
this
.
search_field
.
focus
()):
void
0
},
Chosen
.
prototype
.
search_results_mouseover
=
function
(
b
){
var
c
;
return
c
=
a
(
b
.
target
).
hasClass
(
"active-result"
)?
a
(
b
.
target
):
a
(
b
.
target
).
parents
(
".active-result"
).
first
(),
c
?
this
.
result_do_highlight
(
c
):
void
0
},
Chosen
.
prototype
.
search_results_mouseout
=
function
(
b
){
return
a
(
b
.
target
).
hasClass
(
"active-result"
)?
this
.
result_clear_highlight
():
void
0
},
Chosen
.
prototype
.
choice_build
=
function
(
b
){
var
c
,
d
,
e
=
this
;
return
c
=
a
(
"<li />"
,{
"class"
:
"search-choice"
}).
html
(
"<span>"
+
this
.
choice_label
(
b
)
+
"</span>"
),
b
.
disabled
?
c
.
addClass
(
"search-choice-disabled"
):(
d
=
a
(
"<a />"
,{
"class"
:
"search-choice-close"
,
"data-option-array-index"
:
b
.
array_index
}),
d
.
bind
(
"click.chosen"
,
function
(
a
){
return
e
.
choice_destroy_link_click
(
a
)}),
c
.
append
(
d
)),
this
.
search_container
.
before
(
c
)},
Chosen
.
prototype
.
choice_destroy_link_click
=
function
(
b
){
return
b
.
preventDefault
(),
b
.
stopPropagation
(),
this
.
is_disabled
?
void
0
:
this
.
choice_destroy
(
a
(
b
.
target
))},
Chosen
.
prototype
.
choice_destroy
=
function
(
a
){
return
this
.
result_deselect
(
a
[
0
].
getAttribute
(
"data-option-array-index"
))?(
this
.
show_search_field_default
(),
this
.
is_multiple
&&
this
.
choices_count
()
>
0
&&
this
.
search_field
.
val
().
length
<
1
&&
this
.
results_hide
(),
a
.
parents
(
"li"
).
first
().
remove
(),
this
.
search_field_scale
()):
void
0
},
Chosen
.
prototype
.
results_reset
=
function
(){
return
this
.
reset_single_select_options
(),
this
.
form_field
.
options
[
0
].
selected
=!
0
,
this
.
single_set_selected_text
(),
this
.
show_search_field_default
(),
this
.
results_reset_cleanup
(),
this
.
form_field_jq
.
trigger
(
"change"
),
this
.
active_field
?
this
.
results_hide
():
void
0
},
Chosen
.
prototype
.
results_reset_cleanup
=
function
(){
return
this
.
current_selectedIndex
=
this
.
form_field
.
selectedIndex
,
this
.
selected_item
.
find
(
"abbr"
).
remove
()},
Chosen
.
prototype
.
result_select
=
function
(
a
){
var
b
,
c
;
return
this
.
result_highlight
?(
b
=
this
.
result_highlight
,
this
.
result_clear_highlight
(),
this
.
is_multiple
&&
this
.
max_selected_options
<=
this
.
choices_count
()?(
this
.
form_field_jq
.
trigger
(
"chosen:maxselected"
,{
chosen
:
this
}),
!
1
):(
this
.
is_multiple
?
b
.
removeClass
(
"active-result"
):
this
.
reset_single_select_options
(),
b
.
addClass
(
"result-selected"
),
c
=
this
.
results_data
[
b
[
0
].
getAttribute
(
"data-option-array-index"
)],
c
.
selected
=!
0
,
this
.
form_field
.
options
[
c
.
options_index
].
selected
=!
0
,
this
.
selected_option_count
=
null
,
this
.
is_multiple
?
this
.
choice_build
(
c
):
this
.
single_set_selected_text
(
this
.
choice_label
(
c
)),(
a
.
metaKey
||
a
.
ctrlKey
)
&&
this
.
is_multiple
||
this
.
results_hide
(),
this
.
show_search_field_default
(),(
this
.
is_multiple
||
this
.
form_field
.
selectedIndex
!==
this
.
current_selectedIndex
)
&&
this
.
form_field_jq
.
trigger
(
"change"
,{
selected
:
this
.
form_field
.
options
[
c
.
options_index
].
value
}),
this
.
current_selectedIndex
=
this
.
form_field
.
selectedIndex
,
a
.
preventDefault
(),
this
.
search_field_scale
())):
void
0
},
Chosen
.
prototype
.
single_set_selected_text
=
function
(
a
){
return
null
==
a
&&
(
a
=
this
.
default_text
),
a
===
this
.
default_text
?
this
.
selected_item
.
addClass
(
"chosen-default"
):(
this
.
single_deselect_control_build
(),
this
.
selected_item
.
removeClass
(
"chosen-default"
)),
this
.
selected_item
.
find
(
"span"
).
html
(
a
)},
Chosen
.
prototype
.
result_deselect
=
function
(
a
){
var
b
;
return
b
=
this
.
results_data
[
a
],
this
.
form_field
.
options
[
b
.
options_index
].
disabled
?
!
1
:(
b
.
selected
=!
1
,
this
.
form_field
.
options
[
b
.
options_index
].
selected
=!
1
,
this
.
selected_option_count
=
null
,
this
.
result_clear_highlight
(),
this
.
results_showing
&&
this
.
winnow_results
(),
this
.
form_field_jq
.
trigger
(
"change"
,{
deselected
:
this
.
form_field
.
options
[
b
.
options_index
].
value
}),
this
.
search_field_scale
(),
!
0
)},
Chosen
.
prototype
.
single_deselect_control_build
=
function
(){
return
this
.
allow_single_deselect
?(
this
.
selected_item
.
find
(
"abbr"
).
length
||
this
.
selected_item
.
find
(
"span"
).
first
().
after
(
'<abbr class="search-choice-close"></abbr>'
),
this
.
selected_item
.
addClass
(
"chosen-single-with-deselect"
)):
void
0
},
Chosen
.
prototype
.
get_search_text
=
function
(){
return
a
(
"<div/>"
).
text
(
a
.
trim
(
this
.
search_field
.
val
())).
html
()},
Chosen
.
prototype
.
winnow_results_set_highlight
=
function
(){
var
a
,
b
;
return
b
=
this
.
is_multiple
?[]:
this
.
search_results
.
find
(
".result-selected.active-result"
),
a
=
b
.
length
?
b
.
first
():
this
.
search_results
.
find
(
".active-result"
).
first
(),
null
!=
a
?
this
.
result_do_highlight
(
a
):
void
0
},
Chosen
.
prototype
.
no_results
=
function
(
b
){
var
c
;
return
c
=
a
(
'<li class="no-results">'
+
this
.
results_none_found
+
' "<span></span>"</li>'
),
c
.
find
(
"span"
).
first
().
html
(
b
),
this
.
search_results
.
append
(
c
),
this
.
form_field_jq
.
trigger
(
"chosen:no_results"
,{
chosen
:
this
})},
Chosen
.
prototype
.
no_results_clear
=
function
(){
return
this
.
search_results
.
find
(
".no-results"
).
remove
()},
Chosen
.
prototype
.
keydown_arrow
=
function
(){
var
a
;
return
this
.
results_showing
&&
this
.
result_highlight
?(
a
=
this
.
result_highlight
.
nextAll
(
"li.active-result"
).
first
())?
this
.
result_do_highlight
(
a
):
void
0
:
this
.
results_show
()},
Chosen
.
prototype
.
keyup_arrow
=
function
(){
var
a
;
return
this
.
results_showing
||
this
.
is_multiple
?
this
.
result_highlight
?(
a
=
this
.
result_highlight
.
prevAll
(
"li.active-result"
),
a
.
length
?
this
.
result_do_highlight
(
a
.
first
()):(
this
.
choices_count
()
>
0
&&
this
.
results_hide
(),
this
.
result_clear_highlight
())):
void
0
:
this
.
results_show
()},
Chosen
.
prototype
.
keydown_backstroke
=
function
(){
var
a
;
return
this
.
pending_backstroke
?(
this
.
choice_destroy
(
this
.
pending_backstroke
.
find
(
"a"
).
first
()),
this
.
clear_backstroke
()):(
a
=
this
.
search_container
.
siblings
(
"li.search-choice"
).
last
(),
a
.
length
&&!
a
.
hasClass
(
"search-choice-disabled"
)?(
this
.
pending_backstroke
=
a
,
this
.
single_backstroke_delete
?
this
.
keydown_backstroke
():
this
.
pending_backstroke
.
addClass
(
"search-choice-focus"
)):
void
0
)},
Chosen
.
prototype
.
clear_backstroke
=
function
(){
return
this
.
pending_backstroke
&&
this
.
pending_backstroke
.
removeClass
(
"search-choice-focus"
),
this
.
pending_backstroke
=
null
},
Chosen
.
prototype
.
keydown_checker
=
function
(
a
){
var
b
,
c
;
switch
(
b
=
null
!=
(
c
=
a
.
which
)?
c
:
a
.
keyCode
,
this
.
search_field_scale
(),
8
!==
b
&&
this
.
pending_backstroke
&&
this
.
clear_backstroke
(),
b
){
case
8
:
this
.
backstroke_length
=
this
.
search_field
.
val
().
length
;
break
;
case
9
:
this
.
results_showing
&&!
this
.
is_multiple
&&
this
.
result_select
(
a
),
this
.
mouse_on_container
=!
1
;
break
;
case
13
:
this
.
results_showing
&&
a
.
preventDefault
();
break
;
case
32
:
this
.
disable_search
&&
a
.
preventDefault
();
break
;
case
38
:
a
.
preventDefault
(),
this
.
keyup_arrow
();
break
;
case
40
:
a
.
preventDefault
(),
this
.
keydown_arrow
()}},
Chosen
.
prototype
.
search_field_scale
=
function
(){
var
b
,
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
;
if
(
this
.
is_multiple
){
for
(
d
=
0
,
h
=
0
,
f
=
"position:absolute; left: -1000px; top: -1000px; display:none;"
,
g
=
[
"font-size"
,
"font-style"
,
"font-weight"
,
"font-family"
,
"line-height"
,
"text-transform"
,
"letter-spacing"
],
i
=
0
,
j
=
g
.
length
;
j
>
i
;
i
++
)
e
=
g
[
i
],
f
+=
e
+
":"
+
this
.
search_field
.
css
(
e
)
+
";"
;
return
b
=
a
(
"<div />"
,{
style
:
f
}),
b
.
text
(
this
.
search_field
.
val
()),
a
(
"body"
).
append
(
b
),
h
=
b
.
width
()
+
25
,
b
.
remove
(),
c
=
this
.
container
.
outerWidth
(),
h
>
c
-
10
&&
(
h
=
c
-
10
),
this
.
search_field
.
css
({
width
:
h
+
"px"
})}},
Chosen
}(
AbstractChosen
)}).
call
(
this
);
\ No newline at end of file
apps/static/js/plugins/select2/select2.full.min.js
0 → 100755
View file @
3c3fda80
/*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */
!
function
(
a
){
"function"
==
typeof
define
&&
define
.
amd
?
define
([
"jquery"
],
a
):
a
(
"object"
==
typeof
exports
?
require
(
"jquery"
):
jQuery
)}(
function
(
a
){
var
b
=
function
(){
if
(
a
&&
a
.
fn
&&
a
.
fn
.
select2
&&
a
.
fn
.
select2
.
amd
)
var
b
=
a
.
fn
.
select2
.
amd
;
var
b
;
return
function
(){
if
(
!
b
||!
b
.
requirejs
){
b
?
c
=
b
:
b
=
{};
var
a
,
c
,
d
;
!
function
(
b
){
function
e
(
a
,
b
){
return
u
.
call
(
a
,
b
)}
function
f
(
a
,
b
){
var
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
n
=
b
&&
b
.
split
(
"/"
),
o
=
s
.
map
,
p
=
o
&&
o
[
"*"
]
||
{};
if
(
a
&&
"."
===
a
.
charAt
(
0
))
if
(
b
){
for
(
n
=
n
.
slice
(
0
,
n
.
length
-
1
),
a
=
a
.
split
(
"/"
),
g
=
a
.
length
-
1
,
s
.
nodeIdCompat
&&
w
.
test
(
a
[
g
])
&&
(
a
[
g
]
=
a
[
g
].
replace
(
w
,
""
)),
a
=
n
.
concat
(
a
),
k
=
0
;
k
<
a
.
length
;
k
+=
1
)
if
(
m
=
a
[
k
],
"."
===
m
)
a
.
splice
(
k
,
1
),
k
-=
1
;
else
if
(
".."
===
m
){
if
(
1
===
k
&&
(
".."
===
a
[
2
]
||
".."
===
a
[
0
]))
break
;
k
>
0
&&
(
a
.
splice
(
k
-
1
,
2
),
k
-=
2
)}
a
=
a
.
join
(
"/"
)}
else
0
===
a
.
indexOf
(
"./"
)
&&
(
a
=
a
.
substring
(
2
));
if
((
n
||
p
)
&&
o
){
for
(
c
=
a
.
split
(
"/"
),
k
=
c
.
length
;
k
>
0
;
k
-=
1
){
if
(
d
=
c
.
slice
(
0
,
k
).
join
(
"/"
),
n
)
for
(
l
=
n
.
length
;
l
>
0
;
l
-=
1
)
if
(
e
=
o
[
n
.
slice
(
0
,
l
).
join
(
"/"
)],
e
&&
(
e
=
e
[
d
])){
f
=
e
,
h
=
k
;
break
}
if
(
f
)
break
;
!
i
&&
p
&&
p
[
d
]
&&
(
i
=
p
[
d
],
j
=
k
)}
!
f
&&
i
&&
(
f
=
i
,
h
=
j
),
f
&&
(
c
.
splice
(
0
,
h
,
f
),
a
=
c
.
join
(
"/"
))}
return
a
}
function
g
(
a
,
c
){
return
function
(){
return
n
.
apply
(
b
,
v
.
call
(
arguments
,
0
).
concat
([
a
,
c
]))}}
function
h
(
a
){
return
function
(
b
){
return
f
(
b
,
a
)}}
function
i
(
a
){
return
function
(
b
){
q
[
a
]
=
b
}}
function
j
(
a
){
if
(
e
(
r
,
a
)){
var
c
=
r
[
a
];
delete
r
[
a
],
t
[
a
]
=!
0
,
m
.
apply
(
b
,
c
)}
if
(
!
e
(
q
,
a
)
&&!
e
(
t
,
a
))
throw
new
Error
(
"No "
+
a
);
return
q
[
a
]}
function
k
(
a
){
var
b
,
c
=
a
?
a
.
indexOf
(
"!"
):
-
1
;
return
c
>-
1
&&
(
b
=
a
.
substring
(
0
,
c
),
a
=
a
.
substring
(
c
+
1
,
a
.
length
)),[
b
,
a
]}
function
l
(
a
){
return
function
(){
return
s
&&
s
.
config
&&
s
.
config
[
a
]
||
{}}}
var
m
,
n
,
o
,
p
,
q
=
{},
r
=
{},
s
=
{},
t
=
{},
u
=
Object
.
prototype
.
hasOwnProperty
,
v
=
[].
slice
,
w
=
/
\.
js$/
;
o
=
function
(
a
,
b
){
var
c
,
d
=
k
(
a
),
e
=
d
[
0
];
return
a
=
d
[
1
],
e
&&
(
e
=
f
(
e
,
b
),
c
=
j
(
e
)),
e
?
a
=
c
&&
c
.
normalize
?
c
.
normalize
(
a
,
h
(
b
)):
f
(
a
,
b
):(
a
=
f
(
a
,
b
),
d
=
k
(
a
),
e
=
d
[
0
],
a
=
d
[
1
],
e
&&
(
c
=
j
(
e
))),{
f
:
e
?
e
+
"!"
+
a
:
a
,
n
:
a
,
pr
:
e
,
p
:
c
}},
p
=
{
require
:
function
(
a
){
return
g
(
a
)},
exports
:
function
(
a
){
var
b
=
q
[
a
];
return
"undefined"
!=
typeof
b
?
b
:
q
[
a
]
=
{}},
module
:
function
(
a
){
return
{
id
:
a
,
uri
:
""
,
exports
:
q
[
a
],
config
:
l
(
a
)}}},
m
=
function
(
a
,
c
,
d
,
f
){
var
h
,
k
,
l
,
m
,
n
,
s
,
u
=
[],
v
=
typeof
d
;
if
(
f
=
f
||
a
,
"undefined"
===
v
||
"function"
===
v
){
for
(
c
=!
c
.
length
&&
d
.
length
?[
"require"
,
"exports"
,
"module"
]:
c
,
n
=
0
;
n
<
c
.
length
;
n
+=
1
)
if
(
m
=
o
(
c
[
n
],
f
),
k
=
m
.
f
,
"require"
===
k
)
u
[
n
]
=
p
.
require
(
a
);
else
if
(
"exports"
===
k
)
u
[
n
]
=
p
.
exports
(
a
),
s
=!
0
;
else
if
(
"module"
===
k
)
h
=
u
[
n
]
=
p
.
module
(
a
);
else
if
(
e
(
q
,
k
)
||
e
(
r
,
k
)
||
e
(
t
,
k
))
u
[
n
]
=
j
(
k
);
else
{
if
(
!
m
.
p
)
throw
new
Error
(
a
+
" missing "
+
k
);
m
.
p
.
load
(
m
.
n
,
g
(
f
,
!
0
),
i
(
k
),{}),
u
[
n
]
=
q
[
k
]}
l
=
d
?
d
.
apply
(
q
[
a
],
u
):
void
0
,
a
&&
(
h
&&
h
.
exports
!==
b
&&
h
.
exports
!==
q
[
a
]?
q
[
a
]
=
h
.
exports
:
l
===
b
&&
s
||
(
q
[
a
]
=
l
))}
else
a
&&
(
q
[
a
]
=
d
)},
a
=
c
=
n
=
function
(
a
,
c
,
d
,
e
,
f
){
if
(
"string"
==
typeof
a
)
return
p
[
a
]?
p
[
a
](
c
):
j
(
o
(
a
,
c
).
f
);
if
(
!
a
.
splice
){
if
(
s
=
a
,
s
.
deps
&&
n
(
s
.
deps
,
s
.
callback
),
!
c
)
return
;
c
.
splice
?(
a
=
c
,
c
=
d
,
d
=
null
):
a
=
b
}
return
c
=
c
||
function
(){},
"function"
==
typeof
d
&&
(
d
=
e
,
e
=
f
),
e
?
m
(
b
,
a
,
c
,
d
):
setTimeout
(
function
(){
m
(
b
,
a
,
c
,
d
)},
4
),
n
},
n
.
config
=
function
(
a
){
return
n
(
a
)},
a
.
_defined
=
q
,
d
=
function
(
a
,
b
,
c
){
b
.
splice
||
(
c
=
b
,
b
=
[]),
e
(
q
,
a
)
||
e
(
r
,
a
)
||
(
r
[
a
]
=
[
a
,
b
,
c
])},
d
.
amd
=
{
jQuery
:
!
0
}}(),
b
.
requirejs
=
a
,
b
.
require
=
c
,
b
.
define
=
d
}}(),
b
.
define
(
"almond"
,
function
(){}),
b
.
define
(
"jquery"
,[],
function
(){
var
b
=
a
||
$
;
return
null
==
b
&&
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."
),
b
}),
b
.
define
(
"select2/utils"
,[
"jquery"
],
function
(
a
){
function
b
(
a
){
var
b
=
a
.
prototype
,
c
=
[];
for
(
var
d
in
b
){
var
e
=
b
[
d
];
"function"
==
typeof
e
&&
"constructor"
!==
d
&&
c
.
push
(
d
)}
return
c
}
var
c
=
{};
c
.
Extend
=
function
(
a
,
b
){
function
c
(){
this
.
constructor
=
a
}
var
d
=
{}.
hasOwnProperty
;
for
(
var
e
in
b
)
d
.
call
(
b
,
e
)
&&
(
a
[
e
]
=
b
[
e
]);
return
c
.
prototype
=
b
.
prototype
,
a
.
prototype
=
new
c
,
a
.
__super__
=
b
.
prototype
,
a
},
c
.
Decorate
=
function
(
a
,
c
){
function
d
(){
var
b
=
Array
.
prototype
.
unshift
,
d
=
c
.
prototype
.
constructor
.
length
,
e
=
a
.
prototype
.
constructor
;
d
>
0
&&
(
b
.
call
(
arguments
,
a
.
prototype
.
constructor
),
e
=
c
.
prototype
.
constructor
),
e
.
apply
(
this
,
arguments
)}
function
e
(){
this
.
constructor
=
d
}
var
f
=
b
(
c
),
g
=
b
(
a
);
c
.
displayName
=
a
.
displayName
,
d
.
prototype
=
new
e
;
for
(
var
h
=
0
;
h
<
g
.
length
;
h
++
){
var
i
=
g
[
h
];
d
.
prototype
[
i
]
=
a
.
prototype
[
i
]}
for
(
var
j
=
(
function
(
a
){
var
b
=
function
(){};
a
in
d
.
prototype
&&
(
b
=
d
.
prototype
[
a
]);
var
e
=
c
.
prototype
[
a
];
return
function
(){
var
a
=
Array
.
prototype
.
unshift
;
return
a
.
call
(
arguments
,
b
),
e
.
apply
(
this
,
arguments
)}}),
k
=
0
;
k
<
f
.
length
;
k
++
){
var
l
=
f
[
k
];
d
.
prototype
[
l
]
=
j
(
l
)}
return
d
};
var
d
=
function
(){
this
.
listeners
=
{}};
return
d
.
prototype
.
on
=
function
(
a
,
b
){
this
.
listeners
=
this
.
listeners
||
{},
a
in
this
.
listeners
?
this
.
listeners
[
a
].
push
(
b
):
this
.
listeners
[
a
]
=
[
b
]},
d
.
prototype
.
trigger
=
function
(
a
){
var
b
=
Array
.
prototype
.
slice
;
this
.
listeners
=
this
.
listeners
||
{},
a
in
this
.
listeners
&&
this
.
invoke
(
this
.
listeners
[
a
],
b
.
call
(
arguments
,
1
)),
"*"
in
this
.
listeners
&&
this
.
invoke
(
this
.
listeners
[
"*"
],
arguments
)},
d
.
prototype
.
invoke
=
function
(
a
,
b
){
for
(
var
c
=
0
,
d
=
a
.
length
;
d
>
c
;
c
++
)
a
[
c
].
apply
(
this
,
b
)},
c
.
Observable
=
d
,
c
.
generateChars
=
function
(
a
){
for
(
var
b
=
""
,
c
=
0
;
a
>
c
;
c
++
){
var
d
=
Math
.
floor
(
36
*
Math
.
random
());
b
+=
d
.
toString
(
36
)}
return
b
},
c
.
bind
=
function
(
a
,
b
){
return
function
(){
a
.
apply
(
b
,
arguments
)}},
c
.
_convertData
=
function
(
a
){
for
(
var
b
in
a
){
var
c
=
b
.
split
(
"-"
),
d
=
a
;
if
(
1
!==
c
.
length
){
for
(
var
e
=
0
;
e
<
c
.
length
;
e
++
){
var
f
=
c
[
e
];
f
=
f
.
substring
(
0
,
1
).
toLowerCase
()
+
f
.
substring
(
1
),
f
in
d
||
(
d
[
f
]
=
{}),
e
==
c
.
length
-
1
&&
(
d
[
f
]
=
a
[
b
]),
d
=
d
[
f
]}
delete
a
[
b
]}}
return
a
},
c
.
hasScroll
=
function
(
b
,
c
){
var
d
=
a
(
c
),
e
=
c
.
style
.
overflowX
,
f
=
c
.
style
.
overflowY
;
return
e
!==
f
||
"hidden"
!==
f
&&
"visible"
!==
f
?
"scroll"
===
e
||
"scroll"
===
f
?
!
0
:
d
.
innerHeight
()
<
c
.
scrollHeight
||
d
.
innerWidth
()
<
c
.
scrollWidth
:
!
1
},
c
.
escapeMarkup
=
function
(
a
){
var
b
=
{
"
\
\"
:"
&
#
92
;
","
&
":"
&
amp
;
","
<
":"
&
lt
;
","
>
":"
&
gt
;
",'"
':""","'
":"
&
#
39
;
","
/
":"
&
#
47
;
"};return"
string
"!=typeof a?a:String(a).replace(/[&<>"
'
\
/
\\
]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('
<
ul
class
=
"select2-results__options"
role
=
"tree"
><
/ul>'
)
;return this.options.get
(
"multiple"
)
&&b.attr
(
"aria-multiselectable","true"
)
,this.$results=b,b},c.prototype.clear=function
()
{this.$results.empty
()
},c.prototype.displayMessage=function
(
b
)
{var c=this.options.get
(
"escapeMarkup"
)
;this.clear
()
,this.hideLoading
()
;var d=a
(
'<li role="treeitem" class="select2-results__option"></
li
>
'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),this.$results.append(d)},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){var c=b.find(".select2-results");c.append(a)},c.prototype.sort=function(a){var b=this.options.get("sorter");return b(a)},c.prototype.setClasses=function(){var b=this;this.data.current(function(c){var d=a.map(c,function(a){return a.id.toString()}),e=b.$results.find(".select2-results__option[aria-selected]");e.each(function(){var b=a(this),c=a.data(this,"data"),e=""+c.id;null!=c.element&&c.element.selected||null==c.element&&a.inArray(e,d)>-1?b.attr("aria-selected","true"):b.attr("aria-selected","false")});var f=e.filter("[aria-selected=true]");f.length>0?f.first().trigger("mouseenter"):e.first().trigger("mouseenter")})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(b){var c=document.createElement("li");c.className="select2-results__option";var d={role:"treeitem","aria-selected":"false"};b.disabled&&(delete d["aria-selected"],d["aria-disabled"]="true"),null==b.id&&delete d["aria-selected"],null!=b._resultId&&(c.id=b._resultId),b.title&&(c.title=b.title),b.children&&(d.role="group",d["aria-label"]=b.text,delete d["aria-selected"]);for(var e in d){var f=d[e];c.setAttribute(e,f)}if(b.children){var g=a(c),h=document.createElement("strong");h.className="select2-results__group";{a(h)}this.template(b,h);for(var i=[],j=0;j<b.children.length;j++){var k=b.children[j],l=this.option(k);i.push(l)}var m=a("<ul></ul>",{"class":"select2-results__options select2-results__options--nested"});m.append(i),g.append(h),g.append(m)}else this.template(b,c);return a.data(c,"data",b),c},c.prototype.bind=function(b){var c=this,d=b.id+"-results";this.$results.attr("id",d),b.on("results:all",function(a){c.clear(),c.append(a.data),b.isOpen()&&c.setClasses()}),b.on("results:append",function(a){c.append(a.data),b.isOpen()&&c.setClasses()}),b.on("query",function(a){c.showLoading(a)}),b.on("select",function(){b.isOpen()&&c.setClasses()}),b.on("unselect",function(){b.isOpen()&&c.setClasses()}),b.on("open",function(){c.$results.attr("aria-expanded","true"),c.$results.attr("aria-hidden","false"),c.setClasses(),c.ensureHighlightVisible()}),b.on("close",function(){c.$results.attr("aria-expanded","false"),c.$results.attr("aria-hidden","true"),c.$results.removeAttr("aria-activedescendant")}),b.on("results:toggle",function(){var a=c.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),b.on("results:select",function(){var a=c.getHighlightedResults();if(0!==a.length){var b=a.data("data");"true"==a.attr("aria-selected")?c.trigger("close"):c.trigger("select",{data:b})}}),b.on("results:previous",function(){var a=c.getHighlightedResults(),b=c.$results.find("[aria-selected]"),d=b.index(a);if(0!==d){var e=d-1;0===a.length&&(e=0);var f=b.eq(e);f.trigger("mouseenter");var g=c.$results.offset().top,h=f.offset().top,i=c.$results.scrollTop()+(h-g);0===e?c.$results.scrollTop(0):0>h-g&&c.$results.scrollTop(i)}}),b.on("results:next",function(){var a=c.getHighlightedResults(),b=c.$results.find("[aria-selected]"),d=b.index(a),e=d+1;if(!(e>=b.length)){var f=b.eq(e);f.trigger("mouseenter");var g=c.$results.offset().top+c.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=c.$results.scrollTop()+h-g;0===e?c.$results.scrollTop(0):h>g&&c.$results.scrollTop(i)}}),b.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),b.on("results:message",function(a){c.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=c.$results.scrollTop(),d=c.$results.get(0).scrollHeight-c.$results.scrollTop()+a.deltaY,e=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&d<=c.$results.height();e?(c.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(c.$results.scrollTop(c.$results.get(0).scrollHeight-c.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(b){var d=a(this),e=d.data("data");return"true"===d.attr("aria-selected")?void(c.options.get("multiple")?c.trigger("unselect",{originalEvent:b,data:e}):c.trigger("close")):void c.trigger("select",{originalEvent:b,data:e})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(){var b=a(this).data("data");c.getHighlightedResults().removeClass("select2-results__option--highlighted"),c.trigger("results:focus",{data:b,element:a(this)})})},c.prototype.getHighlightedResults=function(){var a=this.$results.find(".select2-results__option--highlighted");return a},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),2>=c?this.$results.scrollTop(0):(g>this.$results.outerHeight()||0>g)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){var a={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};return a}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var b=a('
<
span
class
=
"select2-selection"
role
=
"combobox"
aria
-
autocomplete
=
"list"
aria
-
haspopup
=
"true"
aria
-
expanded
=
"false"
><
/span>'
)
;return this._tabindex=0,null!=this.$element.data
(
"old-tabindex"
)?
this._tabindex=this.$element.data
(
"old-tabindex"
)
:null!=this.$element.attr
(
"tabindex"
)
&&
(
this._tabindex=this.$element.attr
(
"tabindex"
))
,b.attr
(
"title",this.$element.attr
(
"title"
))
,b.attr
(
"tabindex",this._tabindex
)
,this.$selection=b,b},d.prototype.bind=function
(
a
)
{var b=this,d=
(
a.id+"-container",a.id+"-results"
)
;this.container=a,this.$selection.on
(
"focus",function
(
a
)
{b.trigger
(
"focus",a
)
}
)
,this.$selection.on
(
"blur",function
(
a
)
{b.trigger
(
"blur",a
)
}
)
,this.$selection.on
(
"keydown",function
(
a
)
{b.trigger
(
"keypress",a
)
,a.which===c.SPACE&&a.preventDefault
()
}
)
,a.on
(
"results:focus",function
(
a
)
{b.$selection.attr
(
"aria-activedescendant",a.data._resultId
)
}
)
,a.on
(
"selection:update",function
(
a
)
{b.update
(
a.data
)
}
)
,a.on
(
"open",function
()
{b.$selection.attr
(
"aria-expanded","true"
)
,b.$selection.attr
(
"aria-owns",d
)
,b._attachCloseHandler
(
a
)
}
)
,a.on
(
"close",function
()
{b.$selection.attr
(
"aria-expanded","false"
)
,b.$selection.removeAttr
(
"aria-activedescendant"
)
,b.$selection.removeAttr
(
"aria-owns"
)
,b.$selection.focus
()
,b._detachCloseHandler
(
a
)
}
)
,a.on
(
"enable",function
()
{b.$selection.attr
(
"tabindex",b._tabindex
)
}
)
,a.on
(
"disable",function
()
{b.$selection.attr
(
"tabindex","-1"
)
}
)
},d.prototype._attachCloseHandler=function
(
b
)
{a
(
document.body
)
.on
(
"mousedown.select2."+b.id,function
(
b
)
{var c=a
(
b.target
)
,d=c.closest
(
".select2"
)
,e=a
(
".select2.select2-container--open"
)
;e.each
(
function
()
{var b=a
(
this
)
;if
(
this!=d
[
0
])
{var c=b.data
(
"element"
)
;c.select2
(
"close"
)
}}
)
}
)
},d.prototype._detachCloseHandler=function
(
b
)
{a
(
document.body
)
.off
(
"mousedown.select2."+b.id
)
},d.prototype.position=function
(
a,b
)
{var c=b.find
(
".selection"
)
;c.append
(
a
)
},d.prototype.destroy=function
()
{this._detachCloseHandler
(
this.container
)
},d.prototype.update=function
()
{throw new Error
(
"The `update` method must be defined in child classes."
)
},d}
)
,b.define
(
"select2/
selection
/
single
",["
jquery
","
.
/
base
","
..
/
utils
","
..
/
keys
"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("
select2
-
selection
--
single
"),a.html('<span class="
select2
-
selection__rendered
"></span><span class="
select2
-
selection__arrow
" role="
presentation
"><b role="
presentation
"></b></span>'),a},d.prototype.bind=function(a){var b=this;d.__super__.bind.apply(this,arguments);var c=a.id+"
-
container
";this.$selection.find("
.
select2
-
selection__rendered
").attr("
id
",c),this.$selection.attr("
aria
-
labelledby
",c),this.$selection.on("
mousedown
",function(a){1===a.which&&b.trigger("
toggle
",{originalEvent:a})}),this.$selection.on("
focus
",function(){}),this.$selection.on("
blur
",function(){}),a.on("
selection
:
update
",function(a){b.update(a.data)})},d.prototype.clear=function(){this.$selection.find("
.
select2
-
selection__rendered
").empty()},d.prototype.display=function(a){var b=this.options.get("
templateSelection
"),c=this.options.get("
escapeMarkup
");return c(b(a))},d.prototype.selectionContainer=function(){return a("
<
span
><
/span>"
)
},d.prototype.update=function
(
a
)
{if
(
0===a.length
)
return void this.clear
()
;var b=a
[
0
]
,c=this.display
(
b
)
,d=this.$selection.find
(
".select2-selection__rendered"
)
;d.empty
()
.append
(
c
)
,d.prop
(
"title",b.title||b.text
)
},d}
)
,b.define
(
"select2/
selection
/
multiple
",["
jquery
","
.
/
base
","
..
/
utils
"],function(a,b,c){function d(){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("
select2
-
selection
--
multiple
"),a.html('<ul class="
select2
-
selection__rendered
"></ul>'),a},d.prototype.bind=function(){var b=this;d.__super__.bind.apply(this,arguments),this.$selection.on("
click
",function(a){b.trigger("
toggle
",{originalEvent:a})}),this.$selection.on("
click
","
.
select2
-
selection__choice__remove
",function(c){var d=a(this),e=d.parent(),f=e.data("
data
");b.trigger("
unselect
",{originalEvent:c,data:f})})},d.prototype.clear=function(){this.$selection.find("
.
select2
-
selection__rendered
").empty()},d.prototype.display=function(a){var b=this.options.get("
templateSelection
"),c=this.options.get("
escapeMarkup
");return c(b(a))},d.prototype.selectionContainer=function(){var b=a('<li class="
select2
-
selection__choice
"><span class="
select2
-
selection__choice__remove
" role="
presentation
">×</span></li>');return b},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.display(e),g=this.selectionContainer();g.append(f),g.prop("
title
",e.title||e.text),g.data("
data
",e),b.push(g)}var h=this.$selection.find("
.
select2
-
selection__rendered
");c.appendMany(h,b)}},d}),b.define("
select2
/
selection
/
placeholder
",["
..
/
utils
"],function(){function a(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("
placeholder
")),a.call(this,b,c)}return a.prototype.normalizePlaceholder=function(a,b){return"
string
"==typeof b&&(b={id:"",text:b}),b},a.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("
select2
-
selection__placeholder
").removeClass("
select2
-
selection__choice
"),c},a.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id,d=b.length>1;if(d||c)return a.call(this,b);this.clear();var e=this.createPlaceholder(this.placeholder);this.$selection.find("
.
select2
-
selection__rendered
").append(e)},a}),b.define("
select2
/
selection
/
allowClear
",["
jquery
","
..
/
keys
"],function(a,b){function c(){}return c.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),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(a){d._handleClear(a)}),b.on("
keypress
",function(a){d._handleKeyboardClear(a,b)})},c.prototype._handleClear=function(a,b){if(!this.options.get("
disabled
")){var c=this.$selection.find("
.
select2
-
selection__clear
");if(0!==c.length){b.stopPropagation();for(var d=c.data("
data
"),e=0;e<d.length;e++){var f={data:d[e]};if(this.trigger("
unselect
",f),f.prevented)return}this.$element.val(this.placeholder.id).trigger("
change
"),this.trigger("
toggle
")}}},c.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||(c.which==b.DELETE||c.which==b.BACKSPACE)&&this._handleClear(c)},c.prototype.update=function(b,c){if(b.call(this,c),!(this.$selection.find("
.
select2
-
selection__placeholder
").length>0||0===c.length)){var d=a('<span class="
select2
-
selection__clear
">×</span>');d.data("
data
",c),this.$selection.find("
.
select2
-
selection__rendered
").prepend(d)}},c}),b.define("
select2
/
selection
/
search
",["
jquery
","
..
/
utils
","
..
/
keys
"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="
select2
-
search
select2
-
search
--
inline
"><input class="
select2
-
search__field
" type="
search
" tabindex="
-
1
" autocomplete="
off
" autocorrect="
off
" autocapitalize="
off
" spellcheck="
false
" role="
textbox
" /></li>');this.$searchContainer=c,this.$search=c.find("
input
");var d=b.call(this);return d},d.prototype.bind=function(a,b,d){var e=this;a.call(this,b,d),b.on("
open
",function(){e.$search.attr("
tabindex
",0),e.$search.focus()}),b.on("
close
",function(){e.$search.attr("
tabindex
",-1),e.$search.val(""),e.$search.focus()}),b.on("
enable
",function(){e.$search.prop("
disabled
",!1)}),b.on("
disable
",function(){e.$search.prop("
disabled
",!0)}),this.$selection.on("
focusin
","
.
select2
-
search
--
inline
",function(a){e.trigger("
focus
",a)}),this.$selection.on("
focusout
","
.
select2
-
search
--
inline
",function(a){e.trigger("
blur
",a)}),this.$selection.on("
keydown
","
.
select2
-
search
--
inline
",function(a){a.stopPropagation(),e.trigger("
keypress
",a),e._keyUpPrevented=a.isDefaultPrevented();var b=a.which;if(b===c.BACKSPACE&&""===e.$search.val()){var d=e.$searchContainer.prev("
.
select2
-
selection__choice
");if(d.length>0){var f=d.data("
data
");e.searchRemoveChoice(f),a.preventDefault()}}}),this.$selection.on("
input
","
.
select2
-
search
--
inline
",function(){e.$selection.off("
keyup
.
search
")}),this.$selection.on("
keyup
.
search
input
","
.
select2
-
search
--
inline
",function(a){e.handleSearch(a)})},d.prototype.createPlaceholder=function(a,b){this.$search.attr("
placeholder
",b.text)},d.prototype.update=function(a,b){this.$search.attr("
placeholder
",""),a.call(this,b),this.$selection.find("
.
select2
-
selection__rendered
").append(this.$searchContainer),this.resizeSearch()},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("
query
",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("
unselect
",{data:b}),this.trigger("
open
"),this.$search.val(b.text+"
")},d.prototype.resizeSearch=function(){this.$search.css("
width
","
25
px
");var a="";if(""!==this.$search.attr("
placeholder
"))a=this.$selection.find("
.
select2
-
selection__rendered
").innerWidth();else{var b=this.$search.val().length+1;a=.75*b+"
em
"}this.$search.css("
width
",a)},d}),b.define("
select2
/
selection
/
eventRelay
",["
jquery
"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["
open
","
opening
","
close
","
closing
","
select
","
selecting
","
unselect
","
unselecting
"],g=["
opening
","
closing
","
selecting
","
unselecting
"];b.call(this,c,d),c.on("
*
",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("
select2
:
"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("
select2
/
translation
",["
jquery
","
require
"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({},b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("
select2
/
diacritics
",[],function(){var 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
","
Ⓓ
":"
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
","
Ƣ
":"
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
","
ƣ
":"
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
","
Ά
":"
Α
","
Έ
":"
Ε
","
Ή
":"
Η
","
Ί
":"
Ι
","
Ϊ
":"
Ι
","
Ό
":"
Ο
","
Ύ
":"
Υ
","
Ϋ
":"
Υ
","
Ώ
":"
Ω
","
ά
":"
α
","
έ
":"
ε
","
ή
":"
η
","
ί
":"
ι
","
ϊ
":"
ι
","
ΐ
":"
ι
","
ό
":"
ο
","
ύ
":"
υ
","
ϋ
":"
υ
","
ΰ
":"
υ
","
ω
":"
ω
","
ς
":"
σ
"};return a}),b.define("
select2
/
data
/
base
",["
..
/
utils
"],function(a){function b(){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(){throw new Error("
The
`current`
method
must
be
defined
in
child
classes
.
")},b.prototype.query=function(){throw new Error("
The
`query`
method
must
be
defined
in
child
classes
.
")},b.prototype.bind=function(){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"
-
result
-
";return d+=a.generateChars(4),d+=null!=c.id?"
-
"+c.id.toString():"
-
"+a.generateChars(4)},b}),b.define("
select2
/
data
/
select
",["
.
/
base
","
..
/
utils
","
jquery
"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find("
:
selected
").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("
option
"))return a.element.selected=!0,void this.$element.trigger("
change
");if(this.$element.prop("
multiple
"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("
change
")});else{var d=a.id;this.$element.val(d),this.$element.trigger("
change
")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("
multiple
"))return a.selected=!1,c(a.element).is("
option
")?(a.element.selected=!1,void this.$element.trigger("
change
")):void this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("
change
")})},d.prototype.bind=function(a){var b=this;this.container=a,a.on("
select
",function(a){b.select(a.data)}),a.on("
unselect
",function(a){b.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("
*
").each(function(){c.removeData(this,"
data
")})},d.prototype.query=function(a,b){var d=[],e=this,f=this.$element.children();f.each(function(){var b=c(this);if(b.is("
option
")||b.is("
optgroup
")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var b;a.children?(b=document.createElement("
optgroup
"),b.label=a.text):(b=document.createElement("
option
"),void 0!==b.textContent?b.textContent=a.text:b.innerText=a.text),a.id&&(b.value=a.id),a.disabled&&(b.disabled=!0),a.selected&&(b.selected=!0),a.title&&(b.title=a.title);var d=c(b),e=this._normalizeItem(a);return e.element=b,c.data(b,"
data
",e),d},d.prototype.item=function(a){var b={};
if(b=c.data(a[0],"
data
"),null!=b)return b;if(a.is("
option
"))b={id:a.val(),text:a.text(),disabled:a.prop("
disabled
"),selected:a.prop("
selected
"),title:a.prop("
title
")};else if(a.is("
optgroup
")){b={text:a.prop("
label
"),children:[],title:a.prop("
title
")};for(var d=a.children("
option
"),e=[],f=0;f<d.length;f++){var g=c(d[f]),h=this.item(g);e.push(h)}b.children=e}return b=this._normalizeItem(b),b.element=a[0],c.data(a[0],"
data
",b),b},d.prototype._normalizeItem=function(a){c.isPlainObject(a)||(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){var c=this.options.get("
matcher
");return c(a,b)},d}),b.define("
select2
/
data
/
array
",["
.
/
select
","
..
/
utils
","
jquery
"],function(a,b,c){function d(a,b){var c=b.get("
data
")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("
option
").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("
option
"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=(c.extend(!0,{},l,j),this.option(l));k.replaceWith(m)}else{var n=this.option(j);if(j.children){var o=this.convertToOptions(j.children);b.appendMany(n,o)}h.push(n)}}return h},d}),b.define("
select2
/
data
/
ajax
",["
.
/
array
","
..
/
utils
","
jquery
"],function(a,b,c){function d(b,c){this.ajaxOptions=this._applyDefaults(c.get("
ajax
")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),a.__super__.constructor.call(this,b,c)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return{q:a.term}},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("
debug
")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("
Select2
:
The
AJAX
results
did
not
return
an
array
in
the
`results`
key
of
the
response
.
")),b(f)},function(){});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"
GET
"},this.ajaxOptions);"
function
"==typeof f.url&&(f.url=f.url(a)),"
function
"==typeof f.data&&(f.data=f.data(a)),this.ajaxOptions.delay&&""!==a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("
select2
/
data
/
tags
",["
jquery
"],function(a){function b(b,c,d){var e=d.get("
tags
"),f=d.get("
createTag
");if(void 0!==f&&(this.createTag=f),b.call(this,c,d),a.isArray(e))for(var g=0;g<e.length;g++){var h=e[g],i=this._normalizeItem(h),j=this.option(i);this.$element.append(j)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0),k=i.text===b.term;if(k||j)return f?!1:(a.data=g,void c(a))}if(f)return!0;var l=e.createTag(b);if(null!=l){var m=e.option(l);m.attr("
data
-
select2
-
tag
",!0),e.addOptions([m]),e.insertTag(g,l)}a.results=g,c(a)}var e=this;return this._removeOldTags(),null==b.term||null!=b.page?void a.call(this,b,c):void a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(){var b=(this._lastTag,this.$element.find("
option
[
data
-
select2
-
tag
]
"));b.each(function(){this.selected||a(this).remove()})},b}),b.define("
select2
/
data
/
tokenizer
",["
jquery
"],function(a){function b(a,b,c){var d=c.get("
tokenizer
");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find("
.
select2
-
search__field
")},b.prototype.query=function(a,b,c){function d(a){e.select(a)}var e=this;b.term=b.term||"";var f=this.tokenizer(b,this.options,d);f.term!==b.term&&(this.$search.length&&(this.$search.val(f.term),this.$search.focus()),b.term=f.term),a.call(this,b,c)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("
tokenSeparators
")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);e(m),g=g.substr(h+1)||"",h=0}else h++}return{term:g}},b}),b.define("
select2
/
data
/
minimumInputLength
",[],function(){function a(a,b,c){this.minimumInputLength=c.get("
minimumInputLength
"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",b.term.length<this.minimumInputLength?void this.trigger("
results
:
message
",{message:"
inputTooShort
",args:{minimum:this.minimumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("
select2
/
data
/
maximumInputLength
",[],function(){function a(a,b,c){this.maximumInputLength=c.get("
maximumInputLength
"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){return b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength?void this.trigger("
results
:
message
",{message:"
inputTooLong
",args:{maximum:this.maximumInputLength,input:b.term,params:b}}):void a.call(this,b,c)},a}),b.define("
select2
/
data
/
maximumSelectionLength
",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("
maximumSelectionLength
"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;return d.maximumSelectionLength>0&&f>=d.maximumSelectionLength?void d.trigger("
results
:
message
",{message:"
maximumSelected
",args:{maximum:d.maximumSelectionLength}}):void a.call(d,b,c)})},a}),b.define("
select2
/
dropdown
",["
jquery
","
.
/
utils
"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="
select2
-
dropdown
"><span class="
select2
-
results
"></span></span>');return b.attr("
dir
",this.options.get("
dir
")),this.$dropdown=b,b},c.prototype.position=function(){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("
select2
/
dropdown
/
search
",["
jquery
","
..
/
utils
"],function(a){function b(){}return b.prototype.render=function(b){var c=b.call(this),d=a('<span class="
select2
-
search
select2
-
search
--
dropdown
"><input class="
select2
-
search__field
" type="
search
" tabindex="
-
1
" autocomplete="
off
" autocorrect="
off
" autocapitalize="
off
" spellcheck="
false
" role="
textbox
" /></span>');return this.$searchContainer=d,this.$search=d.find("
input
"),c.prepend(d),c},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("
keydown
",function(a){e.trigger("
keypress
",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("
input
",function(){a(this).off("
keyup
")}),this.$search.on("
keyup
input
",function(a){e.handleSearch(a)}),c.on("
open
",function(){e.$search.attr("
tabindex
",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("
close
",function(){e.$search.attr("
tabindex
",-1),e.$search.val("")}),c.on("
results
:
all
",function(a){if(null==a.query.term||""===a.query.term){var b=e.showSearch(a);b?e.$searchContainer.removeClass("
select2
-
search
--
hide
"):e.$searchContainer.addClass("
select2
-
search
--
hide
")}})},b.prototype.handleSearch=function(){if(!this._keyUpPrevented){var a=this.$search.val();this.trigger("
query
",{term:a})}this._keyUpPrevented=!1},b.prototype.showSearch=function(){return!0},b}),b.define("
select2
/
dropdown
/
hidePlaceholder
",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("
placeholder
")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"
string
"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("
select2
/
dropdown
/
infiniteScroll
",["
jquery
"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("
query
",function(a){e.lastParams=a,e.loading=!0}),c.on("
query
:
append
",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("
scroll
",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){var c=e.$results.offset().top+e.$results.outerHeight(!1),d=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1);c+50>=d&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("
query
:
append
",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="
option
load
-
more
" role="
treeitem
"></li>'),c=this.options.get("
translations
").get("
loadingMore
");return b.html(c(this.lastParams)),b},b}),b.define("
select2
/
dropdown
/
attachBody
",["
jquery
","
..
/
utils
"],function(a,b){function c(a,b,c){this.$dropdownParent=c.get("
dropdownParent
")||document.body,a.call(this,b,c)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("
open
",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("
results
:
all
",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("
results
:
append
",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("
close
",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("
mousedown
",function(a){a.stopPropagation()})},c.prototype.position=function(a,b,c){b.attr("
class
",c.attr("
class
")),b.removeClass("
select2
"),b.addClass("
select2
-
container
--
open
"),b.css({position:"
absolute
",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("
<
span
><
/span>"
)
,d=b.call
(
this
)
;return c.append
(
d
)
,this.$dropdownContainer=c,c},c.prototype._hideDropdown=function
()
{this.$dropdownContainer.detach
()
},c.prototype._attachPositioningHandler=function
(
c
)
{var d=this,e="scroll.select2."+c.id,f="resize.select2."+c.id,g="orientationchange.select2."+c.id,h=this.$container.parents
()
.filter
(
b.hasScroll
)
;h.each
(
function
()
{a
(
this
)
.data
(
"select2-scroll-position",{x:a
(
this
)
.scrollLeft
()
,y:a
(
this
)
.scrollTop
()
}
)
}
)
,h.on
(
e,function
()
{var b=a
(
this
)
.data
(
"select2-scroll-position"
)
;a
(
this
)
.scrollTop
(
b.y
)
}
)
,a
(
window
)
.on
(
e+" "+f+" "+g,function
()
{d._positionDropdown
()
,d._resizeDropdown
()
}
)
},c.prototype._detachPositioningHandler=function
(
c
)
{var d="scroll.select2."+c.id,e="resize.select2."+c.id,f="orientationchange.select2."+c.id,g=this.$container.parents
()
.filter
(
b.hasScroll
)
;g.off
(
d
)
,a
(
window
)
.off
(
d+" "+e+" "+f
)
},c.prototype._positionDropdown=function
()
{var b=a
(
window
)
,c=this.$dropdown.hasClass
(
"select2-dropdown--above"
)
,d=this.$dropdown.hasClass
(
"select2-dropdown--below"
)
,e=null,f=
(
this.$container.position
()
,this.$container.offset
())
;f.bottom=f.top+this.$container.outerHeight
(
!1
)
;var g={height:this.$container.outerHeight
(
!1
)
};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight
(
!1
)
},i={top:b.scrollTop
()
,bottom:b.scrollTop
()
+b.height
()
},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom};c||d||
(
e="below"
)
,k||!j||c
?
!j&&k&&c&&
(
e="below"
)
:e="above",
(
"above"==e||c&&"below"!==e
)
&&
(
l.top=g.top-h.height
)
,null!=e&&
(
this.$dropdown.removeClass
(
"select2-dropdown--below select2-dropdown--above"
)
.addClass
(
"select2-dropdown--"+e
)
,this.$container.removeClass
(
"select2-container--below select2-container--above"
)
.addClass
(
"select2-container--"+e
))
,this.$dropdownContainer.css
(
l
)
},c.prototype._resizeDropdown=function
()
{this.$dropdownContainer.width
()
;var a={width:this.$container.outerWidth
(
!1
)
+"px"};this.options.get
(
"dropdownAutoWidth"
)
&&
(
a.minWidth=a.width,a.width="auto"
)
,this.$dropdown.css
(
a
)
},c.prototype._showDropdown=function
()
{this.$dropdownContainer.appendTo
(
this.$dropdownParent
)
,this._positionDropdown
()
,this._resizeDropdown
()
},c}
)
,b.define
(
"select2/
dropdown
/
minimumResultsForSearch
",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("
minimumResultsForSearch
"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return a(c.data.results)<this.minimumResultsForSearch?!1:b.call(this,c)},b}),b.define("
select2
/
dropdown
/
selectOnClose
",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("
close
",function(){d._handleSelectOnClose()})},a.prototype._handleSelectOnClose=function(){var a=this.getHighlightedResults();a.length<1||this.trigger("
select
",{data:a.data("
data
")})},a}),b.define("
select2
/
dropdown
/
closeOnSelect
",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("
select
",function(a){d._selectTriggered(a)}),b.on("
unselect
",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("
close
")},a}),b.define("
select2
/
i18n
/
en
",[],function(){return{errorLoading:function(){return"
The
results
could
not
be
loaded
.
"},inputTooLong:function(a){var b=a.input.length-a.maximum,c="
Please
delete
"+b+"
character
";return 1!=b&&(c+="
s
"),c},inputTooShort:function(a){var b=a.minimum-a.input.length,c="
Please
enter
"+b+"
or
more
characters
";return c},loadingMore:function(){return"
Loading
more
results
…
"},maximumSelected:function(a){var b="
You
can
only
select
"+a.maximum+"
item
";return 1!=a.maximum&&(b+="
s
"),b},noResults:function(){return"
No
results
found
"},searching:function(){return"
Searching
…
"}}}),b.define("
select2
/
defaults
",["
jquery
","
require
","
.
/
results
","
.
/
selection
/
single
","
.
/
selection
/
multiple
","
.
/
selection
/
placeholder
","
.
/
selection
/
allowClear
","
.
/
selection
/
search
","
.
/
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
","
.
/
i18n
/
en
"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}D.prototype.apply=function(l){if(l=a.extend({},this.defaults,l),null==l.dataAdapter){if(l.dataAdapter=null!=l.ajax?o:null!=l.data?n:m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),(null!=l.tokenSeparators||null!=l.tokenizer)&&(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"
compat
/
query
");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"
compat
/
initSelection
");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"
compat
/
dropdownCss
");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.selectionAdapter=l.multiple?e:d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"
compat
/
containerCss
");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("
string
"==typeof l.language)if(l.language.indexOf("
-
")>0){var H=l.language.split("
-
"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("
en
");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(O){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(P){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "
'+M+'
" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var Q=k.loadPath(this.defaults.amdLanguageBase+"
en
"),R=new k(l.language);R.extend(Q),l.translations=R}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^
\
u0000-
\
u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){var h=e.children[g],i=c(d,h);null==i&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var j=b(e.text).toUpperCase(),k=b(d.term).toUpperCase();return j.indexOf(k)>-1?e:null}this.defaults={amdBase:"
.
/
",amdLanguageBase:"
.
/
i18n
/
",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"
default
",width:"
resolve
"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(this.defaults,f)};var E=new D;return E}),b.define("
select2
/
options
",["
require
","
jquery
","
.
/
defaults
","
.
/
utils
"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("
input
")){var f=a(this.get("
amdBase
")+"
compat
/
inputData
");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["
select2
"];null==this.options.multiple&&(this.options.multiple=a.prop("
multiple
")),null==this.options.disabled&&(this.options.disabled=a.prop("
disabled
")),null==this.options.language&&(a.prop("
lang
")?this.options.language=a.prop("
lang
").toLowerCase():a.closest("
[
lang
]
").prop("
lang
")&&(this.options.language=a.closest("
[
lang
]
").prop("
lang
"))),null==this.options.dir&&(this.options.dir=a.prop("
dir
")?a.prop("
dir
"):a.closest("
[
dir
]
").prop("
dir
")?a.closest("
[
dir
]
").prop("
dir
"):"
ltr
"),a.prop("
disabled
",this.options.disabled),a.prop("
multiple
",this.options.multiple),a.data("
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.'),a.data("
data
",a.data("
select2Tags
")),a.data("
tags
",!0)),a.data("
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
.
"),a.attr("
ajax
--
url
",a.data("
ajaxUrl
")),a.data("
ajax
--
url
",a.data("
ajaxUrl
")));var e={};e=b.fn.jquery&&"
1
.
"==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,a.data()):a.data();var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("
select2
/
core
",["
jquery
","
.
/
options
","
.
/
utils
","
.
/
keys
"],function(a,b,c,d){var e=function(a,c){null!=a.data("
select2
")&&a.data("
select2
").destroy(),this.$element=a,this.id=this._generateId(a),c=c||{},this.options=new b(c,a),e.__super__.constructor.call(this);var d=a.attr("
tabindex
")||0;a.data("
old
-
tabindex
",d),a.attr("
tabindex
","
-
1
");var f=this.options.get("
dataAdapter
");this.dataAdapter=new f(a,this.options);var g=this.render();this._placeContainer(g);var h=this.options.get("
selectionAdapter
");this.selection=new h(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,g);var i=this.options.get("
dropdownAdapter
");this.dropdown=new i(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,g);var j=this.options.get("
resultsAdapter
");this.results=new j(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var k=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){k.trigger("
selection
:
update
",{data:a})}),a.addClass("
select2
-
hidden
-
accessible
"),a.attr("
aria
-
hidden
","
true
"),this._syncAttributes(),a.data("
select2
",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("
id
")?a.attr("
id
"):null!=a.attr("
name
")?a.attr("
name
")+"
-
"+c.generateChars(2):c.generateChars(4),b="
select2
-
"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("
width
"));null!=b&&a.css("
width
",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*
\
.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("
resolve
"==b){var d=this._resolveWidth(a,"
style
");return null!=d?d:this._resolveWidth(a,"
element
")}if("
element
"==b){var e=a.outerWidth(!1);return 0>=e?"
auto
":e+"
px
"}if("
style
"==b){var f=a.attr("
style
");if("
string
"!=typeof f)return null;for(var g=f.split("
;
"),h=0,i=g.length;i>h;h+=1){var j=g[h].replace(/
\
s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.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)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("
change
.
select2
",function(){b.dataAdapter.current(function(a){b.trigger("
selection
:
update
",{data:a})})}),this._sync=c.bind(this._syncAttributes,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("
onpropertychange
",this._sync);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._sync)}),this._observer.observe(this.$element[0],{attributes:!0,subtree:!1})):this.$element[0].addEventListener&&this.$element[0].addEventListener("
DOMAttrModified
",b._sync,!1)},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("
*
",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["
toggle
"];this.selection.on("
toggle
",function(){b.toggleDropdown()}),this.selection.on("
*
",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("
*
",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("
*
",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("
open
",function(){a.$container.addClass("
select2
-
container
--
open
")}),this.on("
close
",function(){a.$container.removeClass("
select2
-
container
--
open
")}),this.on("
enable
",function(){a.$container.removeClass("
select2
-
container
--
disabled
")}),this.on("
disable
",function(){a.$container.addClass("
select2
-
container
--
disabled
")}),this.on("
focus
",function(){a.$container.addClass("
select2
-
container
--
focus
")}),this.on("
blur
",function(){a.$container.removeClass("
select2
-
container
--
focus
")}),this.on("
query
",function(b){a.isOpen()||a.trigger("
open
"),this.dataAdapter.query(b,function(c){a.trigger("
results
:
all
",{data:c,query:b})})}),this.on("
query
:
append
",function(b){this.dataAdapter.query(b,function(c){a.trigger("
results
:
append
",{data:c,query:b})})}),this.on("
keypress
",function(b){var c=b.which;a.isOpen()?c===d.ENTER?(a.trigger("
results
:
select
"),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("
results
:
toggle
"),b.preventDefault()):c===d.UP?(a.trigger("
results
:
previous
"),b.preventDefault()):c===d.DOWN?(a.trigger("
results
:
next
"),b.preventDefault()):(c===d.ESC||c===d.TAB)&&(a.close(),b.preventDefault()):(c===d.ENTER||c===d.SPACE||(c===d.DOWN||c===d.UP)&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("
disabled
",this.$element.prop("
disabled
")),this.options.get("
disabled
")?(this.isOpen()&&this.close(),this.trigger("
disable
")):this.trigger("
enable
")},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"
opening
",close:"
closing
",select:"
selecting
",unselect:"
unselecting
"};if(a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("
disabled
")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||(this.trigger("
query
",{}),this.trigger("
open
"))},e.prototype.close=function(){this.isOpen()&&this.trigger("
close
")},e.prototype.isOpen=function(){return this.$container.hasClass("
select2
-
container
--
open
")},e.prototype.enable=function(a){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.'),(null==a||0===a.length)&&(a=[!0]);var b=!a[0];this.$element.prop("
disabled
",b)},e.prototype.data=function(){this.options.get("
debug
")&&arguments.length>0&&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 a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){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==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("
change
")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("
onpropertychange
",this._sync),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&this.$element[0].removeEventListener("
DOMAttrModified
",this._sync,!1),this._sync=null,this.$element.off("
.
select2
"),this.$element.attr("
tabindex
",this.$element.data("
old
-
tabindex
")),this.$element.removeClass("
select2
-
hidden
-
accessible
"),this.$element.attr("
aria
-
hidden
","
false
"),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},e.prototype.render=function(){var b=a('<span class="
select2
select2
-
container
"><span class="
selection
"></span><span class="
dropdown
-
wrapper
" aria-hidden="
true
"></span></span>');return b.attr("
dir
",this.options.get("
dir
")),this.$container=b,this.$container.addClass("
select2
-
container
--
"+this.options.get("
theme
")),b.data("
element
",this.$element),b},e}),b.define("
select2
/
compat
/
utils
",["
jquery
"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("
class
")),e&&(e=""+e,a(e.split(/
\
s+/)).each(function(){0===this.indexOf("
select2
-
")&&g.push(this)})),e=a.trim(c.attr("
class
")),e&&(e=""+e,a(e.split(/
\
s+/)).each(function(){0!==this.indexOf("
select2
-
")&&(f=d(this),null!=f&&g.push(f))})),b.attr("
class
",g.join("
"))}return{syncCssClasses:b}}),b.define("
select2
/
compat
/
containerCss
",["
jquery
","
.
/
utils
"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("
containerCssClass
")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("
adaptContainerCssClass
");if(g=g||c,-1!==f.indexOf("
:
all
:
")){f=f.replace("
:
all
","");var h=g;g=function(a){var b=h(a);return null!=b?b+"
"+a:a}}var i=this.options.get("
containerCss
")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("
select2
/
compat
/
dropdownCss
",["
jquery
","
.
/
utils
"],function(a,b){function c(){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("
dropdownCssClass
")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("
adaptDropdownCssClass
");if(g=g||c,-1!==f.indexOf("
:
all
:
")){f=f.replace("
:
all
","");var h=g;g=function(a){var b=h(a);return null!=b?b+"
"+a:a}}var i=this.options.get("
dropdownCss
")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("
select2
/
compat
/
initSelection
",["
jquery
"],function(a){function b(a,b,c){c.get("
debug
")&&window.console&&console.warn&&console.warn("
Select2
:
The
`initSelection`
option
has
been
deprecated
in
favor
of
a
custom
data
adapter
that
overrides
the
`current`
method
.
This
method
is
now
called
multiple
times
instead
of
a
single
time
when
the
instance
is
initialized
.
Support
will
be
removed
for
the
`initSelection`
option
in
future
versions
of
Select2
"),this.initSelection=c.get("
initSelection
"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;return this._isInitialized?void b.call(this,c):void this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("
select2
/
compat
/
inputData
",["
jquery
"],function(a){function b(a,b,c){this._currentData=[],this._valueSeparator=c.get("
valueSeparator
")||"
,
","
hidden
"===b.prop("
type
")&&c.get("
debug
")&&console&&console.warn&&console.warn("
Select2
:
Using
a
hidden
input
with
Select2
is
no
longer
supported
and
may
stop
working
in
the
future
.
It
is
recommended
to
use
a
`<select>`
element
instead
.
"),a.call(this,b,c)}return b.prototype.current=function(b,c){function d(b,c){var e=[];return b.selected||-1!==a.inArray(b.id,c)?(b.selected=!0,e.push(b)):b.selected=!1,b.children&&e.push.apply(e,d(b.children,c)),e}for(var e=[],f=0;f<this._currentData.length;f++){var g=this._currentData[f];e.push.apply(e,d(g,this.$element.val().split(this._valueSeparator)))}c(e)},b.prototype.select=function(b,c){if(this.options.get("
multiple
")){var d=this.$element.val();d+=this._valueSeparator+c.id,this.$element.val(d),this.$element.trigger("
change
")}else this.current(function(b){a.map(b,function(a){a.selected=!1})}),this.$element.val(c.id),this.$element.trigger("
change
")},b.prototype.unselect=function(a,b){var c=this;b.selected=!1,this.current(function(a){for(var d=[],e=0;e<a.length;e++){var f=a[e];
b.id!=f.id&&d.push(f.id)}c.$element.val(d.join(c._valueSeparator)),c.$element.trigger("
change
")})},b.prototype.query=function(a,b,c){for(var d=[],e=0;e<this._currentData.length;e++){var f=this._currentData[e],g=this.matches(b,f);null!==g&&d.push(g)}c({results:d})},b.prototype.addOptions=function(b,c){var d=a.map(c,function(b){return a.data(b[0],"
data
")});this._currentData.push.apply(this._currentData,d)},b}),b.define("
select2
/
compat
/
matcher
",["
jquery
"],function(a){function b(b){function c(c,d){var e=a.extend(!0,{},d);if(null==c.term||""===a.trim(c.term))return e;if(d.children){for(var f=d.children.length-1;f>=0;f--){var g=d.children[f],h=b(c.term,g.text,g);h||e.children.splice(f,1)}if(e.children.length>0)return e}return b(c.term,d.text,d)?e:null}return c}return b}),b.define("
select2
/
compat
/
query
",[],function(){function a(a,b,c){c.get("
debug
")&&window.console&&console.warn&&console.warn("
Select2
:
The
`query`
option
has
been
deprecated
in
favor
of
a
custom
data
adapter
that
overrides
the
`query`
method
.
Support
will
be
removed
for
the
`query`
option
in
future
versions
of
Select2
.
"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){b.callback=c;var d=this.options.get("
query
");d.call(null,b)},a}),b.define("
select2
/
dropdown
/
attachContainer
",[],function(){function a(a,b,c){a.call(this,b,c)}return a.prototype.position=function(a,b,c){var d=c.find("
.
dropdown
-
wrapper
");d.append(b),b.addClass("
select2
-
dropdown
--
below
"),c.addClass("
select2
-
container
--
below
")},a}),b.define("
select2
/
dropdown
/
stopPropagation
",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["
blur
","
change
","
click
","
dblclick
","
focus
","
focusin
","
focusout
","
input
","
keydown
","
keyup
","
keypress
","
mousedown
","
mouseenter
","
mouseleave
","
mousemove
","
mouseover
","
mouseup
","
search
","
touchend
","
touchstart
"];this.$dropdown.on(d.join("
"),function(a){a.stopPropagation()})},a}),b.define("
select2
/
selection
/
stopPropagation
",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["
blur
","
change
","
click
","
dblclick
","
focus
","
focusin
","
focusout
","
input
","
keydown
","
keyup
","
keypress
","
mousedown
","
mouseenter
","
mouseleave
","
mousemove
","
mouseover
","
mouseup
","
search
","
touchend
","
touchstart
"];this.$selection.on(d.join("
"),function(a){a.stopPropagation()})},a}),b.define("
jquery
.
select2
",["
jquery
","
require
","
.
/
select2
/
core
","
.
/
select2
/
defaults
"],function(a,b,c,d){if(b("
jquery
.
mousewheel
"),null==a.fn.select2){var e=["
open
","
close
","
destroy
"];a.fn.select2=function(b){if(b=b||{},"
object
"==typeof b)return this.each(function(){{var d=a.extend({},b,!0);new c(a(this),d)}}),this;if("
string
"==typeof b){var d=this.data("
select2
");null==d&&window.console&&console.error&&console.error("
The
select2
(
'"+b+"'
)
method
was
called
on
an
element
that
is
not
using
Select2
.
");var f=Array.prototype.slice.call(arguments,1),g=d[b](f);return a.inArray(b,e)>-1?this:g}throw new Error("
Invalid
arguments
for
Select2
:
"+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),function(c){"
function
"==typeof b.define&&b.define.amd?b.define("
jquery
.
mousewheel
",["
jquery
"],c):"
object
"==typeof exports?module.exports=c:c(a)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="
mousewheel
","
detail
"in g&&(m=-1*g.detail),"
wheelDelta
"in g&&(m=g.wheelDelta),"
wheelDeltaY
"in g&&(m=g.wheelDeltaY),"
wheelDeltaX
"in g&&(l=-1*g.wheelDeltaX),"
axis
"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"
deltaY
"in g&&(m=-1*g.deltaY,j=m),"
deltaX
"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"
mousewheel
-
line
-
height
");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"
mousewheel
-
page
-
height
");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||f>n)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"
floor
":"
ceil
"](j/f),l=Math[l>=1?"
floor
":"
ceil
"](l/f),m=Math[m>=1?"
floor
":"
ceil
"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"
mousewheel
"===a.type&&b%120===0}var e,f,g=["
wheel
","
mousewheel
","
DOMMouseScroll
","
MozMousePixelScroll
"],h="
onwheel
"in document||document.documentMode>=9?["
wheel
"]:["
mousewheel
","
DomMouseScroll
","
MozMousePixelScroll
"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"
3.1
.
12
",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"
mousewheel
-
line
-
height
",k.getLineHeight(this)),a.data(this,"
mousewheel
-
page
-
height
",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"
mousewheel
-
line
-
height
"),a.removeData(this,"
mousewheel
-
page
-
height
")},getLineHeight:function(b){var c=a(b),d=c["
offsetParent
"in a.fn?"
offsetParent
":"
parent
"]();return d.length||(d=a("
body
")),parseInt(d.css("
fontSize
"),10)||parseInt(c.css("
fontSize
"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("
mousewheel
",a):this.trigger("
mousewheel
")},unmousewheel:function(a){return this.unbind("
mousewheel
",a)}})}),{define:b.define,require:b.require}}(),c=b.require("
jquery
.
select2
");return a.fn.select2.amd=b,c});
\ No newline at end of file
apps/users/forms.py
View file @
3c3fda80
...
...
@@ -21,7 +21,7 @@ class UserAddForm(ModelForm):
}
widgets
=
{
'groups'
:
forms
.
SelectMultiple
(
attrs
=
{
'class'
:
'
chosen-select
'
,
'data-placeholder'
:
'请选择用户组'
}),
'groups'
:
forms
.
SelectMultiple
(
attrs
=
{
'class'
:
'
select2
'
,
'data-placeholder'
:
'请选择用户组'
}),
}
...
...
apps/users/templates/users/_user.html
View file @
3c3fda80
...
...
@@ -2,9 +2,9 @@
{% load static %}
{% load bootstrap %}
{% block custom_head_css_js %}
<link
href=
"{% static "
css
/
plugins
/
chosen
/
chose
n
.
css
"
%}"
rel=
"stylesheet"
>
<link
href=
"{% static "
css
/
plugins
/
select2
/
select2
.
mi
n
.
css
"
%}"
rel=
"stylesheet"
>
<link
href=
"{% static "
css
/
plugins
/
datepicker
/
datepicker3
.
css
"
%}"
rel=
"stylesheet"
>
<script
src=
"{% static "
js
/
plugins
/
chosen
/
chosen
.
jquery
.
min
.
js
"
%}"
></script>
<script
src=
"{% static "
js
/
plugins
/
select2
/
select2
.
full
.
min
.
js
"
%}"
></script>
{% endblock %}
{% block content %}
...
...
@@ -80,16 +80,7 @@
<script
src=
"{% static 'js/plugins/datapicker/bootstrap-datepicker.js' %}"
></script>
<script>
$
(
document
).
ready
(
function
()
{
var
config
=
{
'.chosen-select'
:
{},
'.chosen-select-deselect'
:
{
allow_single_deselect
:
true
},
'.chosen-select-no-single'
:
{
disable_search_threshold
:
10
},
'.chosen-select-no-results'
:
{
no_results_text
:
'Oops, nothing found!'
},
'.chosen-select-width'
:
{
width
:
"95%"
}
};
for
(
var
selector
in
config
)
{
$
(
selector
).
chosen
(
config
[
selector
]);
}
$
(
'.select2'
).
select2
();
$
(
'.input-group.date'
).
datepicker
({
todayBtn
:
"linked"
,
...
...
apps/users/templates/users/user_detail.html
View file @
3c3fda80
...
...
@@ -4,8 +4,8 @@
{% load static %}
{% block custom_head_css_js %}
<link
href=
"{% static "
css
/
plugins
/
chosen
/
chose
n
.
css
"
%}"
rel=
"stylesheet"
>
<script
src=
"{% static "
js
/
plugins
/
chosen
/
chosen
.
jquery
.
min
.
js
"
%}"
></script>
<link
href=
"{% static "
css
/
plugins
/
select2
/
select2
.
mi
n
.
css
"
%}"
rel=
"stylesheet"
>
<script
src=
"{% static "
js
/
plugins
/
select2
/
select2
.
full
.
min
.
js
"
%}"
></script>
{% endblock %}
{% block content %}
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
...
...
@@ -192,7 +192,7 @@
<form>
<tr>
<td
colspan=
"2"
class=
"no-borders"
>
<select
data-placeholder=
"选择用户组"
class=
"
chosen-select
"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
<select
data-placeholder=
"选择用户组"
class=
"
select2
"
style=
"width: 100%"
multiple=
""
tabindex=
"4"
>
{% for group in groups %}
<option
value=
"{{ group.id }}"
>
{{ group.name }}
</option>
{% endfor %}
...
...
@@ -208,7 +208,7 @@
{% for group in user.groups.all %}
<tr>
<td
width=
"40%"
><b
style=
"font-size: medium"
>
{{ group.name }}
</b></td>
<td
><b
>
{{ group.name }}
</b></td>
<td>
<button
class=
"btn btn-danger btn-sm"
type=
"button"
style=
"float: right;"
><i
class=
"fa fa-minus"
></i></button>
</td>
...
...
@@ -230,16 +230,7 @@
{% block custom_foot_js %}
<script>
$
(
document
).
ready
(
function
()
{
var
config
=
{
'.chosen-select'
:
{},
'.chosen-select-deselect'
:
{
allow_single_deselect
:
true
},
'.chosen-select-no-single'
:
{
disable_search_threshold
:
10
},
'.chosen-select-no-results'
:
{
no_results_text
:
'Oops, nothing found!'
},
'.chosen-select-width'
:
{
width
:
"95%"
}
};
for
(
var
selector
in
config
)
{
$
(
selector
).
chosen
(
config
[
selector
]);
}
$
(
'.select2'
).
select2
();
})
</script>
{% endblock %}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment