downloaded new jquery-ui version 1.14.2 using theme from OpenDRS
@@ -1,195 +1,219 @@
|
||||
OpenDRS - Online Discrepancy Reporting System
|
||||
CHANGELOG
|
||||
OpenLog Online Logbook
|
||||
Copyright (C) 2026 Rod Wright
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
1.0 - 2000-??-??
|
||||
- Initial release.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Changelog
|
||||
2.0 - 2001-??-??
|
||||
- Added referencing capability
|
||||
- Various bugfixes
|
||||
|
||||
1.0.0 - 2018-03-13
|
||||
- Initial release as OpenMTS.
|
||||
2.2 - 2002-??-??
|
||||
- Added day navigation links at top of screen to replace forward and
|
||||
back buttons.
|
||||
- Added printer friendly functionality.
|
||||
- Various bugfixes.
|
||||
|
||||
1.1.0 - 2018-05-10
|
||||
- Name change from OpenMTS to OpenDRS.
|
||||
- Added "Go Back" button to left side menu to make up for loss of browser
|
||||
back button in terminal mode.
|
||||
- Added configurable help text for period effective selection.
|
||||
- Changed Sim period effective from selection to yes/no radio buttons.
|
||||
- Writeup groups page shows collapsed list of groups. Click the expand
|
||||
icon to expand each group.
|
||||
- Fixed bug where entries made on stale create page had inaccurate
|
||||
date/time.
|
||||
- For logged in users, added the ability to select writeups directly on
|
||||
the View All Writeups page and assign/create a group.
|
||||
- On the Create New Writeup page, removed the default selections for
|
||||
Device, Subsystem, and Period dropdowns, forcing user to make a
|
||||
selection.
|
||||
- Added a Today button to the View All Writeups page
|
||||
- Changed the Period dropdowns on the Create, Search, and Group pages to
|
||||
show the times instead of the period numbers. Period numbers are
|
||||
still shown in the results tables with mouse hover showing times.
|
||||
- Moved all installation/upgrade functions to the install.sh script.
|
||||
|
||||
1.1.1 - 2020-04-09
|
||||
- Fixed opendrs-update.sql to rename the trainers table.
|
||||
- Fixed bug where the About page didn't show the version number.
|
||||
- Fixed some grammar on the About page.
|
||||
- Fixed hardcoded help text in groups.php to use constant from config.
|
||||
- Added ID to searchable parameters in search.php.
|
||||
- Added sort parameters to search results.
|
||||
- Added a link for Admins to access the local Webmin to manage a terminal.
|
||||
- For Raspberry Pi:
|
||||
- In terminal setup, provided missing .profile and
|
||||
.config/openbox/rc.xml files.
|
||||
- In server setup, install mariadb-server since
|
||||
mysql-server is obsolete.
|
||||
- Changed startdrs.sh to re-enable ctrl keys for copy/paste, etc. Also
|
||||
added chromium flags to prevent update popup.
|
||||
- Added openbox keybindings to customer user's rc.xml to trap dangerous
|
||||
chromium hotkey combinations and enable ctrl-alt-del reboot.
|
||||
- Changed systemd ctrl-alt-del.target symlink to point to
|
||||
reboot.target.
|
||||
|
||||
1.1.2 - 2021-04-28
|
||||
- Added ability to export search results as a CSV file.
|
||||
- Fixed bug in server-setup.sh that resulted in an incorrect install
|
||||
location if the installation name was left at the default.
|
||||
- Fixed bug in server-setup.sh that resulted in failure to set the
|
||||
ownership of the installed server directory tree if the http
|
||||
user and group names were left at the default.
|
||||
- Updated and tested to support Raspberry Pi 4B hardware.
|
||||
3.0 - 2005-03-12
|
||||
- Total redesign of pages.
|
||||
- Replaced day navigation links with clickable calendar.
|
||||
- Improved search page by putting the search criteria and results on
|
||||
the same page.
|
||||
- Made various notices and error messages consistent.
|
||||
- Simplified reference chain display on main page by removing
|
||||
referenced note numbers and adding a magnifying glass icon
|
||||
that takes you to the reference chain page. Referenced note
|
||||
numbers still available on reference chain page.
|
||||
- Added a plus sign icon to the note on the main page and reference
|
||||
chain page so that you don't have to go to the edit page to
|
||||
add a note referencing the current note.
|
||||
- Many, many, many code cleanups.
|
||||
- Now works with standard php configuration. No longer requires
|
||||
register_globals to be turned on.
|
||||
- simplified the printer friendly functionality.
|
||||
- Added link management functionality.
|
||||
|
||||
1.2.0 - 2021-05-05
|
||||
- Added ability to customize the terminology used for Device,
|
||||
Period, and Effective/Non-effective to make OpenDRS usable in
|
||||
a wider range of applications.
|
||||
3.1 - 2005-03-28
|
||||
- Fixed bug where the footer message was not being displayed.
|
||||
- Fixed bug that caused the contents of some fields in tables to be
|
||||
halfway down the field (and possibly off-screen and not
|
||||
visible) when the contents of other fields were very long.
|
||||
- Fixed bug where links show up on the printer friendly main page.
|
||||
|
||||
1.3.0 - 2022-03-05
|
||||
- Made several improvements to group functionality. The Writeup Groups
|
||||
page now displays all groups in a table instead of individually
|
||||
expandable sections. On the View Writeups and View Open Writeups
|
||||
pages, if a writeup is a member of only one group, clicking the
|
||||
icon will take you to the page for that group. If a writeup is
|
||||
a member of multiple groups, clicking the icon will take you to
|
||||
the detail page for that writeup where you can view or modify which
|
||||
groups the writeup is a member of. On the Search page, you can
|
||||
now choose which group(s) the results should include.
|
||||
- Made some improvements to the installation process for Raspberry Pi
|
||||
setup to accomodate the latest version of Raspberry Pi OS.
|
||||
- If setting up as a Raspberry Pi terminal/server, included the option
|
||||
to make the terminal a wireless access point if it connects to an
|
||||
ethernet network.
|
||||
3.2 - 2005-03-30
|
||||
- Fixed inconsistent prompt text on search page.
|
||||
- Fixed problem of whitespace characters at beginning and end of
|
||||
search text being included in the where clause resulting in
|
||||
no results returned.
|
||||
- Fixed incorrect version number on about page.
|
||||
- Moved openlog.sql into the utilities directory with all the other
|
||||
one-time use stuff. Updated docs accordingly.
|
||||
|
||||
1.3.1 - 2022-05-11
|
||||
- Updated installation scripts and instructions to reflect changes in
|
||||
Raspberry Pi OS Release 2022-04-04.
|
||||
|
||||
1.3.2 - 2022-08-08
|
||||
- Fixed typo in dbadmin.php that prevented adding new When Discovered
|
||||
items.
|
||||
- Fixed bug in create.php that prevented the page from working.
|
||||
- Fixed bug in config.php that prevented banners from being modified.
|
||||
- Fixed bug where action_by and action_reason were not preselected for
|
||||
subsequent searches in search.php.
|
||||
- Fixed bug in about.php and gpl.php that still used old $mts_db
|
||||
database handle.
|
||||
- Removed the server session directory option in config.php
|
||||
Miscellaneous settings. For this to make sense, you'd have to have
|
||||
shell access to the server and if that's the case, you'd be able
|
||||
to make the necessary database changes as well.
|
||||
- Fixed opendrs-initial.sql to make the default banner colors match
|
||||
the ones in common.php.
|
||||
- Created changelog.php for use by the "changes" link on the About
|
||||
page so kiosk terminal users don't get dead-ended in the CHANGELOG
|
||||
text file with no way to get back to the app.
|
||||
- Extensive code cleanups/updates in all php files to make application
|
||||
compatible with php8 and eliminate php warnings in apache2 error
|
||||
log file.
|
||||
- For Raspberry Pi:
|
||||
- Updated server-setup.sh to attempt to install the php-mysqli package
|
||||
for compatibility with php8.
|
||||
- Chromium browser will use the printer designated as the local
|
||||
default if it is selected as such in the Cups printer
|
||||
configuration.
|
||||
3.3 - 2005-06-02
|
||||
- Fixed printer friendly pages so they do not show the navigation and
|
||||
forms. This prevents the note column from being compressed to
|
||||
just a few characters wide when printed.
|
||||
|
||||
1.3.3 - 2023-10-03
|
||||
- Restricted the ability to change the report date and time when
|
||||
creating or editing a writeup to only logged in users. This is to
|
||||
prevent reporters from backdating writeups, causing them to possibly
|
||||
be missed.
|
||||
- For Raspberry Pi:
|
||||
- Updated the Webmin custom command scripts to use whatever user is
|
||||
logged into Webmin instead of the user "pi" which may not exist
|
||||
if rpi-imager options were used to set a different initial user
|
||||
when the SD card was created.
|
||||
3.4 - 2007-01-04
|
||||
- Fixed bug where items in dropdown lists were displayed in some
|
||||
random order. Now they are shown in the order they were added
|
||||
on the administration page.
|
||||
- Fixed bug where the reference links on the reference chain page
|
||||
didn't work. They took you to the search page, which was
|
||||
redundant and produced "no notes match criteria" message.
|
||||
Links in references column now take you to the edit page
|
||||
for the linked note.
|
||||
- Added a security classification banner function that displays an
|
||||
appropriately colored and labeled banner at the top and
|
||||
bottom of all pages that display anything from the database.
|
||||
Banner is controlled in the config.php file.
|
||||
|
||||
1.4.0 - 2024-05-09
|
||||
- Updated the installer script (install.sh) to check for and install the
|
||||
prerequisites (apache, php, mariadb/mysql) and optional packages
|
||||
(webmin, phpmyadmin).
|
||||
- Added an access mode setting. The access mode should be "untrusted" if
|
||||
OpenDRS is exposed to an untrusted environment such as the internet.
|
||||
Untrusted mode requires a login to access any part of the application.
|
||||
The access mode should be "trusted" when the application is used
|
||||
in a trusted environment where anybody on the network can
|
||||
create/edit writeups and search the database, with a login required
|
||||
for everything else.
|
||||
- On the View All Writeups pages, replaced the "Last 7 days" and
|
||||
"Last 30 days" buttons with a dropdown with more options, including
|
||||
future dates so that OpenDRS can be more useful for things like
|
||||
preventive maintenance.
|
||||
- Changed the global font to a sans-serif font.
|
||||
- For Raspberry Pi:
|
||||
- Removed the Raspberry Pi terminal setup from OpenDRS. Setting up
|
||||
a Raspberry Pi as a terminal for OpenDRS can now be accomplished
|
||||
by installing the OpenKiosk application.
|
||||
- Removed the Raspberry Pi server setup from OpenDRS. Setting up
|
||||
a Raspberry Pi as an OpenDRS server is easily accomplished by
|
||||
the OpenDRS installer.
|
||||
3.5 - 2008-01-02
|
||||
- Added a time field to the database. It works like the date, i.e.,
|
||||
it automatically fills with the current time of the database
|
||||
server, but may be changed on the add entry and edit pages if
|
||||
desired. YOU MUST RUN THE dbupdate-3.5.sql UTILITY AS
|
||||
DESCRIBED IN THE UPGRADE FILE OR YOUR
|
||||
PAGES WILL NOT DISPLAY CORRECTLY! Your database will not be
|
||||
damaged if you omit this step, but the logbook will not be
|
||||
much use. If you are installing OpenLog for the first time,
|
||||
you will not need to run the update utility, since the initial
|
||||
database creation takes care of it.
|
||||
|
||||
1.4.1 - 2024-06-18
|
||||
- Updated the installer script (install.sh) to check for and install the
|
||||
package supplying uuidgen. If uuidgen is not present, the mysql
|
||||
user would be created with a blank password.
|
||||
3.6 - 2008-01-30
|
||||
- The timestamp field added in version 3.5 was not universally popular.
|
||||
Added an option to the config file to select whether to show it
|
||||
on the main page (it will still be inserted into the database
|
||||
and remain editable).
|
||||
- Added a configurable logbook name. You can now set the name of the
|
||||
logbook in the config file so if you are running multiple
|
||||
logbooks, you'll know which one you're looking at.
|
||||
- Added options in the config file to determine the displayed order
|
||||
of employee names and subject names.
|
||||
|
||||
1.4.2 - 2024-06-27
|
||||
- Fixed bug introduced in version 1.4.1 in writeups.php where open
|
||||
writeups prior to the current day weren't displayed on the
|
||||
"View Open Writeups" page.
|
||||
- Removed open, closed, and deferred constant definitions from common.php
|
||||
since only one was ever used, and that in only one place.
|
||||
4.0 - 2008-02-20
|
||||
- Moved all configuration from a file (config.php) to a table in the
|
||||
database. Added a configuration page so that all configuration
|
||||
can be done in the web browser.
|
||||
- Techs can now tell OpenLog to remember who they are using a browser
|
||||
cookie. Techs can set their current shift, and the Add Entry
|
||||
page will preselect the tech and shift. Also added a
|
||||
customization page so that each tech can have their own color
|
||||
scheme, etc.
|
||||
- Created an installation shell script that automates the task of
|
||||
getting the distribution in the right place in the filesystem
|
||||
with the correct file ownership.
|
||||
- Created a php installation/upgrade routine that detects whether the
|
||||
distribution has been configured and prompts for the database
|
||||
name/logbook name etc. OpenLog either sets up a new
|
||||
installation or upgrades an existing configuration without the
|
||||
user having to deal with command prompt stuff.
|
||||
|
||||
1.4.3 - 2025-02-27
|
||||
- Poorly documented changes in the previous three versions resulted
|
||||
in confusion about when the date range selection dropdown should
|
||||
appear on the View Open Writeups and View All Writeups pages.
|
||||
Since the View Open Writeups page seemed redundant (all that info
|
||||
was available on the View All Writeups page) removed the View
|
||||
Open Writeups page entirely. The writeups page now shows all
|
||||
writeups for the selected date range, or today if no dates are
|
||||
specified.
|
||||
4.1 - 2008-02-26
|
||||
- Fixed copyright dates in all files.
|
||||
- Fixed bug where backslashes appeared in notes on systems where
|
||||
magic_quotes_gpc was turned on.
|
||||
- Fixed bug where custom tech name was inserted on new or edited
|
||||
notes even when another tech name was selected.
|
||||
- Fixed install.sh script to not show hostname in url in final
|
||||
instructions since it was not reliable.
|
||||
- Fixed bug where timestamps for notes entered for past or future
|
||||
dates were set to the time the note was entered. This made
|
||||
notes entered last night appear after notes made this morning
|
||||
on the main page.
|
||||
- Trimmed all text files (including this one;-) to 80 columns so they
|
||||
wouldn't produce wierd line spacing on terminal displays.
|
||||
|
||||
1.4.4 - 2025-12-10
|
||||
- Fixed bug in writeupdetail.php that emerged with installation on a
|
||||
system using MariaDB-10.11.14. A fatal error occurred when
|
||||
trying to insert a null value into the action_reason field of
|
||||
the writeups table (you left the action reason dropdown blank).
|
||||
Previous versions just left it as is without complaint.
|
||||
4.2 - 2008-03-08
|
||||
- Fixed About page to accurately describe configuration changes.
|
||||
- URLs entered as http://domain.com are automatically converted to
|
||||
clickable links in the note text.
|
||||
- Added configuration setting to control the size of chunks to break
|
||||
long url strings into, preventing a long url from distorting
|
||||
the page.
|
||||
- Reversed the chronological order of the CHANGELOG file so the
|
||||
newest stuff is at the top.
|
||||
|
||||
1.4.5 - 2025-12-16
|
||||
- Various problems were noted resulting from php's use of UTC as the
|
||||
4.3 - 2013-03-15
|
||||
- Fixed install.sh script to make it detect the httpd process name
|
||||
and user instead of using hardcoded values.
|
||||
|
||||
5.0 - 2015-08-10
|
||||
- Reworked install.sh script to remove web server version specific
|
||||
defaults.
|
||||
- Added install.bat script to handle installation on Windows servers.
|
||||
- Added PHP sessions to enable tech logins and privilege separation.
|
||||
- Added maintenance form and parts tracking functionality.
|
||||
- Added the ability to set flags for notes and maintenance forms.
|
||||
- Improved search capability.
|
||||
|
||||
5.1 - 2015-11-17
|
||||
- Added scheduled maintenance functionality.
|
||||
|
||||
5.1.1 - 2016-01-28
|
||||
- Various bugfixes
|
||||
|
||||
5.2.0 - 2016-10-18
|
||||
- Use jquery-ui for calendaring functions
|
||||
- Replaced deprecated php functions split() and ereg*() with
|
||||
explode() and preg*() functions to make OpenLog compatible
|
||||
with php 7.
|
||||
- Added a field to the logentry page to allow the user to insert a
|
||||
properly formatted URL into a note.
|
||||
|
||||
5.2.1 - 2024-07-09
|
||||
- Removed install.php and moved installation/upgrade process to
|
||||
install.sh shell script with default database files and a db.php
|
||||
template file.
|
||||
- Various compatibility fixes to make OpenLog work with php-8.x.
|
||||
|
||||
5.2.2 - 2025-02-26
|
||||
- Removed corrupt line from the beginning of database-initial.sql
|
||||
that caused the population of the database to fail during
|
||||
install. Upgrades not affected.
|
||||
- Changed functions.php so that the application uses a sans-serif
|
||||
font by default.
|
||||
|
||||
5.2.3 - 2025-12-01
|
||||
- In lognotes.php, get today's data from the database instead of the
|
||||
php date() function, since that had returned tomorrow's date in
|
||||
some instances.
|
||||
- In logentry.php, only run parts code if parts functionality is
|
||||
enabled. This prevents a fatal php error that occurred when
|
||||
trying to get the max value of an empty array.
|
||||
- In settings.php, the LOG_ERRORS constant was not being read
|
||||
properly. Assigned its value to a variable to be used in the if
|
||||
statement.
|
||||
|
||||
5.2.4 - 2025-12-02
|
||||
- In logentry.php, the parts bug from 5.2.2 was only partially
|
||||
fixed. Made the corrections to the edit code as well as the
|
||||
new entry.
|
||||
- In logentry.php, the default times for notes entered using dates
|
||||
other than today's date contained a trailing colon that mysql
|
||||
didn't like. Removed trailing colons.
|
||||
- Cleaned up the REQUEST importation in multiple files to default to
|
||||
NULL values for parameters not supplied to prevent warning
|
||||
messages in the logs.
|
||||
- In the install.sh script, removed the prompts for optional package
|
||||
installation. Code is still there, just turned off by default.
|
||||
|
||||
5.2.4.1 - 2025-12-10
|
||||
- Fixed bug in search.php where "Print search results" link on the
|
||||
search results page resulted in the printable page not showing
|
||||
any results. This was due to a php fatal error caused by passing
|
||||
a non-array as the second argument of the php in_array()
|
||||
function.
|
||||
|
||||
5.2.4.2 - 2025-12-11
|
||||
- Fixed other bugs caused by passing a non-array as the second
|
||||
argument of the php in_array() function in various files.
|
||||
|
||||
5.2.4.3 - 2025-12-16
|
||||
- Various problems were noted resulting from php's use of UTC as the
|
||||
default timezone. Now, on installation or upgrade, the installer
|
||||
gets the correct timezone from the system and sets it as a php
|
||||
option in a .htaccess file in the install location. This solves
|
||||
@@ -200,21 +224,71 @@ Changelog
|
||||
allow apache to read the .htaccess file to the <Directory>
|
||||
section of the application's conf file in
|
||||
/etc/apache2/conf-available
|
||||
- Renamed the installer's opendrs-update.sh script to files_update.sh
|
||||
to align with the standardized installation process used by
|
||||
other applications.
|
||||
- Changed the install.sh script to align with the standardized
|
||||
installation process used by other applications.
|
||||
- Renamed the installer's db.php_update.sh script to files-update.sh
|
||||
to reflect that it now can do more than just modify the db.php
|
||||
file. For this version, it's used to modify the apache conf file
|
||||
mentioned earlier.
|
||||
- Completely removed the optional package prompting/installation
|
||||
code from install.sh. This is best done using separate
|
||||
installers.
|
||||
|
||||
1.4.6 - 2026-02-06
|
||||
- Fixed bug in group_detail() function in common.php where the link
|
||||
members were being sorted by linkid instead of writeupid. This
|
||||
caused the group writeup table to be ordered based on when the
|
||||
writeup was added to the group instead of in the logical writeup
|
||||
order.
|
||||
5.2.4.4 - 2025-12-19
|
||||
-Fixed bugs that caused crashes on the Scheduled Maintenance page
|
||||
that were caused by more strict behavior of php regarding mysql
|
||||
queries.
|
||||
- Fixed bug where some functions defined in functions.php were not
|
||||
treating the $today variable as global.
|
||||
- In install.php, if a previous installation was found, make upgrade
|
||||
the default choice.
|
||||
|
||||
1.4.7 - 2026-03-03
|
||||
- Fixed bug reported as Issue 1 where clicking the Show Printable
|
||||
button on the search results page resulted in the results not
|
||||
being shown on the printable page.
|
||||
5.2.5 - 2026-02-10
|
||||
This is just a version number bump to get on a major-minor-patch
|
||||
scheme. There are no code changes for this release.
|
||||
|
||||
5.3.0 - 2026-02-20
|
||||
- Moved the template Create/Copy/Edit/Delete/Rename functionality to
|
||||
its own page to make it less confusing and to fix some strange
|
||||
behavior.
|
||||
- Added global templates which can be used by anyone but can only be
|
||||
created, modified, or deleted by administrators. This makes it
|
||||
easier to employ standardized templates.
|
||||
- Changed the character encoding of the database to utf8mb4 to enable
|
||||
using emojis in text fields.
|
||||
- Changed the insert link functionality. There are now two fields, link
|
||||
text, and URL. The full URL string will now not be displayed in the
|
||||
note, since it frequently was too long and deformed the table,
|
||||
causing the user to have to scroll right to see the entire note. If
|
||||
a URL is entered in the URL field and no link text is entered in the
|
||||
link text field, the link will show up as just the last part of the
|
||||
URL. For example, "http://somewhere.com/myfile.pdf" will show as
|
||||
"myfile.pdf" in the note text. If text is entered in the link text
|
||||
field, that is what will show as the clickable link in the note text.
|
||||
NOTE: URLs in previously entered notes will not automatically be
|
||||
converted.
|
||||
- Changed the flag handling code to no longer dynamically create flag_
|
||||
tables in the database to track assignments. This is now done using
|
||||
a flagmap table.
|
||||
NOTE: The database will be modified to support this and the
|
||||
importation of the previous data will take some time during
|
||||
installation.
|
||||
- References will no longer be stored in the lognotes table with the note.
|
||||
There is now a reflinks table that stores the link information.
|
||||
NOTE: The database will be modified to support this and the
|
||||
importation of the previous data will take some time during
|
||||
installation.
|
||||
- Various code cleanups to prevent php warnings in the logs if logging
|
||||
is enabled.
|
||||
- Validate all date and time fields to prevent user entered invalid date
|
||||
formats from crashing php.
|
||||
- Fixed profile page to automatically refresh page to show the results
|
||||
when a user changes their color preferences.
|
||||
|
||||
5.3.1 - 2026-02-25
|
||||
- Fixed bug reported as Issue 1 where failure to select an action for a
|
||||
part entered in a lognote crashed php in logentry.php.
|
||||
- Fixed bug where the prompt to set flags on reference chain appeared
|
||||
even when no flags were available to select in logentry.php.
|
||||
|
||||
5.3.2 - 2026-03-02
|
||||
- Fixed bug reported as Issue 2 where printing search results resulted in
|
||||
the flags selection was being ignored.
|
||||
|
||||
|
Before Width: | Height: | Size: 316 B |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 276 B |
|
Before Width: | Height: | Size: 338 B |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
7
distfiles/jquery-ui-1.12.1/jquery-ui.min.css
vendored
13
distfiles/jquery-ui-1.12.1/jquery-ui.min.js
vendored
@@ -1,26 +0,0 @@
|
||||
.ui-multiselect { padding:2px 0 2px 4px; text-align:left }
|
||||
.ui-multiselect span.ui-icon { float:right }
|
||||
.ui-multiselect-single .ui-multiselect-checkboxes input { left:-9999px; position:absolute !important; top: auto !important; }
|
||||
.ui-multiselect-single .ui-multiselect-checkboxes label { padding:5px !important }
|
||||
|
||||
.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px; }
|
||||
.ui-multiselect-header ul { font-size:0.9em }
|
||||
.ui-multiselect-header ul li { float:left; padding:0 10px 0 0; }
|
||||
.ui-multiselect-header a { text-decoration:none; }
|
||||
.ui-multiselect-header a:hover { text-decoration:underline; }
|
||||
.ui-multiselect-header span.ui-icon { float:left; }
|
||||
.ui-multiselect-header .ui-multiselect-close { float:right; padding-right:0; text-align:right; }
|
||||
|
||||
.ui-multiselect-menu { display:none; padding:3px; position:absolute; text-align: left; }
|
||||
.ui-multiselect-checkboxes { overflow-y:auto; position:relative; }
|
||||
.ui-multiselect-checkboxes label { border:1px solid transparent; cursor:default; display:block; padding:3px 1px; }
|
||||
.ui-multiselect-checkboxes label input { position:relative; top:1px }
|
||||
.ui-multiselect-checkboxes label img { height: 30px; vertical-align: middle; padding-right: 3px;}
|
||||
.ui-multiselect-checkboxes li { clear:both; font-size:0.9em; list-style: none; padding-right:3px; }
|
||||
.ui-multiselect-checkboxes .ui-multiselect-optgroup { padding: 3px; }
|
||||
.ui-multiselect-columns { display: inline-block; vertical-align: top; }
|
||||
.ui-multiselect-checkboxes .ui-multiselect-optgroup a { border-bottom:1px solid; cursor: pointer; display:block; font-weight:bold; margin:1px 0; padding:3px; text-align:center; text-decoration:none; }
|
||||
|
||||
@media print{
|
||||
.ui-multiselect-menu {display: none;}
|
||||
}
|
||||
@@ -1,986 +0,0 @@
|
||||
/* jshint forin:true, noarg:true, noempty:true, eqeqeq:true, boss:true, undef:true, curly:true, browser:true, jquery:true */
|
||||
/*
|
||||
* jQuery MultiSelect UI Widget 2.0.1
|
||||
* Copyright (c) 2012 Eric Hynds
|
||||
*
|
||||
* Depends:
|
||||
* - jQuery 1.4.2+
|
||||
* - jQuery UI 1.11 widget factory
|
||||
*
|
||||
* Optional:
|
||||
* - jQuery UI effects
|
||||
* - jQuery UI position utility
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
*/
|
||||
(function($, undefined) {
|
||||
// Counter used to prevent collisions
|
||||
var multiselectID = 0;
|
||||
var $doc = $(document);
|
||||
|
||||
$.widget("ech.multiselect", {
|
||||
|
||||
// default options
|
||||
options: {
|
||||
header: true,
|
||||
height: 175,
|
||||
minWidth: 225,
|
||||
classes: '',
|
||||
checkAllText: 'Check all',
|
||||
uncheckAllText: 'Uncheck all',
|
||||
noneSelectedText: 'Select options',
|
||||
showCheckAll: true,
|
||||
showUncheckAll: true,
|
||||
selectedText: '# selected',
|
||||
selectedList: 0,
|
||||
closeIcon: 'ui-icon-circle-close',
|
||||
show: null,
|
||||
hide: null,
|
||||
autoOpen: false,
|
||||
multiple: true,
|
||||
position: {},
|
||||
appendTo: null,
|
||||
menuWidth:null,
|
||||
selectedListSeparator: ', ',
|
||||
disableInputsOnToggle: true,
|
||||
groupColumns: false
|
||||
},
|
||||
|
||||
// This method determines which element to append the menu to
|
||||
// Uses the element provided in the options first, then looks for ui-front / dialog
|
||||
// Otherwise appends to the body
|
||||
_getAppendEl: function() {
|
||||
var element = this.options.appendTo;
|
||||
if(element) {
|
||||
element = element.jquery || element.nodeType ? $(element) : this.document.find(element).eq(0);
|
||||
}
|
||||
if(!element || !element[0]) {
|
||||
element = this.element.closest(".ui-front, dialog");
|
||||
}
|
||||
if(!element.length) {
|
||||
element = this.document[0].body;
|
||||
}
|
||||
return element;
|
||||
},
|
||||
|
||||
// Performs the initial creation of the widget
|
||||
_create: function() {
|
||||
var el = this.element;
|
||||
var o = this.options;
|
||||
|
||||
this.speed = $.fx.speeds._default; // default speed for effects
|
||||
this._isOpen = false; // assume no
|
||||
this.inputIdCounter = 0; // Incremented for each input item (option)
|
||||
|
||||
// create a unique namespace for events that the widget
|
||||
// factory cannot unbind automatically. Use eventNamespace if on
|
||||
// jQuery UI 1.9+, and otherwise fallback to a custom string.
|
||||
this._namespaceID = this.eventNamespace || ('multiselect' + multiselectID);
|
||||
// bump unique ID after assigning it to the widget instance
|
||||
this.multiselectID = multiselectID++;
|
||||
|
||||
// The button that opens the widget menu
|
||||
var button = (this.button = $('<button type="button"><span class="ui-icon ui-icon-triangle-1-s"></span></button>'))
|
||||
.addClass('ui-multiselect ui-widget ui-state-default ui-corner-all ' + o.classes)
|
||||
.attr({ 'title':el.attr('title'), 'tabIndex':el.attr('tabIndex'), 'id': el.attr('id') ? el.attr('id') + '_ms' : null })
|
||||
.prop('aria-haspopup', true)
|
||||
.insertAfter(el);
|
||||
|
||||
this.buttonlabel = $('<span />')
|
||||
.html(o.noneSelectedText)
|
||||
.appendTo(button);
|
||||
|
||||
// This is the menu that will hold all the options
|
||||
this.menu = $('<div />')
|
||||
.addClass('ui-multiselect-menu ui-widget ui-widget-content ui-corner-all ' + o.classes)
|
||||
.appendTo(this._getAppendEl());
|
||||
|
||||
// Menu header to hold controls for the menu
|
||||
this.header = $('<div />')
|
||||
.addClass('ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix')
|
||||
.appendTo(this.menu);
|
||||
|
||||
// Header controls, will contain the check all/uncheck all buttons
|
||||
// Depending on how the options are set, this may be empty or simply plain text
|
||||
this.headerLinkContainer = $('<ul />')
|
||||
.addClass('ui-helper-reset')
|
||||
.html(function() {
|
||||
if(o.header === true) {
|
||||
var header_lis = '';
|
||||
if(o.showCheckAll) {
|
||||
header_lis = '<li><a class="ui-multiselect-all" href="#"><span class="ui-icon ui-icon-check"></span><span>' + o.checkAllText + '</span></a></li>';
|
||||
}
|
||||
if(o.showUncheckAll) {
|
||||
header_lis += '<li><a class="ui-multiselect-none" href="#"><span class="ui-icon ui-icon-closethick"></span><span>' + o.uncheckAllText + '</span></a></li>';
|
||||
}
|
||||
return header_lis;
|
||||
} else if(typeof o.header === "string") {
|
||||
return '<li>' + o.header + '</li>';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
})
|
||||
.append('<li class="ui-multiselect-close"><a href="#" class="ui-multiselect-close"><span class="ui-icon '+o.closeIcon+'"></span></a></li>')
|
||||
.appendTo(this.header);
|
||||
|
||||
// Holds the actual check boxes for inputs
|
||||
var checkboxContainer = (this.checkboxContainer = $('<ul />'))
|
||||
.addClass('ui-multiselect-checkboxes ui-helper-reset')
|
||||
.appendTo(this.menu);
|
||||
|
||||
this._bindEvents();
|
||||
|
||||
// build menu
|
||||
this.refresh(true);
|
||||
|
||||
// If this is a single select widget, add the appropriate class
|
||||
if(!o.multiple) {
|
||||
this.menu.addClass('ui-multiselect-single');
|
||||
}
|
||||
el.hide();
|
||||
},
|
||||
|
||||
// https://api.jqueryui.com/jquery.widget/#method-_init
|
||||
_init: function() {
|
||||
if(this.options.header === false) {
|
||||
this.header.hide();
|
||||
}
|
||||
if(!this.options.multiple) {
|
||||
this.headerLinkContainer.find('.ui-multiselect-all, .ui-multiselect-none').hide();
|
||||
} else {
|
||||
this.headerLinkContainer.find('.ui-multiselect-all, .ui-multiselect-none').show();
|
||||
}
|
||||
if(this.options.autoOpen) {
|
||||
this.open();
|
||||
}
|
||||
if(this.element.is(':disabled')) {
|
||||
this.disable();
|
||||
}
|
||||
},
|
||||
|
||||
/*
|
||||
* Builds an option item for the menu
|
||||
* <li>
|
||||
* <label>
|
||||
* <input /> checkbox or radio depending on single/multiple select
|
||||
* <span /> option text
|
||||
* </label>
|
||||
* </li>
|
||||
*/
|
||||
_makeOption: function(option) {
|
||||
var title = option.title ? option.title : null;
|
||||
var value = option.value;
|
||||
var id = this.element.attr('id') || this.multiselectID; // unique ID for the label & option tags
|
||||
var inputID = 'ui-multiselect-' + this.multiselectID + '-' + (option.id || id + '-option-' + this.inputIdCounter++);
|
||||
var isDisabled = option.disabled;
|
||||
var isSelected = option.selected;
|
||||
var labelClasses = [ 'ui-corner-all' ];
|
||||
var liClasses = [];
|
||||
var o = this.options;
|
||||
|
||||
if(isDisabled) {
|
||||
liClasses.push('ui-multiselect-disabled');
|
||||
labelClasses.push('ui-state-disabled');
|
||||
}
|
||||
if(option.className) {
|
||||
liClasses.push(option.className);
|
||||
}
|
||||
if(isSelected && !o.multiple) {
|
||||
labelClasses.push('ui-state-active');
|
||||
}
|
||||
|
||||
var $item = $("<li/>").addClass(liClasses.join(' '));
|
||||
var $label = $("<label/>").attr({
|
||||
"for": inputID,
|
||||
"title": title
|
||||
}).addClass(labelClasses.join(' ')).appendTo($item);
|
||||
var $input = $("<input/>").attr({
|
||||
"name": "multiselect_" + id,
|
||||
"type": o.multiple ? "checkbox" : "radio",
|
||||
"value": value,
|
||||
"title": title,
|
||||
"id": inputID,
|
||||
"checked": isSelected ? "checked" : null,
|
||||
"aria-selected": isSelected ? "true" : null,
|
||||
"disabled": isDisabled ? "disabled" : null,
|
||||
"aria-disabled": isDisabled ? "true" : null
|
||||
}).data($(option).data()).appendTo($label);
|
||||
|
||||
var $span = $("<span/>").text($(option).text());
|
||||
if($input.data("image-src")) {
|
||||
$span.prepend($("<img/>").attr({"src": $input.data("image-src")}));
|
||||
}
|
||||
$span.appendTo($label);
|
||||
|
||||
return $item;
|
||||
},
|
||||
// Builds a menu item for each option in the underlying select
|
||||
// Option groups are built here as well
|
||||
_buildOptionList: function(element, $appendTo) {
|
||||
var self = this;
|
||||
element.children().each(function() {
|
||||
var $this = $(this);
|
||||
if(this.tagName === 'OPTGROUP') {
|
||||
var $optionGroup = $("<ul/>").addClass('ui-multiselect-optgroup ' + this.className).appendTo($appendTo);
|
||||
if(self.options.groupColumns) {
|
||||
$optionGroup.addClass("ui-multiselect-columns");
|
||||
}
|
||||
$("<a/>").text(this.getAttribute('label')).appendTo($optionGroup);
|
||||
self._buildOptionList($this, $optionGroup);
|
||||
} else {
|
||||
var $listItem = self._makeOption(this).appendTo($appendTo);
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
// Refreshes the widget to pick up changes to the underlying select
|
||||
// Rebuilds the menu, sets button width
|
||||
refresh: function(init) {
|
||||
var self = this;
|
||||
var el = this.element;
|
||||
var o = this.options;
|
||||
var menu = this.menu;
|
||||
var checkboxContainer = this.checkboxContainer;
|
||||
var $dropdown = $("<ul/>").addClass('ui-multiselect-checkboxes ui-helper-reset');
|
||||
this.inputIdCounter = 0;
|
||||
|
||||
|
||||
// update header link container visibility if needed
|
||||
if (this.options.header) {
|
||||
if(!this.options.multiple) {
|
||||
this.headerLinkContainer.find('.ui-multiselect-all, .ui-multiselect-none').hide();
|
||||
} else {
|
||||
this.headerLinkContainer.find('.ui-multiselect-all, .ui-multiselect-none').show();
|
||||
}
|
||||
}
|
||||
|
||||
this._buildOptionList(el, $dropdown);
|
||||
|
||||
this.menu.find(".ui-multiselect-checkboxes").remove();
|
||||
this.menu.append($dropdown);
|
||||
|
||||
// cache some moar useful elements
|
||||
this.labels = menu.find('label');
|
||||
this.inputs = this.labels.children('input');
|
||||
|
||||
this._setButtonWidth();
|
||||
|
||||
this.update(true);
|
||||
|
||||
// broadcast refresh event; useful for widgets
|
||||
if(!init) {
|
||||
this._trigger('refresh');
|
||||
}
|
||||
},
|
||||
|
||||
// updates the button text. call refresh() to rebuild
|
||||
update: function(isDefault) {
|
||||
var o = this.options;
|
||||
var $inputs = this.inputs;
|
||||
var $checked = $inputs.filter(':checked');
|
||||
var numChecked = $checked.length;
|
||||
var value;
|
||||
|
||||
if(numChecked === 0) {
|
||||
value = o.noneSelectedText;
|
||||
} else {
|
||||
if($.isFunction(o.selectedText)) {
|
||||
value = o.selectedText.call(this, numChecked, $inputs.length, $checked.get());
|
||||
} else if(/\d/.test(o.selectedList) && o.selectedList > 0 && numChecked <= o.selectedList) {
|
||||
value = $checked.map(function() { return $(this).next().text(); }).get().join(o.selectedListSeparator);
|
||||
} else {
|
||||
value = o.selectedText.replace('#', numChecked).replace('#', $inputs.length);
|
||||
}
|
||||
}
|
||||
|
||||
this._setButtonValue(value);
|
||||
if(isDefault) {
|
||||
this.button[0].defaultValue = value;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
// this exists as a separate method so that the developer
|
||||
// can easily override it, usually to allow injecting HTML if they really want it
|
||||
_setButtonValue: function(value) {
|
||||
this.buttonlabel.text(value);
|
||||
},
|
||||
|
||||
_bindButtonEvents: function() {
|
||||
var self = this;
|
||||
var button = this.button;
|
||||
function clickHandler() {
|
||||
self[ self._isOpen ? 'close' : 'open' ]();
|
||||
return false;
|
||||
}
|
||||
|
||||
// webkit doesn't like it when you click on the span :(
|
||||
button
|
||||
.find('span')
|
||||
.bind('click.multiselect', clickHandler);
|
||||
|
||||
// button events
|
||||
button.bind({
|
||||
click: clickHandler,
|
||||
keypress: function(e) {
|
||||
switch(e.which) {
|
||||
case 27: // esc
|
||||
case 38: // up
|
||||
case 37: // left
|
||||
self.close();
|
||||
break;
|
||||
case 39: // right
|
||||
case 40: // down
|
||||
self.open();
|
||||
break;
|
||||
}
|
||||
},
|
||||
mouseenter: function() {
|
||||
if(!button.hasClass('ui-state-disabled')) {
|
||||
$(this).addClass('ui-state-hover');
|
||||
}
|
||||
},
|
||||
mouseleave: function() {
|
||||
$(this).removeClass('ui-state-hover');
|
||||
},
|
||||
focus: function() {
|
||||
if(!button.hasClass('ui-state-disabled')) {
|
||||
$(this).addClass('ui-state-focus');
|
||||
}
|
||||
},
|
||||
blur: function() {
|
||||
$(this).removeClass('ui-state-focus');
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_bindMenuEvents: function() {
|
||||
var self = this;
|
||||
// optgroup label toggle support
|
||||
this.menu.on('click.multiselect', '.ui-multiselect-optgroup a', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $this = $(this);
|
||||
var $inputs = $this.parent().find('input:visible:not(:disabled)');
|
||||
var nodes = $inputs.get();
|
||||
var label = $this.text();
|
||||
|
||||
// trigger event and bail if the return is false
|
||||
if(self._trigger('beforeoptgrouptoggle', e, { inputs:nodes, label:label }) === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
// toggle inputs
|
||||
self._toggleChecked(
|
||||
$inputs.filter(':checked').length !== $inputs.length,
|
||||
$inputs
|
||||
);
|
||||
|
||||
self._trigger('optgrouptoggle', e, {
|
||||
inputs: nodes,
|
||||
label: label,
|
||||
checked: nodes.length ? nodes[0].checked : null
|
||||
});
|
||||
})
|
||||
.on('mouseenter.multiselect', 'label', function() {
|
||||
if(!$(this).hasClass('ui-state-disabled')) {
|
||||
self.labels.removeClass('ui-state-hover');
|
||||
$(this).addClass('ui-state-hover').find('input').focus();
|
||||
}
|
||||
})
|
||||
.on('keydown.multiselect', 'label', function(e) {
|
||||
if(e.which === 82) {
|
||||
return; //"r" key, often used for reload.
|
||||
}
|
||||
if(e.which > 111 && e.which < 124) {
|
||||
return; //Keyboard function keys.
|
||||
}
|
||||
e.preventDefault();
|
||||
switch(e.which) {
|
||||
case 9: // tab
|
||||
if(e.shiftKey) {
|
||||
self.menu.find(".ui-state-hover").removeClass("ui-state-hover");
|
||||
self.header.find("li").last().find("a").focus();
|
||||
} else {
|
||||
self.close();
|
||||
}
|
||||
break;
|
||||
case 27: // esc
|
||||
self.close();
|
||||
break;
|
||||
case 38: // up
|
||||
case 40: // down
|
||||
case 37: // left
|
||||
case 39: // right
|
||||
self._traverse(e.which, this);
|
||||
break;
|
||||
case 13: // enter
|
||||
case 32: //space
|
||||
$(this).find('input')[0].click();
|
||||
break;
|
||||
case 65: // a
|
||||
if(e.altKey) {
|
||||
self.checkAll();
|
||||
}
|
||||
break;
|
||||
case 85: // u
|
||||
if(e.altKey) {
|
||||
self.uncheckAll();
|
||||
}
|
||||
break;
|
||||
}
|
||||
})
|
||||
.on('click.multiselect', 'input[type="checkbox"], input[type="radio"]', function(e) {
|
||||
var $this = $(this);
|
||||
var val = this.value;
|
||||
var optionText = $this.parent().find("span").text();
|
||||
var checked = this.checked;
|
||||
var tags = self.element.find('option');
|
||||
|
||||
// bail if this input is disabled or the event is cancelled
|
||||
if(this.disabled || self._trigger('click', e, { value: val, text: optionText, checked: checked }) === false) {
|
||||
e.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
||||
// make sure the input has focus. otherwise, the esc key
|
||||
// won't close the menu after clicking an item.
|
||||
$this.focus();
|
||||
|
||||
// toggle aria state
|
||||
$this.prop('aria-selected', checked);
|
||||
|
||||
// change state on the original option tags
|
||||
tags.each(function() {
|
||||
if(this.value === val) {
|
||||
this.selected = checked;
|
||||
} else if(!self.options.multiple) {
|
||||
this.selected = false;
|
||||
}
|
||||
});
|
||||
|
||||
// some additional single select-specific logic
|
||||
if(!self.options.multiple) {
|
||||
self.labels.removeClass('ui-state-active');
|
||||
$this.closest('label').toggleClass('ui-state-active', checked);
|
||||
|
||||
// close menu
|
||||
self.close();
|
||||
}
|
||||
|
||||
// fire change on the select box
|
||||
self.element.trigger("change");
|
||||
|
||||
// setTimeout is to fix multiselect issue #14 and #47. caused by jQuery issue #3827
|
||||
// http://bugs.jquery.com/ticket/3827
|
||||
setTimeout($.proxy(self.update, self), 10);
|
||||
});
|
||||
},
|
||||
|
||||
_bindHeaderEvents: function() {
|
||||
var self = this;
|
||||
// header links
|
||||
this.header.on('click.multiselect', 'a', function(e) {
|
||||
var $this = $(this);
|
||||
if($this.hasClass('ui-multiselect-close')) {
|
||||
self.close();
|
||||
} else if($this.hasClass("ui-multiselect-all")) {
|
||||
self.checkAll();
|
||||
} else if($this.hasClass("ui-multiselect-none")) {
|
||||
self.uncheckAll();
|
||||
}
|
||||
e.preventDefault();
|
||||
}).on('keydown.multiselect', 'a', function(e) {
|
||||
switch(e.which) {
|
||||
case 27: // esc
|
||||
self.close();
|
||||
break;
|
||||
case 9: // tab
|
||||
var $target = $(e.target);
|
||||
if((e.shiftKey && !$target.parent().prev().length && !self.header.find(".ui-multiselect-filter").length) || (!$target.parent().next().length && !self.labels.length && !e.shiftKey)) {
|
||||
self.close();
|
||||
e.preventDefault();
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_bindEvents: function() {
|
||||
var self = this;
|
||||
|
||||
this._bindButtonEvents();
|
||||
this._bindMenuEvents();
|
||||
this._bindHeaderEvents();
|
||||
|
||||
// close each widget when clicking on any other element/anywhere else on the page
|
||||
$doc.bind('mousedown.' + self._namespaceID, function(event) {
|
||||
var target = event.target;
|
||||
|
||||
if(self._isOpen &&
|
||||
target !== self.button[0] &&
|
||||
target !== self.menu[0] &&
|
||||
!$.contains(self.menu[0], target) &&
|
||||
!$.contains(self.button[0], target)
|
||||
) {
|
||||
self.close();
|
||||
}
|
||||
});
|
||||
|
||||
// deal with form resets. the problem here is that buttons aren't
|
||||
// restored to their defaultValue prop on form reset, and the reset
|
||||
// handler fires before the form is actually reset. delaying it a bit
|
||||
// gives the form inputs time to clear.
|
||||
$(this.element[0].form).bind('reset.' + this._namespaceID, function() {
|
||||
setTimeout($.proxy(self.refresh, self), 10);
|
||||
});
|
||||
},
|
||||
|
||||
// Determines the minimum width for the button and menu
|
||||
// Can be a number, a digit string, or a percentage
|
||||
_getMinWidth: function() {
|
||||
var minVal = this.options.minWidth;
|
||||
var width = 0;
|
||||
switch (typeof minVal) {
|
||||
case 'number':
|
||||
width = minVal;
|
||||
break;
|
||||
case 'string':
|
||||
var lastChar = minVal[ minVal.length -1 ];
|
||||
width = minVal.match(/\d+/);
|
||||
if(lastChar === '%') {
|
||||
width = this.element.parent().outerWidth() * (width/100);
|
||||
} else {
|
||||
width = parseInt(minVal, 10);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return width;
|
||||
},
|
||||
// set button width
|
||||
_setButtonWidth: function() {
|
||||
var width = this.element.outerWidth();
|
||||
var minVal = this._getMinWidth();
|
||||
|
||||
if(width < minVal) {
|
||||
width = minVal;
|
||||
}
|
||||
// set widths
|
||||
this.button.outerWidth(width);
|
||||
},
|
||||
|
||||
// set menu width
|
||||
_setMenuWidth: function() {
|
||||
var m = this.menu;
|
||||
var width = (this.button.outerWidth() <= 0) ? this._getMinWidth() : this.button.outerWidth();
|
||||
m.outerWidth(this.options.menuWidth || width);
|
||||
},
|
||||
|
||||
// Sets the height of the menu
|
||||
// Will set a scroll bar if the menu height exceeds that of the height in options
|
||||
_setMenuHeight: function() {
|
||||
var headerHeight = this.menu.children(".ui-multiselect-header:visible").outerHeight(true);
|
||||
var ulHeight = 0;
|
||||
this.menu.find(".ui-multiselect-checkboxes li, .ui-multiselect-checkboxes a").each(function(idx, li) {
|
||||
ulHeight += $(li).outerHeight(true);
|
||||
});
|
||||
if(ulHeight > this.options.height) {
|
||||
this.menu.children(".ui-multiselect-checkboxes").css("overflow", "auto");
|
||||
ulHeight = this.options.height;
|
||||
} else {
|
||||
this.menu.children(".ui-multiselect-checkboxes").css("overflow", "hidden");
|
||||
}
|
||||
|
||||
this.menu.children(".ui-multiselect-checkboxes").height(ulHeight);
|
||||
this.menu.height(ulHeight + headerHeight);
|
||||
},
|
||||
|
||||
// Resizes the menu, called every time the menu is opened
|
||||
_resizeMenu: function() {
|
||||
this._setMenuWidth();
|
||||
this._setMenuHeight();
|
||||
},
|
||||
|
||||
// move up or down within the menu
|
||||
_traverse: function(which, start) {
|
||||
var $start = $(start);
|
||||
var moveToLast = which === 38 || which === 37;
|
||||
|
||||
// select the first li that isn't an optgroup label / disabled
|
||||
var $next = $start.parent()[moveToLast ? 'prevAll' : 'nextAll']('li:not(.ui-multiselect-disabled, .ui-multiselect-optgroup):visible').first();
|
||||
// we might have to jump to the next/previous option group
|
||||
if(!$next.length) {
|
||||
$next = $start.parents(".ui-multiselect-optgroup")[moveToLast ? "prev" : "next" ]();
|
||||
}
|
||||
|
||||
// if at the first/last element
|
||||
if(!$next.length) {
|
||||
var $container = this.menu.find('ul').last();
|
||||
|
||||
// move to the first/last
|
||||
this.menu.find('label:visible')[ moveToLast ? 'last' : 'first' ]().trigger('mouseover');
|
||||
|
||||
// set scroll position
|
||||
$container.scrollTop(moveToLast ? $container.height() : 0);
|
||||
|
||||
} else {
|
||||
$next.find('label:visible')[ moveToLast ? "last" : "first" ]().trigger('mouseover');
|
||||
}
|
||||
},
|
||||
|
||||
// This is an internal function to toggle the checked property and
|
||||
// other related attributes of a checkbox.
|
||||
//
|
||||
// The context of this function should be a checkbox; do not proxy it.
|
||||
_toggleState: function(prop, flag) {
|
||||
return function() {
|
||||
if(!this.disabled) {
|
||||
this[ prop ] = flag;
|
||||
}
|
||||
|
||||
if(flag) {
|
||||
this.setAttribute('aria-selected', true);
|
||||
} else {
|
||||
this.removeAttribute('aria-selected');
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
// Toggles checked state on either an option group or all inputs
|
||||
_toggleChecked: function(flag, group) {
|
||||
var $inputs = (group && group.length) ? group : this.inputs;
|
||||
var self = this;
|
||||
|
||||
// toggle state on inputs
|
||||
$inputs.each(this._toggleState('checked', flag));
|
||||
|
||||
// give the first input focus
|
||||
$inputs.eq(0).focus();
|
||||
|
||||
// update button text
|
||||
this.update();
|
||||
|
||||
// gather an array of the values that actually changed
|
||||
var values = {};
|
||||
$inputs.each(function() {
|
||||
values[this.value] = true;
|
||||
});
|
||||
|
||||
// toggle state on original option tags
|
||||
this.element
|
||||
.find('option')
|
||||
.each(function() {
|
||||
if(!this.disabled && values[this.value]) {
|
||||
self._toggleState('selected', flag).call(this);
|
||||
}
|
||||
});
|
||||
|
||||
// trigger the change event on the select
|
||||
if($inputs.length) {
|
||||
this.element.trigger("change");
|
||||
}
|
||||
},
|
||||
|
||||
// Toggle disable state on the widget and underlying select
|
||||
_toggleDisabled: function(flag) {
|
||||
this.button.prop({ 'disabled':flag, 'aria-disabled':flag })[ flag ? 'addClass' : 'removeClass' ]('ui-state-disabled');
|
||||
|
||||
if(this.options.disableInputsOnToggle) {
|
||||
var checkboxes = this.menu.find(".ui-multiselect-checkboxes").get(0);
|
||||
var matchedInputs = [];
|
||||
var key = "ech-multiselect-disabled";
|
||||
var i = 0;
|
||||
if(flag) {
|
||||
// remember which elements this widget disabled (not pre-disabled)
|
||||
// elements, so that they can be restored if the widget is re-enabled.
|
||||
matchedInputs = checkboxes.querySelectorAll("input:enabled");
|
||||
for(i = 0; i < matchedInputs.length; i++) {
|
||||
matchedInputs[i].setAttribute(key, true);
|
||||
matchedInputs[i].setAttribute("disabled", "disabled");
|
||||
matchedInputs[i].setAttribute("aria-disabled", "disabled");
|
||||
matchedInputs[i].parentNode.className = matchedInputs[i].parentNode.className + " ui-state-disabled";
|
||||
}
|
||||
} else {
|
||||
matchedInputs = checkboxes.querySelectorAll("input:disabled");
|
||||
for(i = 0; i < matchedInputs.length; i++) {
|
||||
if(matchedInputs[i].hasAttribute(key)) {
|
||||
matchedInputs[i].removeAttribute(key);
|
||||
matchedInputs[i].removeAttribute("disabled");
|
||||
matchedInputs[i].removeAttribute("aria-disabled");
|
||||
matchedInputs[i].parentNode.className = matchedInputs[i].parentNode.className.replace(" ui-state-disabled", "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.element.prop({
|
||||
'disabled':flag,
|
||||
'aria-disabled':flag
|
||||
});
|
||||
},
|
||||
|
||||
// open the menu
|
||||
open: function(e) {
|
||||
var self = this;
|
||||
var button = this.button;
|
||||
var menu = this.menu;
|
||||
var speed = this.speed;
|
||||
var o = this.options;
|
||||
var args = [];
|
||||
|
||||
// bail if the multiselectopen event returns false, this widget is disabled, or is already open
|
||||
if(this._trigger('beforeopen') === false || button.hasClass('ui-state-disabled') || this._isOpen) {
|
||||
return;
|
||||
}
|
||||
|
||||
var $container = menu.find('.ui-multiselect-checkboxes');
|
||||
var effect = o.show;
|
||||
|
||||
// figure out opening effects/speeds
|
||||
if($.isArray(o.show)) {
|
||||
effect = o.show[0];
|
||||
speed = o.show[1] || self.speed;
|
||||
}
|
||||
|
||||
// if there's an effect, assume jQuery UI is in use
|
||||
// build the arguments to pass to show()
|
||||
if(effect) {
|
||||
args = [ effect, speed ];
|
||||
}
|
||||
|
||||
// set the scroll of the checkbox container
|
||||
$container.scrollTop(0);
|
||||
|
||||
// show the menu, maybe with a speed/effect combo
|
||||
$.fn.show.apply(menu, args);
|
||||
|
||||
this._resizeMenu();
|
||||
// positon
|
||||
this.position();
|
||||
|
||||
|
||||
// select the first not disabled option or the filter input if available
|
||||
var filter = this.header.find(".ui-multiselect-filter");
|
||||
if(filter.length) {
|
||||
filter.first().find('input').trigger('focus');
|
||||
} else if(this.labels.length){
|
||||
this.labels.filter(':not(.ui-state-disabled)').eq(0).trigger('mouseover').trigger('mouseenter').find('input').trigger('focus');
|
||||
} else {
|
||||
this.header.find('a').first().trigger('focus');
|
||||
}
|
||||
|
||||
|
||||
button.addClass('ui-state-active');
|
||||
this._isOpen = true;
|
||||
this._trigger('open');
|
||||
},
|
||||
|
||||
// close the menu
|
||||
close: function() {
|
||||
if(this._trigger('beforeclose') === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
var o = this.options;
|
||||
var effect = o.hide;
|
||||
var speed = this.speed;
|
||||
var args = [];
|
||||
|
||||
// figure out opening effects/speeds
|
||||
if($.isArray(o.hide)) {
|
||||
effect = o.hide[0];
|
||||
speed = o.hide[1] || this.speed;
|
||||
}
|
||||
|
||||
if(effect) {
|
||||
args = [ effect, speed ];
|
||||
}
|
||||
|
||||
$.fn.hide.apply(this.menu, args);
|
||||
this.button.removeClass('ui-state-active').trigger('blur').trigger('mouseleave');
|
||||
this._isOpen = false;
|
||||
this._trigger('close');
|
||||
this.button.trigger('focus');
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
this._toggleDisabled(false);
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
this._toggleDisabled(true);
|
||||
},
|
||||
|
||||
checkAll: function(e) {
|
||||
this._toggleChecked(true);
|
||||
this._trigger('checkAll');
|
||||
},
|
||||
|
||||
uncheckAll: function() {
|
||||
this._toggleChecked(false);
|
||||
this._trigger('uncheckAll');
|
||||
},
|
||||
|
||||
getChecked: function() {
|
||||
return this.menu.find('input').filter(':checked');
|
||||
},
|
||||
|
||||
getUnchecked: function() {
|
||||
return this.menu.find('input').not(':checked');
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
// remove classes + data
|
||||
$.Widget.prototype.destroy.call(this);
|
||||
|
||||
// unbind events
|
||||
$doc.unbind(this._namespaceID);
|
||||
$(this.element[0].form).unbind(this._namespaceID);
|
||||
|
||||
this.button.remove();
|
||||
this.menu.remove();
|
||||
this.element.show();
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
isOpen: function() {
|
||||
return this._isOpen;
|
||||
},
|
||||
|
||||
widget: function() {
|
||||
return this.menu;
|
||||
},
|
||||
|
||||
getButton: function() {
|
||||
return this.button;
|
||||
},
|
||||
|
||||
getMenu: function() {
|
||||
return this.menu;
|
||||
},
|
||||
|
||||
getLabels: function() {
|
||||
return this.labels;
|
||||
},
|
||||
|
||||
/*
|
||||
* Adds an option to the widget and underlying select
|
||||
* attributes: Attributes hash to add to the option
|
||||
* text: text of the option
|
||||
* groupLabel: Option Group to add the option to
|
||||
*/
|
||||
addOption: function(attributes, text, groupLabel) {
|
||||
var $option = $("<option/>").attr(attributes).text(text);
|
||||
var optionNode = $option.get(0);
|
||||
if(groupLabel) {
|
||||
this.element.children("OPTGROUP").filter(function() {
|
||||
return $(this).prop("label") === groupLabel;
|
||||
}).append($option);
|
||||
this.menu.find(".ui-multiselect-optgroup").filter(function() {
|
||||
return $(this).find("a").text() === groupLabel;
|
||||
}).append(this._makeOption(optionNode));
|
||||
} else {
|
||||
this.element.append($option);
|
||||
this.menu.find(".ui-multiselect-checkboxes").append(this._makeOption(optionNode));
|
||||
}
|
||||
//update cached elements
|
||||
this.labels = this.menu.find('label');
|
||||
this.inputs = this.labels.children('input');
|
||||
},
|
||||
|
||||
removeOption: function(value) {
|
||||
if(!value) {
|
||||
return;
|
||||
}
|
||||
this.element.find("option[value=" + value + "]").remove();
|
||||
this.labels.find("input[value=" + value + "]").parents("li").remove();
|
||||
|
||||
//update cached elements
|
||||
this.labels = this.menu.find('label');
|
||||
this.inputs = this.labels.children('input');
|
||||
},
|
||||
|
||||
position: function() {
|
||||
var pos = {
|
||||
my: "top",
|
||||
at: "bottom",
|
||||
of: this.button
|
||||
};
|
||||
if(!$.isEmptyObject(this.options.position)) {
|
||||
pos.my = this.options.position.my || pos.my;
|
||||
pos.at = this.options.position.at || pos.at;
|
||||
pos.of = this.options.position.of || pos.of;
|
||||
}
|
||||
if($.ui && $.ui.position) {
|
||||
this.menu.position(pos);
|
||||
} else {
|
||||
pos = this.button.position();
|
||||
pos.top += this.button.outerHeight(false);
|
||||
this.menu.offset(pos);
|
||||
}
|
||||
},
|
||||
|
||||
// react to option changes after initialization
|
||||
_setOption: function(key, value) {
|
||||
var menu = this.menu;
|
||||
|
||||
switch(key) {
|
||||
case 'header':
|
||||
if(typeof value === 'boolean') {
|
||||
this.header[value ? 'show' : 'hide']();
|
||||
} else if(typeof value === 'string') {
|
||||
this.headerLinkContainer.children("li:not(:last-child)").remove();
|
||||
this.headerLinkContainer.prepend("<li>" + value + "</li>");
|
||||
}
|
||||
break;
|
||||
case 'checkAllText':
|
||||
menu.find('a.ui-multiselect-all span').eq(-1).text(value);
|
||||
break;
|
||||
case 'uncheckAllText':
|
||||
menu.find('a.ui-multiselect-none span').eq(-1).text(value);
|
||||
break;
|
||||
case 'height':
|
||||
this.options[key] = value;
|
||||
this._setMenuHeight();
|
||||
break;
|
||||
case 'minWidth':
|
||||
case 'menuWidth':
|
||||
this.options[key] = value;
|
||||
this._setButtonWidth();
|
||||
this._setMenuWidth();
|
||||
break;
|
||||
case 'selectedText':
|
||||
case 'selectedList':
|
||||
case 'noneSelectedText':
|
||||
this.options[key] = value; // these all needs to update immediately for the update() call
|
||||
this.update();
|
||||
break;
|
||||
case 'classes':
|
||||
menu.add(this.button).removeClass(this.options.classes).addClass(value);
|
||||
break;
|
||||
case 'multiple':
|
||||
menu.toggleClass('ui-multiselect-single', !value);
|
||||
this.options.multiple = value;
|
||||
this.element[0].multiple = value;
|
||||
this.uncheckAll();
|
||||
this.refresh();
|
||||
break;
|
||||
case 'position':
|
||||
this.position();
|
||||
break;
|
||||
case 'selectedListSeparator':
|
||||
this.options[key] = value;
|
||||
this.update(true);
|
||||
break;
|
||||
}
|
||||
|
||||
$.Widget.prototype._setOption.apply(this, arguments);
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
@@ -1,74 +0,0 @@
|
||||
{
|
||||
"name": "jquery-ui",
|
||||
"title": "jQuery UI",
|
||||
"description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.",
|
||||
"version": "1.12.1",
|
||||
"homepage": "http://jqueryui.com",
|
||||
"author": {
|
||||
"name": "jQuery Foundation and other contributors",
|
||||
"url": "https://github.com/jquery/jquery-ui/blob/1.12.1/AUTHORS.txt"
|
||||
},
|
||||
"main": "ui/widget.js",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Scott González",
|
||||
"email": "scott.gonzalez@gmail.com",
|
||||
"url": "http://scottgonzalez.com"
|
||||
},
|
||||
{
|
||||
"name": "Jörn Zaefferer",
|
||||
"email": "joern.zaefferer@gmail.com",
|
||||
"url": "http://bassistance.de"
|
||||
},
|
||||
{
|
||||
"name": "Mike Sherov",
|
||||
"email": "mike.sherov@gmail.com",
|
||||
"url": "http://mike.sherov.com"
|
||||
},
|
||||
{
|
||||
"name": "TJ VanToll",
|
||||
"email": "tj.vantoll@gmail.com",
|
||||
"url": "http://tjvantoll.com"
|
||||
},
|
||||
{
|
||||
"name": "Felix Nagel",
|
||||
"email": "info@felixnagel.com",
|
||||
"url": "http://www.felixnagel.com"
|
||||
},
|
||||
{
|
||||
"name": "Alex Schmitz",
|
||||
"email": "arschmitz@gmail.com",
|
||||
"url": "https://github.com/arschmitz"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/jquery/jquery-ui.git"
|
||||
},
|
||||
"bugs": "https://bugs.jqueryui.com/",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"test": "grunt"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"commitplease": "2.3.0",
|
||||
"grunt": "0.4.5",
|
||||
"grunt-bowercopy": "1.2.4",
|
||||
"grunt-cli": "0.1.13",
|
||||
"grunt-compare-size": "0.4.0",
|
||||
"grunt-contrib-concat": "0.5.1",
|
||||
"grunt-contrib-csslint": "0.5.0",
|
||||
"grunt-contrib-jshint": "0.12.0",
|
||||
"grunt-contrib-qunit": "1.0.1",
|
||||
"grunt-contrib-requirejs": "0.4.4",
|
||||
"grunt-contrib-uglify": "0.11.1",
|
||||
"grunt-git-authors": "3.1.0",
|
||||
"grunt-html": "6.0.0",
|
||||
"grunt-jscs": "2.1.0",
|
||||
"load-grunt-tasks": "3.4.0",
|
||||
"rimraf": "2.5.1",
|
||||
"testswarm": "1.1.0"
|
||||
},
|
||||
"keywords": []
|
||||
}
|
||||
@@ -1,507 +0,0 @@
|
||||
/***
|
||||
Spectrum Colorpicker v1.5.1
|
||||
https://github.com/bgrins/spectrum
|
||||
Author: Brian Grinstead
|
||||
License: MIT
|
||||
***/
|
||||
|
||||
.sp-container {
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
display:inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
/* https://github.com/bgrins/spectrum/issues/40 */
|
||||
z-index: 9999994;
|
||||
overflow: hidden;
|
||||
}
|
||||
.sp-container.sp-flat {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* Fix for * { box-sizing: border-box; } */
|
||||
.sp-container,
|
||||
.sp-container * {
|
||||
-webkit-box-sizing: content-box;
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
/* http://ansciath.tumblr.com/post/7347495869/css-aspect-ratio */
|
||||
.sp-top {
|
||||
position:relative;
|
||||
width: 100%;
|
||||
display:inline-block;
|
||||
}
|
||||
.sp-top-inner {
|
||||
position:absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
bottom:0;
|
||||
right:0;
|
||||
}
|
||||
.sp-color {
|
||||
position: absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
bottom:0;
|
||||
right:20%;
|
||||
}
|
||||
.sp-hue {
|
||||
position: absolute;
|
||||
top:0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
left:84%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.sp-clear-enabled .sp-hue {
|
||||
top:33px;
|
||||
height: 77.5%;
|
||||
}
|
||||
|
||||
.sp-fill {
|
||||
padding-top: 80%;
|
||||
}
|
||||
.sp-sat, .sp-val {
|
||||
position: absolute;
|
||||
top:0;
|
||||
left:0;
|
||||
right:0;
|
||||
bottom:0;
|
||||
}
|
||||
|
||||
.sp-alpha-enabled .sp-top {
|
||||
margin-bottom: 18px;
|
||||
}
|
||||
.sp-alpha-enabled .sp-alpha {
|
||||
display: block;
|
||||
}
|
||||
.sp-alpha-handle {
|
||||
position:absolute;
|
||||
top:-4px;
|
||||
bottom: -4px;
|
||||
width: 6px;
|
||||
left: 50%;
|
||||
cursor: pointer;
|
||||
border: 1px solid black;
|
||||
background: white;
|
||||
opacity: .8;
|
||||
}
|
||||
.sp-alpha {
|
||||
display: none;
|
||||
position: absolute;
|
||||
bottom: -14px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
height: 8px;
|
||||
}
|
||||
.sp-alpha-inner {
|
||||
border: solid 1px #333;
|
||||
}
|
||||
|
||||
.sp-clear {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sp-clear.sp-clear-display {
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.sp-clear-enabled .sp-clear {
|
||||
display: block;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
right:0;
|
||||
bottom:0;
|
||||
left:84%;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
/* Don't allow text selection */
|
||||
.sp-container, .sp-replacer, .sp-preview, .sp-dragger, .sp-slider, .sp-alpha, .sp-clear, .sp-alpha-handle, .sp-container.sp-dragging .sp-input, .sp-container button {
|
||||
-webkit-user-select:none;
|
||||
-moz-user-select: -moz-none;
|
||||
-o-user-select:none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.sp-container.sp-input-disabled .sp-input-container {
|
||||
display: none;
|
||||
}
|
||||
.sp-container.sp-buttons-disabled .sp-button-container {
|
||||
display: none;
|
||||
}
|
||||
.sp-container.sp-palette-buttons-disabled .sp-palette-button-container {
|
||||
display: none;
|
||||
}
|
||||
.sp-palette-only .sp-picker-container {
|
||||
display: none;
|
||||
}
|
||||
.sp-palette-disabled .sp-palette-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sp-initial-disabled .sp-initial {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/* Gradients for hue, saturation and value instead of images. Not pretty... but it works */
|
||||
.sp-sat {
|
||||
background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#FFF), to(rgba(204, 154, 129, 0)));
|
||||
background-image: -webkit-linear-gradient(left, #FFF, rgba(204, 154, 129, 0));
|
||||
background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
|
||||
background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
|
||||
background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0));
|
||||
background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0));
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";
|
||||
filter : progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81');
|
||||
}
|
||||
.sp-val {
|
||||
background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000000), to(rgba(204, 154, 129, 0)));
|
||||
background-image: -webkit-linear-gradient(bottom, #000000, rgba(204, 154, 129, 0));
|
||||
background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
|
||||
background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
|
||||
background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0));
|
||||
background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0));
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";
|
||||
filter : progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000');
|
||||
}
|
||||
|
||||
.sp-hue {
|
||||
background: -moz-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
|
||||
background: -ms-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
|
||||
background: -o-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, from(#ff0000), color-stop(0.17, #ffff00), color-stop(0.33, #00ff00), color-stop(0.5, #00ffff), color-stop(0.67, #0000ff), color-stop(0.83, #ff00ff), to(#ff0000));
|
||||
background: -webkit-linear-gradient(top, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
|
||||
background: linear-gradient(to bottom, #ff0000 0%, #ffff00 17%, #00ff00 33%, #00ffff 50%, #0000ff 67%, #ff00ff 83%, #ff0000 100%);
|
||||
}
|
||||
|
||||
/* IE filters do not support multiple color stops.
|
||||
Generate 6 divs, line them up, and do two color gradients for each.
|
||||
Yes, really.
|
||||
*/
|
||||
.sp-1 {
|
||||
height:17%;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00');
|
||||
}
|
||||
.sp-2 {
|
||||
height:16%;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00');
|
||||
}
|
||||
.sp-3 {
|
||||
height:17%;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff');
|
||||
}
|
||||
.sp-4 {
|
||||
height:17%;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff');
|
||||
}
|
||||
.sp-5 {
|
||||
height:16%;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff');
|
||||
}
|
||||
.sp-6 {
|
||||
height:17%;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000');
|
||||
}
|
||||
|
||||
.sp-hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Clearfix hack */
|
||||
.sp-cf:before, .sp-cf:after { content: ""; display: table; }
|
||||
.sp-cf:after { clear: both; }
|
||||
.sp-cf { *zoom: 1; }
|
||||
|
||||
/* Mobile devices, make hue slider bigger so it is easier to slide */
|
||||
@media (max-device-width: 480px) {
|
||||
.sp-color { right: 40%; }
|
||||
.sp-hue { left: 63%; }
|
||||
.sp-fill { padding-top: 60%; }
|
||||
}
|
||||
.sp-dragger {
|
||||
border-radius: 5px;
|
||||
height: 5px;
|
||||
width: 5px;
|
||||
border: 1px solid #fff;
|
||||
background: #000;
|
||||
cursor: pointer;
|
||||
position:absolute;
|
||||
top:0;
|
||||
left: 0;
|
||||
}
|
||||
.sp-slider {
|
||||
position: absolute;
|
||||
top:0;
|
||||
cursor:pointer;
|
||||
height: 3px;
|
||||
left: -1px;
|
||||
right: -1px;
|
||||
border: 1px solid #000;
|
||||
background: white;
|
||||
opacity: .8;
|
||||
}
|
||||
|
||||
/*
|
||||
Theme authors:
|
||||
Here are the basic themeable display options (colors, fonts, global widths).
|
||||
See http://bgrins.github.io/spectrum/themes/ for instructions.
|
||||
*/
|
||||
|
||||
.sp-container {
|
||||
border-radius: 0;
|
||||
background-color: #ECECEC;
|
||||
border: solid 1px #f0c49B;
|
||||
padding: 0;
|
||||
}
|
||||
.sp-container, .sp-container button, .sp-container input, .sp-color, .sp-hue, .sp-clear {
|
||||
font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.sp-top {
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.sp-color, .sp-hue, .sp-clear {
|
||||
border: solid 1px #666;
|
||||
}
|
||||
|
||||
/* Input */
|
||||
.sp-input-container {
|
||||
float:right;
|
||||
width: 100px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.sp-initial-disabled .sp-input-container {
|
||||
width: 100%;
|
||||
}
|
||||
.sp-input {
|
||||
font-size: 12px !important;
|
||||
border: 1px inset;
|
||||
padding: 4px 5px;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
background:transparent;
|
||||
border-radius: 3px;
|
||||
color: #222;
|
||||
}
|
||||
.sp-input:focus {
|
||||
border: 1px solid orange;
|
||||
}
|
||||
.sp-input.sp-validation-error {
|
||||
border: 1px solid red;
|
||||
background: #fdd;
|
||||
}
|
||||
.sp-picker-container , .sp-palette-container {
|
||||
float:left;
|
||||
position: relative;
|
||||
padding: 10px;
|
||||
padding-bottom: 300px;
|
||||
margin-bottom: -290px;
|
||||
}
|
||||
.sp-picker-container {
|
||||
width: 172px;
|
||||
border-left: solid 1px #fff;
|
||||
}
|
||||
|
||||
/* Palettes */
|
||||
.sp-palette-container {
|
||||
border-right: solid 1px #ccc;
|
||||
}
|
||||
|
||||
.sp-palette-only .sp-palette-container {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.sp-palette .sp-thumb-el {
|
||||
display: block;
|
||||
position:relative;
|
||||
float:left;
|
||||
width: 24px;
|
||||
height: 15px;
|
||||
margin: 3px;
|
||||
cursor: pointer;
|
||||
border:solid 2px transparent;
|
||||
}
|
||||
.sp-palette .sp-thumb-el:hover, .sp-palette .sp-thumb-el.sp-thumb-active {
|
||||
border-color: orange;
|
||||
}
|
||||
.sp-thumb-el {
|
||||
position:relative;
|
||||
}
|
||||
|
||||
/* Initial */
|
||||
.sp-initial {
|
||||
float: left;
|
||||
border: solid 1px #333;
|
||||
}
|
||||
.sp-initial span {
|
||||
width: 30px;
|
||||
height: 25px;
|
||||
border:none;
|
||||
display:block;
|
||||
float:left;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.sp-initial .sp-clear-display {
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
.sp-palette-button-container,
|
||||
.sp-button-container {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* Replacer (the little preview div that shows up instead of the <input>) */
|
||||
.sp-replacer {
|
||||
margin:0;
|
||||
overflow:hidden;
|
||||
cursor:pointer;
|
||||
padding: 4px;
|
||||
display:inline-block;
|
||||
*zoom: 1;
|
||||
*display: inline;
|
||||
border: solid 1px #91765d;
|
||||
background: #eee;
|
||||
color: #333;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.sp-replacer:hover, .sp-replacer.sp-active {
|
||||
border-color: #F0C49B;
|
||||
color: #111;
|
||||
}
|
||||
.sp-replacer.sp-disabled {
|
||||
cursor:default;
|
||||
border-color: silver;
|
||||
color: silver;
|
||||
}
|
||||
.sp-dd {
|
||||
padding: 2px 0;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
float:left;
|
||||
font-size:10px;
|
||||
}
|
||||
.sp-preview {
|
||||
position:relative;
|
||||
width:25px;
|
||||
height: 20px;
|
||||
border: solid 1px #222;
|
||||
margin-right: 5px;
|
||||
float:left;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.sp-palette {
|
||||
*width: 220px;
|
||||
max-width: 220px;
|
||||
}
|
||||
.sp-palette .sp-thumb-el {
|
||||
width:16px;
|
||||
height: 16px;
|
||||
margin:2px 1px;
|
||||
border: solid 1px #d0d0d0;
|
||||
}
|
||||
|
||||
.sp-container {
|
||||
padding-bottom:0;
|
||||
}
|
||||
|
||||
|
||||
/* Buttons: http://hellohappy.org/css3-buttons/ */
|
||||
.sp-container button {
|
||||
background-color: #eeeeee;
|
||||
background-image: -webkit-linear-gradient(top, #eeeeee, #cccccc);
|
||||
background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
|
||||
background-image: -ms-linear-gradient(top, #eeeeee, #cccccc);
|
||||
background-image: -o-linear-gradient(top, #eeeeee, #cccccc);
|
||||
background-image: linear-gradient(to bottom, #eeeeee, #cccccc);
|
||||
border: 1px solid #ccc;
|
||||
border-bottom: 1px solid #bbb;
|
||||
border-radius: 3px;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
padding: 5px 4px;
|
||||
text-align: center;
|
||||
text-shadow: 0 1px 0 #eee;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.sp-container button:hover {
|
||||
background-color: #dddddd;
|
||||
background-image: -webkit-linear-gradient(top, #dddddd, #bbbbbb);
|
||||
background-image: -moz-linear-gradient(top, #dddddd, #bbbbbb);
|
||||
background-image: -ms-linear-gradient(top, #dddddd, #bbbbbb);
|
||||
background-image: -o-linear-gradient(top, #dddddd, #bbbbbb);
|
||||
background-image: linear-gradient(to bottom, #dddddd, #bbbbbb);
|
||||
border: 1px solid #bbb;
|
||||
border-bottom: 1px solid #999;
|
||||
cursor: pointer;
|
||||
text-shadow: 0 1px 0 #ddd;
|
||||
}
|
||||
.sp-container button:active {
|
||||
border: 1px solid #aaa;
|
||||
border-bottom: 1px solid #888;
|
||||
-webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
|
||||
-moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
|
||||
-ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
|
||||
-o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
|
||||
box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;
|
||||
}
|
||||
.sp-cancel {
|
||||
font-size: 11px;
|
||||
color: #d93f3f !important;
|
||||
margin:0;
|
||||
padding:2px;
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
text-decoration:none;
|
||||
|
||||
}
|
||||
.sp-cancel:hover {
|
||||
color: #d93f3f !important;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
.sp-palette span:hover, .sp-palette span.sp-thumb-active {
|
||||
border-color: #000;
|
||||
}
|
||||
|
||||
.sp-preview, .sp-alpha, .sp-thumb-el {
|
||||
position:relative;
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);
|
||||
}
|
||||
.sp-preview-inner, .sp-alpha-inner, .sp-thumb-inner {
|
||||
display:block;
|
||||
position:absolute;
|
||||
top:0;left:0;bottom:0;right:0;
|
||||
}
|
||||
|
||||
.sp-palette .sp-thumb-inner {
|
||||
background-position: 50% 50%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=);
|
||||
}
|
||||
|
||||
.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=);
|
||||
}
|
||||
|
||||
.sp-clear-display {
|
||||
background-repeat:no-repeat;
|
||||
background-position: center;
|
||||
background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==);
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
Authors ordered by first contribution
|
||||
A list of current team members is available at http://jqueryui.com/about
|
||||
A list of current team members is available at https://jqueryui.com/about
|
||||
|
||||
Paul Bakaus <paul.bakaus@gmail.com>
|
||||
Richard Worth <rdworth@gmail.com>
|
||||
@@ -42,7 +42,7 @@ Adam Sontag <ajpiano@ajpiano.com>
|
||||
Carl Fürstenberg <carl@excito.com>
|
||||
Kevin Dalman <development@allpro.net>
|
||||
Alberto Fernández Capel <afcapel@gmail.com>
|
||||
Jacek Jędrzejewski (http://jacek.jedrzejewski.name)
|
||||
Jacek Jędrzejewski (https://jacek.jedrzejewski.name)
|
||||
Ting Kuei <ting@kuei.com>
|
||||
Samuel Cormier-Iijima <sam@chide.it>
|
||||
Jon Palmer <jonspalmer@gmail.com>
|
||||
@@ -312,7 +312,7 @@ Mani Mishra <manimishra902@gmail.com>
|
||||
Hannah Methvin <hannahmethvin@gmail.com>
|
||||
Leonardo Balter <leonardo.balter@gmail.com>
|
||||
Benjamin Albert <benjamin_a5@yahoo.com>
|
||||
Michał Gołębiowski <m.goleb@gmail.com>
|
||||
Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
|
||||
Alyosha Pushak <alyosha.pushak@gmail.com>
|
||||
Fahad Ahmad <fahadahmad41@hotmail.com>
|
||||
Matt Brundage <github@mattbrundage.com>
|
||||
@@ -331,3 +331,54 @@ Peter Dave Hello <hsu@peterdavehello.org>
|
||||
Johannes Schäfer <johnschaefer@gmx.de>
|
||||
Ville Skyttä <ville.skytta@iki.fi>
|
||||
Ryan Oriecuia <ryan.oriecuia@visioncritical.com>
|
||||
Sergei Ratnikov <sergeir82@gmail.com>
|
||||
milk54 <milk851@gmail.com>
|
||||
Evelyn Masso <evoutofambit@gmail.com>
|
||||
Robin <mail@robin-fowler.com>
|
||||
Simon Asika <asika32764@gmail.com>
|
||||
Kevin Cupp <kevin.cupp@gmail.com>
|
||||
Jeremy Mickelson <Jeremy.Mickelson@gmail.com>
|
||||
Kyle Rosenberg <kyle.rosenberg@gmail.com>
|
||||
Petri Partio <petri.partio@gmail.com>
|
||||
pallxk <github@pallxk.com>
|
||||
Luke Brookhart <luke@onjax.com>
|
||||
claudi <hirt-claudia@gmx.de>
|
||||
Eirik Sletteberg <eiriksletteberg@gmail.com>
|
||||
Albert Johansson <albert@intervaro.se>
|
||||
A. Wells <borgboyone@users.noreply.github.com>
|
||||
Robert Brignull <robertbrignull@gmail.com>
|
||||
Horus68 <pauloizidoro@gmail.com>
|
||||
Maksymenkov Eugene <foatei@gmail.com>
|
||||
OskarNS <soerensen.oskar@gmail.com>
|
||||
Gez Quinn <holla@gezquinn.design>
|
||||
jigar gala <jigar.gala140291@gmail.com>
|
||||
Florian Wegscheider <flo.wegscheider@gmail.com>
|
||||
Fatér Zsolt <fater.zsolt@gmail.com>
|
||||
Szabolcs Szabolcsi-Toth <nec@shell8.net>
|
||||
Jérémy Munsch <github@jeremydev.ovh>
|
||||
Hrvoje Novosel <hrvoje.novosel@gmail.com>
|
||||
Paul Capron <PaulCapron@users.noreply.github.com>
|
||||
Micah Miller <mikhey@runbox.com>
|
||||
sakshi87 <53863764+sakshi87@users.noreply.github.com>
|
||||
Mikolaj Wolicki <wolicki.mikolaj@gmail.com>
|
||||
Patrick McKay <patrick.mckay@vumc.org>
|
||||
c-lambert <58025159+c-lambert@users.noreply.github.com>
|
||||
Josep Sanz <josepsanzcamp@gmail.com>
|
||||
Ben Mullins <benm@umich.edu>
|
||||
Christian Oliff <christianoliff@pm.me>
|
||||
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|
||||
Adam Lidén Hällgren <adamlh92@gmail.com>
|
||||
James Hinderks <hinderks@gmail.com>
|
||||
Denny Septian Panggabean <97607754+ddevsr@users.noreply.github.com>
|
||||
Matías Cánepa <matias.canepa@gmail.com>
|
||||
Ashish Kurmi <100655670+boahc077@users.noreply.github.com>
|
||||
DeerBear <andrea.raimondi@gmail.com>
|
||||
Дилян Палаузов <dpa-github@aegee.org>
|
||||
Kenneth DeBacker <kcdebacker@gmail.com>
|
||||
Timo Tijhof <krinkle@fastmail.com>
|
||||
Timmy Willison <timmywil@users.noreply.github.com>
|
||||
divdeploy <166095818+divdeploy@users.noreply.github.com>
|
||||
mark van tilburg <markvantilburg@gmail.com>
|
||||
Ralf Koller <1665422+rpkoller@users.noreply.github.com>
|
||||
Porter Clevidence <116387727+porterclev@users.noreply.github.com>
|
||||
Daniel García <93217193+Daniel-Garmig@users.noreply.github.com>
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright jQuery Foundation and other contributors, https://jquery.org/
|
||||
Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
||||
|
||||
This software consists of voluntary contributions made by many
|
||||
individuals. For exact contribution history, see the revision history
|
||||
|
After Width: | Height: | Size: 410 B |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 371 B |
|
After Width: | Height: | Size: 432 B |
BIN
distfiles/jquery-ui-1.14.2/images/ui-icons_4b8e0b_256x240.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
distfiles/jquery-ui-1.14.2/images/ui-icons_a83300_256x240.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
distfiles/jquery-ui-1.14.2/images/ui-icons_cccccc_256x240.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
distfiles/jquery-ui-1.14.2/images/ui-icons_ffffff_256x240.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
@@ -58,7 +58,6 @@
|
||||
|
||||
<h1>YOUR COMPONENTS:</h1>
|
||||
|
||||
|
||||
<!-- Accordion -->
|
||||
<h2 class="demoHeaders">Accordion</h2>
|
||||
<div id="accordion">
|
||||
@@ -70,23 +69,17 @@
|
||||
<div>Nam dui erat, auctor a, dignissim quis.</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Autocomplete -->
|
||||
<h2 class="demoHeaders">Autocomplete</h2>
|
||||
<div>
|
||||
<input id="autocomplete" title="type "a"">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- Button -->
|
||||
<h2 class="demoHeaders">Button</h2>
|
||||
<button id="button">A button element</button>
|
||||
<button id="button-icon">An icon-only button</button>
|
||||
|
||||
|
||||
|
||||
<!-- Checkboxradio -->
|
||||
<h2 class="demoHeaders">Checkboxradio</h2>
|
||||
<form style="margin-top: 1em;">
|
||||
@@ -97,8 +90,6 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<!-- Controlgroup -->
|
||||
<h2 class="demoHeaders">Controlgroup</h2>
|
||||
<fieldset>
|
||||
@@ -125,8 +116,6 @@
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
||||
<!-- Tabs -->
|
||||
<h2 class="demoHeaders">Tabs</h2>
|
||||
<div id="tabs">
|
||||
@@ -140,8 +129,6 @@
|
||||
<div id="tabs-3">Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<h2 class="demoHeaders">Dialog</h2>
|
||||
<p>
|
||||
<button id="dialog-link" class="ui-button ui-corner-all ui-widget">
|
||||
@@ -167,7 +154,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<h2 class="demoHeaders">Framework Icons (content color preview)</h2>
|
||||
<ul id="icons" class="ui-widget ui-helper-clearfix">
|
||||
<li class="ui-state-default ui-corner-all" title=".ui-icon-caret-1-n"><span class="ui-icon ui-icon-caret-1-n"></span></li>
|
||||
@@ -345,25 +331,18 @@
|
||||
<li class="ui-state-default ui-corner-all" title=".ui-icon-grip-diagonal-se"><span class="ui-icon ui-icon-grip-diagonal-se"></span></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<!-- Slider -->
|
||||
<h2 class="demoHeaders">Slider</h2>
|
||||
<div id="slider"></div>
|
||||
|
||||
|
||||
|
||||
<!-- Datepicker -->
|
||||
<h2 class="demoHeaders">Datepicker</h2>
|
||||
<div id="datepicker"></div>
|
||||
|
||||
|
||||
|
||||
<!-- Progressbar -->
|
||||
<h2 class="demoHeaders">Progressbar</h2>
|
||||
<div id="progressbar"></div>
|
||||
|
||||
|
||||
|
||||
<!-- Progressbar -->
|
||||
<h2 class="demoHeaders">Selectmenu</h2>
|
||||
<select id="selectmenu">
|
||||
@@ -374,14 +353,10 @@
|
||||
<option>Faster</option>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- Spinner -->
|
||||
<h2 class="demoHeaders">Spinner</h2>
|
||||
<input id="spinner">
|
||||
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
<h2 class="demoHeaders">Menu</h2>
|
||||
<ul style="width:100px;" id="menu">
|
||||
@@ -400,8 +375,6 @@
|
||||
<li><div>Item 5</div></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<!-- Tooltip -->
|
||||
<h2 class="demoHeaders">Tooltip</h2>
|
||||
<p id="tooltip">
|
||||
@@ -409,7 +382,6 @@
|
||||
the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip.
|
||||
</p>
|
||||
|
||||
|
||||
<!-- Highlight / Error -->
|
||||
<h2 class="demoHeaders">Highlight / Error</h2>
|
||||
<div class="ui-widget">
|
||||
@@ -429,11 +401,8 @@ the element with your mouse, the title attribute is displayed in a little box ne
|
||||
<script src="external/jquery/jquery.js"></script>
|
||||
<script src="jquery-ui.js"></script>
|
||||
<script>
|
||||
|
||||
$( "#accordion" ).accordion();
|
||||
|
||||
|
||||
|
||||
var availableTags = [
|
||||
"ActionScript",
|
||||
"AppleScript",
|
||||
@@ -462,28 +431,18 @@ $( "#autocomplete" ).autocomplete({
|
||||
source: availableTags
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#button" ).button();
|
||||
$( "#button-icon" ).button({
|
||||
icon: "ui-icon-gear",
|
||||
showLabel: false
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#radioset" ).buttonset();
|
||||
|
||||
|
||||
$( "#radioset" ).controlgroup();
|
||||
|
||||
$( "#controlgroup" ).controlgroup();
|
||||
|
||||
|
||||
|
||||
$( "#tabs" ).tabs();
|
||||
|
||||
|
||||
|
||||
$( "#dialog" ).dialog({
|
||||
autoOpen: false,
|
||||
width: 400,
|
||||
@@ -509,42 +468,27 @@ $( "#dialog-link" ).click(function( event ) {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#datepicker" ).datepicker({
|
||||
inline: true
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#slider" ).slider({
|
||||
range: true,
|
||||
values: [ 17, 67 ]
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#progressbar" ).progressbar({
|
||||
value: 20
|
||||
});
|
||||
|
||||
|
||||
|
||||
$( "#spinner" ).spinner();
|
||||
|
||||
|
||||
|
||||
$( "#menu" ).menu();
|
||||
|
||||
|
||||
|
||||
$( "#tooltip" ).tooltip();
|
||||
|
||||
|
||||
|
||||
$( "#selectmenu" ).selectmenu();
|
||||
|
||||
|
||||
// Hover states on the static widgets
|
||||
$( "#dialog-link, #icons li" ).hover(
|
||||
function() {
|
||||
@@ -1,11 +1,10 @@
|
||||
/*! jQuery UI - v1.12.1 - 2018-02-02
|
||||
* http://jqueryui.com
|
||||
/*! jQuery UI - v1.14.2 - 2026-06-25
|
||||
* https://jqueryui.com
|
||||
* Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=40&bgImgOpacityHighlight=80&bgImgOpacityActive=30&bgImgOpacityHover=40&bgImgOpacityDefault=20&bgImgOpacityContent=25&bgImgOpacityHeader=25&cornerRadiusShadow=8px&offsetLeftShadow=-7px&offsetTopShadow=-7px&thicknessShadow=7px&opacityShadow=60&bgImgOpacityShadow=30&bgTextureShadow=flat&bgColorShadow=%23cccccc&opacityOverlay=80&bgImgOpacityOverlay=50&bgTextureOverlay=flat&bgColorOverlay=%235c5c5c&iconColorError=%23a83300&fcError=%23111111&borderColorError=%23ffb73d&bgTextureError=glass&bgColorError=%23ffc73d&iconColorHighlight=%234b8e0b&fcHighlight=%232e7db2&borderColorHighlight=%23cccccc&bgTextureHighlight=highlight_soft&bgColorHighlight=%23eeeeee&iconColorActive=%23ffffff&fcActive=%23000000&borderColorActive=%23ffffff&bgTextureActive=inset_soft&bgColorActive=%23afe4e3&iconColorHover=%23ffffff&fcHover=%23ffffff&borderColorHover=%2359b4d4&bgTextureHover=flat&bgColorHover=%23508ca0&iconColorDefault=%23cccccc&fcDefault=%23eeeeee&borderColorDefault=%23666666&bgTextureDefault=flat&bgColorDefault=%23665d5d&iconColorContent=%23cccccc&fcContent=%23ffffff&borderColorContent=%23666666&bgTextureContent=flat&bgColorContent=%23000000&iconColorHeader=%23ffffff&fcHeader=%23ffffff&borderColorHeader=%23333333&bgTextureHeader=gloss_wave&bgColorHeader=%23333333&cornerRadius=3px&fwDefault=normal&fsDefault=.8em&ffDefault=Segoe%20UI%2CArial%2Csans-serif
|
||||
* Copyright jQuery Foundation and other contributors; Licensed MIT */
|
||||
* To view and modify this theme, visit https://jqueryui.com/themeroller/?ffDefault=Segoe%20UI%2CArial%2Csans-serif&fsDefault=.8em&fwDefault=normal&cornerRadius=3px&bgColorHeader=%23333333&bgTextureHeader=gloss_wave&borderColorHeader=%23333333&fcHeader=%23ffffff&iconColorHeader=%23ffffff&bgColorContent=%23000000&bgTextureContent=flat&borderColorContent=%23666666&fcContent=%23ffffff&iconColorContent=%23cccccc&bgColorDefault=%23665d5d&bgTextureDefault=flat&borderColorDefault=%23666666&fcDefault=%23eeeeee&iconColorDefault=%23cccccc&bgColorHover=%23508ca0&bgTextureHover=flat&borderColorHover=%2359b4d4&fcHover=%23ffffff&iconColorHover=%23ffffff&bgColorActive=%23afe4e3&bgTextureActive=inset_soft&borderColorActive=%23ffffff&fcActive=%23000000&iconColorActive=%23ffffff&bgColorHighlight=%23eeeeee&bgTextureHighlight=highlight_soft&borderColorHighlight=%23cccccc&fcHighlight=%232e7db2&iconColorHighlight=%234b8e0b&bgColorError=%23ffc73d&bgTextureError=glass&borderColorError=%23ffb73d&fcError=%23111111&iconColorError=%23a83300&bgColorOverlay=%235c5c5c&bgTextureOverlay=flat&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=%23cccccc&bgTextureShadow=flat&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px&bgImgOpacityError=40&bgImgOpacityHighlight=80&bgImgOpacityActive=30&bgImgOpacityHover=40&bgImgOpacityDefault=20&bgImgOpacityContent=25&bgImgOpacityHeader=25
|
||||
* Copyright OpenJS Foundation and other contributors; Licensed MIT */
|
||||
|
||||
.ui-draggable-handle {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
/* Layout helpers
|
||||
@@ -49,7 +48,6 @@
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter:Alpha(Opacity=0); /* support: IE8 */
|
||||
}
|
||||
|
||||
.ui-front {
|
||||
@@ -101,7 +99,6 @@
|
||||
position: absolute;
|
||||
font-size: 0.1px;
|
||||
display: block;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-resizable-disabled .ui-resizable-handle,
|
||||
@@ -165,7 +162,6 @@
|
||||
top: -5px;
|
||||
}
|
||||
.ui-selectable {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-selectable-helper {
|
||||
@@ -174,7 +170,6 @@
|
||||
border: 1px dotted black;
|
||||
}
|
||||
.ui-sortable-handle {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-accordion .ui-accordion-header {
|
||||
@@ -209,8 +204,6 @@
|
||||
.ui-menu .ui-menu-item {
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
/* support: IE10, see #8844 */
|
||||
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
|
||||
}
|
||||
.ui-menu .ui-menu-item-wrapper {
|
||||
position: relative;
|
||||
@@ -260,12 +253,7 @@
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
|
||||
/* Support: IE <= 11 */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.ui-button,
|
||||
@@ -316,7 +304,7 @@ input.ui-button.ui-icon-notext .ui-icon {
|
||||
}
|
||||
|
||||
/* workarounds */
|
||||
/* Support: Firefox 5 - 40 */
|
||||
/* Support: Firefox 5 - 125+ */
|
||||
input.ui-button::-moz-focus-inner,
|
||||
button.ui-button::-moz-focus-inner {
|
||||
border: 0;
|
||||
@@ -367,9 +355,6 @@ button.ui-button::-moz-focus-inner {
|
||||
|
||||
/* Spinner specific style fixes */
|
||||
.ui-controlgroup-vertical .ui-spinner-input {
|
||||
|
||||
/* Support: IE8 only, Android < 4.4 only */
|
||||
width: 75%;
|
||||
width: calc( 100% - 2.4em );
|
||||
}
|
||||
.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
|
||||
@@ -677,7 +662,6 @@ button.ui-button::-moz-focus-inner {
|
||||
.ui-progressbar .ui-progressbar-overlay {
|
||||
background: url("data:image/gif;base64,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");
|
||||
height: 100%;
|
||||
filter: alpha(opacity=25); /* support: IE8 */
|
||||
opacity: 0.25;
|
||||
}
|
||||
.ui-progressbar-indeterminate .ui-progressbar-value {
|
||||
@@ -732,8 +716,7 @@ button.ui-button::-moz-focus-inner {
|
||||
z-index: 2;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
cursor: default;
|
||||
-ms-touch-action: none;
|
||||
cursor: pointer;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-slider .ui-slider-range {
|
||||
@@ -745,12 +728,6 @@ button.ui-button::-moz-focus-inner {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
/* support: IE8 - See #6727 */
|
||||
.ui-slider.ui-state-disabled .ui-slider-handle,
|
||||
.ui-slider.ui-state-disabled .ui-slider-range {
|
||||
filter: inherit;
|
||||
}
|
||||
|
||||
.ui-slider-horizontal {
|
||||
height: .8em;
|
||||
}
|
||||
@@ -1041,19 +1018,14 @@ a.ui-button:active,
|
||||
.ui-widget-content .ui-priority-secondary,
|
||||
.ui-widget-header .ui-priority-secondary {
|
||||
opacity: .7;
|
||||
filter:Alpha(Opacity=70); /* support: IE8 */
|
||||
font-weight: normal;
|
||||
}
|
||||
.ui-state-disabled,
|
||||
.ui-widget-content .ui-state-disabled,
|
||||
.ui-widget-header .ui-state-disabled {
|
||||
opacity: .35;
|
||||
filter:Alpha(Opacity=35); /* support: IE8 */
|
||||
background-image: none;
|
||||
}
|
||||
.ui-state-disabled .ui-icon {
|
||||
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
||||
}
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
@@ -1093,7 +1065,10 @@ a.ui-button:active,
|
||||
}
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-blank { background-position: 16px 16px; }
|
||||
/* Three classes needed to override `.ui-button:hover .ui-icon` */
|
||||
.ui-icon-blank.ui-icon-blank.ui-icon-blank {
|
||||
background-image: none;
|
||||
}
|
||||
.ui-icon-caret-1-n { background-position: 0 0; }
|
||||
.ui-icon-caret-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-caret-1-e { background-position: -32px 0; }
|
||||
@@ -1304,9 +1279,7 @@ a.ui-button:active,
|
||||
.ui-widget-overlay {
|
||||
background: #5c5c5c;
|
||||
opacity: .8;
|
||||
filter: Alpha(Opacity=80); /* support: IE8 */
|
||||
}
|
||||
.ui-widget-shadow {
|
||||
-webkit-box-shadow: -7px -7px 7px #cccccc;
|
||||
box-shadow: -7px -7px 7px #cccccc;
|
||||
}
|
||||
7
distfiles/jquery-ui-1.14.2/jquery-ui.min.css
vendored
Normal file
6
distfiles/jquery-ui-1.14.2/jquery-ui.min.js
vendored
Normal file
@@ -1,15 +1,14 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.12.1
|
||||
* http://jqueryui.com
|
||||
* jQuery UI CSS Framework 1.14.2
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
* https://api.jqueryui.com/category/theming/
|
||||
*/
|
||||
.ui-draggable-handle {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
/* Layout helpers
|
||||
@@ -53,7 +52,6 @@
|
||||
left: 0;
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
filter:Alpha(Opacity=0); /* support: IE8 */
|
||||
}
|
||||
|
||||
.ui-front {
|
||||
@@ -105,7 +103,6 @@
|
||||
position: absolute;
|
||||
font-size: 0.1px;
|
||||
display: block;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-resizable-disabled .ui-resizable-handle,
|
||||
@@ -169,7 +166,6 @@
|
||||
top: -5px;
|
||||
}
|
||||
.ui-selectable {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-selectable-helper {
|
||||
@@ -178,7 +174,6 @@
|
||||
border: 1px dotted black;
|
||||
}
|
||||
.ui-sortable-handle {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-accordion .ui-accordion-header {
|
||||
@@ -213,8 +208,6 @@
|
||||
.ui-menu .ui-menu-item {
|
||||
margin: 0;
|
||||
cursor: pointer;
|
||||
/* support: IE10, see #8844 */
|
||||
list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
|
||||
}
|
||||
.ui-menu .ui-menu-item-wrapper {
|
||||
position: relative;
|
||||
@@ -264,12 +257,7 @@
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
|
||||
/* Support: IE <= 11 */
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.ui-button,
|
||||
@@ -320,7 +308,7 @@ input.ui-button.ui-icon-notext .ui-icon {
|
||||
}
|
||||
|
||||
/* workarounds */
|
||||
/* Support: Firefox 5 - 40 */
|
||||
/* Support: Firefox 5 - 125+ */
|
||||
input.ui-button::-moz-focus-inner,
|
||||
button.ui-button::-moz-focus-inner {
|
||||
border: 0;
|
||||
@@ -371,9 +359,6 @@ button.ui-button::-moz-focus-inner {
|
||||
|
||||
/* Spinner specific style fixes */
|
||||
.ui-controlgroup-vertical .ui-spinner-input {
|
||||
|
||||
/* Support: IE8 only, Android < 4.4 only */
|
||||
width: 75%;
|
||||
width: calc( 100% - 2.4em );
|
||||
}
|
||||
.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
|
||||
@@ -681,7 +666,6 @@ button.ui-button::-moz-focus-inner {
|
||||
.ui-progressbar .ui-progressbar-overlay {
|
||||
background: url("data:image/gif;base64,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");
|
||||
height: 100%;
|
||||
filter: alpha(opacity=25); /* support: IE8 */
|
||||
opacity: 0.25;
|
||||
}
|
||||
.ui-progressbar-indeterminate .ui-progressbar-value {
|
||||
@@ -736,8 +720,7 @@ button.ui-button::-moz-focus-inner {
|
||||
z-index: 2;
|
||||
width: 1.2em;
|
||||
height: 1.2em;
|
||||
cursor: default;
|
||||
-ms-touch-action: none;
|
||||
cursor: pointer;
|
||||
touch-action: none;
|
||||
}
|
||||
.ui-slider .ui-slider-range {
|
||||
@@ -749,12 +732,6 @@ button.ui-button::-moz-focus-inner {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
/* support: IE8 - See #6727 */
|
||||
.ui-slider.ui-state-disabled .ui-slider-handle,
|
||||
.ui-slider.ui-state-disabled .ui-slider-range {
|
||||
filter: inherit;
|
||||
}
|
||||
|
||||
.ui-slider-horizontal {
|
||||
height: .8em;
|
||||
}
|
||||
5
distfiles/jquery-ui-1.14.2/jquery-ui.structure.min.css
vendored
Normal file
@@ -1,14 +1,14 @@
|
||||
/*!
|
||||
* jQuery UI CSS Framework 1.12.1
|
||||
* http://jqueryui.com
|
||||
* jQuery UI CSS Framework 1.14.2
|
||||
* https://jqueryui.com
|
||||
*
|
||||
* Copyright jQuery Foundation and other contributors
|
||||
* Copyright OpenJS Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/theming/
|
||||
* https://api.jqueryui.com/category/theming/
|
||||
*
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=40&bgImgOpacityHighlight=80&bgImgOpacityActive=30&bgImgOpacityHover=40&bgImgOpacityDefault=20&bgImgOpacityContent=25&bgImgOpacityHeader=25&cornerRadiusShadow=8px&offsetLeftShadow=-7px&offsetTopShadow=-7px&thicknessShadow=7px&opacityShadow=60&bgImgOpacityShadow=30&bgTextureShadow=flat&bgColorShadow=%23cccccc&opacityOverlay=80&bgImgOpacityOverlay=50&bgTextureOverlay=flat&bgColorOverlay=%235c5c5c&iconColorError=%23a83300&fcError=%23111111&borderColorError=%23ffb73d&bgTextureError=glass&bgColorError=%23ffc73d&iconColorHighlight=%234b8e0b&fcHighlight=%232e7db2&borderColorHighlight=%23cccccc&bgTextureHighlight=highlight_soft&bgColorHighlight=%23eeeeee&iconColorActive=%23ffffff&fcActive=%23000000&borderColorActive=%23ffffff&bgTextureActive=inset_soft&bgColorActive=%23afe4e3&iconColorHover=%23ffffff&fcHover=%23ffffff&borderColorHover=%2359b4d4&bgTextureHover=flat&bgColorHover=%23508ca0&iconColorDefault=%23cccccc&fcDefault=%23eeeeee&borderColorDefault=%23666666&bgTextureDefault=flat&bgColorDefault=%23665d5d&iconColorContent=%23cccccc&fcContent=%23ffffff&borderColorContent=%23666666&bgTextureContent=flat&bgColorContent=%23000000&iconColorHeader=%23ffffff&fcHeader=%23ffffff&borderColorHeader=%23333333&bgTextureHeader=gloss_wave&bgColorHeader=%23333333&cornerRadius=3px&fwDefault=normal&fsDefault=.8em&ffDefault=Segoe%20UI%2CArial%2Csans-serif
|
||||
* To view and modify this theme, visit https://jqueryui.com/themeroller/?ffDefault=Segoe%20UI%2CArial%2Csans-serif&fsDefault=.8em&fwDefault=normal&cornerRadius=3px&bgColorHeader=%23333333&bgTextureHeader=gloss_wave&borderColorHeader=%23333333&fcHeader=%23ffffff&iconColorHeader=%23ffffff&bgColorContent=%23000000&bgTextureContent=flat&borderColorContent=%23666666&fcContent=%23ffffff&iconColorContent=%23cccccc&bgColorDefault=%23665d5d&bgTextureDefault=flat&borderColorDefault=%23666666&fcDefault=%23eeeeee&iconColorDefault=%23cccccc&bgColorHover=%23508ca0&bgTextureHover=flat&borderColorHover=%2359b4d4&fcHover=%23ffffff&iconColorHover=%23ffffff&bgColorActive=%23afe4e3&bgTextureActive=inset_soft&borderColorActive=%23ffffff&fcActive=%23000000&iconColorActive=%23ffffff&bgColorHighlight=%23eeeeee&bgTextureHighlight=highlight_soft&borderColorHighlight=%23cccccc&fcHighlight=%232e7db2&iconColorHighlight=%234b8e0b&bgColorError=%23ffc73d&bgTextureError=glass&borderColorError=%23ffb73d&fcError=%23111111&iconColorError=%23a83300&bgColorOverlay=%235c5c5c&bgTextureOverlay=flat&bgImgOpacityOverlay=50&opacityOverlay=80&bgColorShadow=%23cccccc&bgTextureShadow=flat&bgImgOpacityShadow=30&opacityShadow=60&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px&bgImgOpacityError=40&bgImgOpacityHighlight=80&bgImgOpacityActive=30&bgImgOpacityHover=40&bgImgOpacityDefault=20&bgImgOpacityContent=25&bgImgOpacityHeader=25
|
||||
*/
|
||||
|
||||
|
||||
@@ -172,19 +172,14 @@ a.ui-button:active,
|
||||
.ui-widget-content .ui-priority-secondary,
|
||||
.ui-widget-header .ui-priority-secondary {
|
||||
opacity: .7;
|
||||
filter:Alpha(Opacity=70); /* support: IE8 */
|
||||
font-weight: normal;
|
||||
}
|
||||
.ui-state-disabled,
|
||||
.ui-widget-content .ui-state-disabled,
|
||||
.ui-widget-header .ui-state-disabled {
|
||||
opacity: .35;
|
||||
filter:Alpha(Opacity=35); /* support: IE8 */
|
||||
background-image: none;
|
||||
}
|
||||
.ui-state-disabled .ui-icon {
|
||||
filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
|
||||
}
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
@@ -224,7 +219,10 @@ a.ui-button:active,
|
||||
}
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-blank { background-position: 16px 16px; }
|
||||
/* Three classes needed to override `.ui-button:hover .ui-icon` */
|
||||
.ui-icon-blank.ui-icon-blank.ui-icon-blank {
|
||||
background-image: none;
|
||||
}
|
||||
.ui-icon-caret-1-n { background-position: 0 0; }
|
||||
.ui-icon-caret-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-caret-1-e { background-position: -32px 0; }
|
||||
@@ -435,9 +433,7 @@ a.ui-button:active,
|
||||
.ui-widget-overlay {
|
||||
background: #5c5c5c;
|
||||
opacity: .8;
|
||||
filter: Alpha(Opacity=80); /* support: IE8 */
|
||||
}
|
||||
.ui-widget-shadow {
|
||||
-webkit-box-shadow: -7px -7px 7px #cccccc;
|
||||
box-shadow: -7px -7px 7px #cccccc;
|
||||
}
|
||||
5
distfiles/jquery-ui-1.14.2/jquery-ui.theme.min.css
vendored
Normal file
76
distfiles/jquery-ui-1.14.2/package.json
Normal file
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"name": "jquery-ui",
|
||||
"title": "jQuery UI",
|
||||
"description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.",
|
||||
"version": "1.14.2",
|
||||
"homepage": "https://jqueryui.com",
|
||||
"author": {
|
||||
"name": "OpenJS Foundation and other contributors",
|
||||
"url": "https://github.com/jquery/jquery-ui/blob/1.14.2/AUTHORS.txt"
|
||||
},
|
||||
"main": "ui/widget.js",
|
||||
"maintainers": [
|
||||
{
|
||||
"name": "Jörn Zaefferer",
|
||||
"email": "joern.zaefferer@gmail.com",
|
||||
"url": "https://bassistance.de"
|
||||
},
|
||||
{
|
||||
"name": "Mike Sherov",
|
||||
"email": "mike.sherov@gmail.com",
|
||||
"url": "https://mike.sherov.com"
|
||||
},
|
||||
{
|
||||
"name": "TJ VanToll",
|
||||
"email": "tj.vantoll@gmail.com",
|
||||
"url": "https://www.tjvantoll.com"
|
||||
},
|
||||
{
|
||||
"name": "Felix Nagel",
|
||||
"email": "info@felixnagel.com",
|
||||
"url": "https://www.felixnagel.com"
|
||||
},
|
||||
{
|
||||
"name": "Alex Schmitz",
|
||||
"email": "arschmitz@gmail.com",
|
||||
"url": "https://github.com/arschmitz"
|
||||
}
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/jquery/jquery-ui.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/jquery/jquery-ui/issues"
|
||||
},
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"build": "grunt build",
|
||||
"lint": "grunt lint",
|
||||
"test:server": "jtr serve",
|
||||
"test:unit": "jtr",
|
||||
"test": "grunt && npm run test:unit -- --headless"
|
||||
},
|
||||
"dependencies": {
|
||||
"jquery": ">=1.12.0 <5.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/core": "1.15.2",
|
||||
"commitplease": "3.2.0",
|
||||
"eslint-config-jquery": "3.0.2",
|
||||
"globals": "16.5.0",
|
||||
"grunt": "1.6.1",
|
||||
"grunt-bowercopy": "1.2.5",
|
||||
"grunt-compare-size": "0.4.2",
|
||||
"grunt-contrib-concat": "2.1.0",
|
||||
"grunt-contrib-csslint": "2.0.0",
|
||||
"grunt-contrib-requirejs": "1.0.0",
|
||||
"grunt-eslint": "26.0.0",
|
||||
"grunt-git-authors": "3.2.0",
|
||||
"grunt-html": "18.0.2",
|
||||
"jquery-test-runner": "0.2.8",
|
||||
"load-grunt-tasks": "5.1.0",
|
||||
"rimraf": "6.1.0"
|
||||
},
|
||||
"keywords": []
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
/*
|
||||
writeups.php
|
||||
OpenDRS Online Discrepancy Reporting System
|
||||
lognotes.php
|
||||
OpenLog Online Logbook
|
||||
Copyright (C) 2026 Rod Wright
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0
|
||||