mirror of
https://github.com/pierre42100/ComunicWeb
synced 2025-07-09 04:42:48 +00:00
Updated 3rdparty structure
This commit is contained in:
assets/3rdparty
adminLTE
bootstrap
css
fonts
glyphicons-halflings-regular.eotglyphicons-halflings-regular.svgglyphicons-halflings-regular.ttfglyphicons-halflings-regular.woffglyphicons-halflings-regular.woff2
js
dist
css
AdminLTE.cssAdminLTE.min.css
skins
_all-skins.css_all-skins.min.cssskin-black-light.cssskin-black-light.min.cssskin-black.cssskin-black.min.cssskin-blue-light.cssskin-blue-light.min.cssskin-blue.cssskin-blue.min.cssskin-green-light.cssskin-green-light.min.cssskin-green.cssskin-green.min.cssskin-purple-light.cssskin-purple-light.min.cssskin-purple.cssskin-purple.min.cssskin-red-light.cssskin-red-light.min.cssskin-red.cssskin-red.min.cssskin-yellow-light.cssskin-yellow-light.min.cssskin-yellow.cssskin-yellow.min.css
img
avatar.pngavatar04.pngavatar2.pngavatar3.pngavatar5.pngboxed-bg.jpgboxed-bg.png
credit
default-50x50.gificons.pngphoto1.pngphoto2.pngphoto3.jpgphoto4.jpguser1-128x128.jpguser2-160x160.jpguser3-128x128.jpguser4-128x128.jpguser5-128x128.jpguser6-128x128.jpguser7-128x128.jpguser8-128x128.jpgjs
plugins
bootstrap-slider
bootstrap-wysihtml5
bootstrap3-wysihtml5.all.jsbootstrap3-wysihtml5.all.min.jsbootstrap3-wysihtml5.cssbootstrap3-wysihtml5.min.css
chartjs
ckeditor
CHANGES.mdLICENSE.mdREADME.mdstyles.js
adapters
build-config.jsckeditor.jsconfig.jscontents.csslang
af.jsar.jsbg.jsbn.jsbs.jsca.jscs.jscy.jsda.jsde-ch.jsde.jsel.jsen-au.jsen-ca.jsen-gb.jsen.jseo.jses.jset.jseu.jsfa.jsfi.jsfo.jsfr-ca.jsfr.jsgl.jsgu.jshe.jshi.jshr.jshu.jsid.jsis.jsit.jsja.jska.jskm.jsko.jsku.jslt.jslv.jsmk.jsmn.jsms.jsnb.jsnl.jsno.jspl.jspt-br.jspt.jsro.jsru.jssi.jssk.jssl.jssq.jssr-latn.jssr.jssv.jsth.jstr.jstt.jsug.jsuk.jsvi.jszh-cn.jszh.js
plugins
a11yhelp
dialogs
a11yhelp.js
lang
_translationstatus.txtaf.jsar.jsbg.jsca.jscs.jscy.jsda.jsde-ch.jsde.jsel.jsen-gb.jsen.jseo.jses.jset.jseu.jsfa.jsfi.jsfo.jsfr-ca.jsfr.jsgl.jsgu.jshe.jshi.jshr.jshu.jsid.jsit.jsja.jskm.jsko.jsku.jslt.jslv.jsmk.jsmn.jsnb.jsnl.jsno.jspl.jspt-br.jspt.jsro.jsru.jssi.jssk.jssl.jssq.jssr-latn.jssr.jssv.jsth.jstr.jstt.jsug.jsuk.jsvi.jszh-cn.jszh.js
about
dialogs
clipboard
dialogs
dialog
icons.pngicons_hidpi.pngimage
link
magicline
images
pastefromword
filter
scayt
specialchar
dialogs
lang
_translationstatus.txtaf.jsar.jsbg.jsca.jscs.jscy.jsda.jsde-ch.jsde.jsel.jsen-gb.jsen.jseo.jses.jset.jseu.jsfa.jsfi.jsfr-ca.jsfr.jsgl.jshe.jshr.jshu.jsid.jsit.jsja.jskm.jsko.jsku.jslt.jslv.jsnb.jsnl.jsno.jspl.jspt-br.jspt.jsru.jssi.jssk.jssl.jssq.jssv.jsth.jstr.jstt.jsug.jsuk.jsvi.jszh-cn.jszh.js
specialchar.jstable
dialogs
tabletools
dialogs
wsc
samples
css
img
index.htmljs
old
ajax.htmlapi.htmlappendto.html
assets
datafiltering.htmldialog
divreplace.htmlenterkey
htmlwriter
index.htmlinlineall.htmlinlinebycode.htmlinlinetextarea.htmljquery.htmlmagicline
readonly.htmlreplacebyclass.htmlreplacebycode.htmlsample.csssample.jssample_posteddata.phptabindex.htmltoolbar
uicolor.htmluilanguages.htmlwysiwygarea
xhtmlstyle.htmltoolbarconfigurator
skins
moono
colorpicker
bootstrap-colorpicker.cssbootstrap-colorpicker.jsbootstrap-colorpicker.min.cssbootstrap-colorpicker.min.js
img
datatables
dataTables.bootstrap.cssdataTables.bootstrap.jsdataTables.bootstrap.min.js
extensions
AutoFill
Readme.txt
css
examples
columns.htmlcomplete-callback.htmlfill-both.htmlfill-horizontal.htmlindex.htmlscrolling.htmlsimple.htmlstep-callback.html
images
js
ColReorder
License.txtReadme.md
css
examples
alt_insert.htmlcol_filter.htmlcolvis.htmlfixedcolumns.htmlfixedheader.htmlindex.htmljqueryui.htmlnew_init.htmlpredefined.htmlrealtime.htmlreset.htmlscrolling.htmlserver_side.htmlsimple.htmlstate_save.html
images
js
ColVis
License.txtReadme.md
css
examples
button_order.htmlexclude_columns.htmlgroup_columns.htmlindex.htmljqueryui.htmlmouseover.htmlnew_init.htmlrestore.htmlsimple.htmltext.htmltitle_callback.htmltwo_tables.htmltwo_tables_identical.html
js
FixedColumns
License.txtReadme.md
css
examples
bootstrap.htmlcol_filter.htmlcolvis.htmlcss_size.htmlindex.htmlindex_column.htmlleft_right_columns.htmlright_column.htmlrowspan.htmlserver-side-processing.htmlsimple.htmlsize_fixed.htmlsize_fluid.htmltwo_columns.html
js
FixedHeader
KeyTable
Responsive
License.txtReadme.md
css
examples
child-rows
column-control.htmlcustom-renderer.htmldisable-child-rows.htmlindex.htmlright-column.htmlwhole-row-control.html
display-control
index.htmlinitialisation
styling
js
Scroller
Readme.txt
css
examples
api_scrolling.html
data
index.htmllarge_js_source.htmlserver-side_processing.htmlsimple.htmlstate_saving.htmlimages
js
TableTools
Readme.md
css
examples
ajax.htmlalter_buttons.htmlbootstrap.htmlbutton_text.htmlcollection.htmldefaults.htmlindex.htmljqueryui.htmlmulti_instance.htmlmultiple_tables.htmlnew_init.htmlpdf_message.htmlplug-in.htmlselect_column.htmlselect_multi.htmlselect_os.htmlselect_single.htmlsimple.htmlswf_path.html
images
collection.pngcollection_hover.pngcopy.pngcopy_hover.pngcsv.pngcsv_hover.pngpdf.pngpdf_hover.pngprint.pngprint_hover.png
psd
xls.pngxls_hover.pngjs
swf
images
jquery.dataTables.cssjquery.dataTables.jsjquery.dataTables.min.cssjquery.dataTables.min.jsjquery.dataTables_themeroller.cssdatepicker
bootstrap-datepicker.jsdatepicker3.css
locales
bootstrap-datepicker.ar.jsbootstrap-datepicker.az.jsbootstrap-datepicker.bg.jsbootstrap-datepicker.ca.jsbootstrap-datepicker.cs.jsbootstrap-datepicker.cy.jsbootstrap-datepicker.da.jsbootstrap-datepicker.de.jsbootstrap-datepicker.el.jsbootstrap-datepicker.es.jsbootstrap-datepicker.et.jsbootstrap-datepicker.fa.jsbootstrap-datepicker.fi.jsbootstrap-datepicker.fr.jsbootstrap-datepicker.gl.jsbootstrap-datepicker.he.jsbootstrap-datepicker.hr.jsbootstrap-datepicker.hu.jsbootstrap-datepicker.id.jsbootstrap-datepicker.is.jsbootstrap-datepicker.it.jsbootstrap-datepicker.ja.jsbootstrap-datepicker.ka.jsbootstrap-datepicker.kk.jsbootstrap-datepicker.kr.jsbootstrap-datepicker.lt.jsbootstrap-datepicker.lv.jsbootstrap-datepicker.mk.jsbootstrap-datepicker.ms.jsbootstrap-datepicker.nb.jsbootstrap-datepicker.nl-BE.jsbootstrap-datepicker.nl.jsbootstrap-datepicker.no.jsbootstrap-datepicker.pl.jsbootstrap-datepicker.pt-BR.jsbootstrap-datepicker.pt.jsbootstrap-datepicker.ro.jsbootstrap-datepicker.rs-latin.jsbootstrap-datepicker.rs.jsbootstrap-datepicker.ru.jsbootstrap-datepicker.sk.jsbootstrap-datepicker.sl.jsbootstrap-datepicker.sq.jsbootstrap-datepicker.sv.jsbootstrap-datepicker.sw.jsbootstrap-datepicker.th.jsbootstrap-datepicker.tr.jsbootstrap-datepicker.ua.jsbootstrap-datepicker.vi.jsbootstrap-datepicker.zh-CN.jsbootstrap-datepicker.zh-TW.js
daterangepicker
fastclick
flot
excanvas.jsexcanvas.min.jsjquery.colorhelpers.jsjquery.colorhelpers.min.jsjquery.flot.canvas.jsjquery.flot.canvas.min.jsjquery.flot.categories.jsjquery.flot.categories.min.jsjquery.flot.crosshair.jsjquery.flot.crosshair.min.jsjquery.flot.errorbars.jsjquery.flot.errorbars.min.jsjquery.flot.fillbetween.jsjquery.flot.fillbetween.min.jsjquery.flot.image.jsjquery.flot.image.min.jsjquery.flot.jsjquery.flot.min.jsjquery.flot.navigate.jsjquery.flot.navigate.min.jsjquery.flot.pie.jsjquery.flot.pie.min.jsjquery.flot.resize.jsjquery.flot.resize.min.jsjquery.flot.selection.jsjquery.flot.selection.min.jsjquery.flot.stack.jsjquery.flot.stack.min.jsjquery.flot.symbol.jsjquery.flot.symbol.min.jsjquery.flot.threshold.jsjquery.flot.threshold.min.jsjquery.flot.time.jsjquery.flot.time.min.js
font-awesome
fullcalendar
googleFonts
M2Jd71oPJhLKp0zdtTvoMzNrcjQuD0pTu1za2FULaMs.woffODelI1aHBYDBqgeIAH2zlBM0YzuT7MdOe03otPbuUS0.woffcss.cssfpTVHK8qsXbIeTHTrnQH6GGomRtBD2u8FwSY4jjlmeA.wofffpTVHK8qsXbIeTHTrnQH6PULlOK_XQENnt2ryrY843E.wofftoadOcfmlt9b38dHJxOBGFkQc6VGVFSmCnC_l7QZG60.wofftoadOcfmlt9b38dHJxOBGJ6-ys_j0H4QL65VLqzI3wI.wofftoadOcfmlt9b38dHJxOBGNbE_oMaV8t2eFeISPpzbdE.woff
iCheck
all.css
flat
_all.cssaero.cssaero.pngaero@2x.pngblue.cssblue.pngblue@2x.pngflat.cssflat.pngflat@2x.pnggreen.cssgreen.pnggreen@2x.pnggrey.cssgrey.pnggrey@2x.pngorange.cssorange.pngorange@2x.pngpink.csspink.pngpink@2x.pngpurple.csspurple.pngpurple@2x.pngred.cssred.pngred@2x.pngyellow.cssyellow.pngyellow@2x.png
futurico
icheck.jsicheck.min.jsline
_all.cssaero.cssblue.cssgreen.cssgrey.cssline.cssline.pngline@2x.pngorange.csspink.csspurple.cssred.cssyellow.css
minimal
_all.cssaero.cssaero.pngaero@2x.pngblue.cssblue.pngblue@2x.pnggreen.cssgreen.pnggreen@2x.pnggrey.cssgrey.pnggrey@2x.pngminimal.cssminimal.pngminimal@2x.pngorange.cssorange.pngorange@2x.pngpink.csspink.pngpink@2x.pngpurple.csspurple.pngpurple@2x.pngred.cssred.pngred@2x.pngyellow.cssyellow.pngyellow@2x.png
polaris
square
_all.cssaero.cssaero.pngaero@2x.pngblue.cssblue.pngblue@2x.pnggreen.cssgreen.pnggreen@2x.pnggrey.cssgrey.pnggrey@2x.pngorange.cssorange.pngorange@2x.pngpink.csspink.pngpink@2x.pngpurple.csspurple.pngpurple@2x.pngred.cssred.pngred@2x.pngsquare.csssquare.pngsquare@2x.pngyellow.cssyellow.pngyellow@2x.png
input-mask
jquery.inputmask.date.extensions.jsjquery.inputmask.extensions.jsjquery.inputmask.jsjquery.inputmask.numeric.extensions.jsjquery.inputmask.phone.extensions.jsjquery.inputmask.regex.extensions.js
phone-codes
ionicons
.gitignoreLICENSEbower.jsonreadme.md
builder
cheatsheet.htmlcomponent.jsoncomposer.jsoncss
fonts
less
png
512
alert-circled.pngalert.pngandroid-add-contact.pngandroid-add.pngandroid-alarm.pngandroid-archive.pngandroid-arrow-back.pngandroid-arrow-down-left.pngandroid-arrow-down-right.pngandroid-arrow-forward.pngandroid-arrow-up-left.pngandroid-arrow-up-right.pngandroid-battery.pngandroid-book.pngandroid-calendar.pngandroid-call.pngandroid-camera.pngandroid-chat.pngandroid-checkmark.pngandroid-clock.pngandroid-close.pngandroid-contact.pngandroid-contacts.pngandroid-data.pngandroid-developer.pngandroid-display.pngandroid-download.pngandroid-drawer.pngandroid-dropdown.pngandroid-earth.pngandroid-folder.pngandroid-forums.pngandroid-friends.pngandroid-hand.pngandroid-image.pngandroid-inbox.pngandroid-information.pngandroid-keypad.pngandroid-lightbulb.pngandroid-locate.pngandroid-location.pngandroid-mail.pngandroid-microphone.pngandroid-mixer.pngandroid-more.pngandroid-note.pngandroid-playstore.pngandroid-printer.pngandroid-promotion.pngandroid-reminder.pngandroid-remove.pngandroid-search.pngandroid-send.pngandroid-settings.pngandroid-share.pngandroid-social-user.pngandroid-social.pngandroid-sort.pngandroid-stair-drawer.pngandroid-star.pngandroid-stopwatch.pngandroid-storage.pngandroid-system-back.pngandroid-system-home.pngandroid-system-windows.pngandroid-timer.pngandroid-trash.pngandroid-user-menu.pngandroid-volume.pngandroid-wifi.pngaperture.pngarchive.pngarrow-down-a.pngarrow-down-b.pngarrow-down-c.pngarrow-expand.pngarrow-graph-down-left.pngarrow-graph-down-right.pngarrow-graph-up-left.pngarrow-graph-up-right.pngarrow-left-a.pngarrow-left-b.pngarrow-left-c.pngarrow-move.pngarrow-resize.pngarrow-return-left.pngarrow-return-right.pngarrow-right-a.pngarrow-right-b.pngarrow-right-c.pngarrow-shrink.pngarrow-swap.pngarrow-up-a.pngarrow-up-b.pngarrow-up-c.pngasterisk.pngat.pngbag.pngbattery-charging.pngbattery-empty.pngbattery-full.pngbattery-half.pngbattery-low.pngbeaker.pngbeer.pngbluetooth.pngbonfire.pngbookmark.pngbriefcase.pngbug.pngcalculator.pngcalendar.pngcamera.pngcard.pngcash.pngchatbox-working.pngchatbox.pngchatboxes.pngchatbubble-working.pngchatbubble.pngchatbubbles.pngcheckmark-circled.pngcheckmark-round.pngcheckmark.pngchevron-down.pngchevron-left.pngchevron-right.pngchevron-up.pngclipboard.pngclock.pngclose-circled.pngclose-round.pngclose.pngclosed-captioning.pngcloud.pngcode-download.pngcode-working.pngcode.pngcoffee.pngcompass.pngcompose.pngconnection-bars.pngcontrast.pngcube.pngdisc.pngdocument-text.pngdocument.pngdrag.pngearth.pngedit.pngegg.pngeject.pngemail.pngeye-disabled.pngeye.pngfemale.pngfiling.pngfilm-marker.pngfireball.pngflag.pngflame.pngflash-off.pngflash.pngflask.pngfolder.pngfork-repo.pngfork.pngforward.pngfunnel.pnggame-controller-a.pnggame-controller-b.pnggear-a.pnggear-b.pnggrid.pnghammer.pnghappy.pngheadphone.pngheart-broken.pngheart.pnghelp-buoy.pnghelp-circled.pnghelp.pnghome.pngicecream.pngicon-social-google-plus-outline.pngicon-social-google-plus.pngimage.pngimages.pnginformation-circled.pnginformation.pngionic.pngios7-alarm-outline.pngios7-alarm.pngios7-albums-outline.pngios7-albums.pngios7-americanfootball-outline.pngios7-americanfootball.pngios7-analytics-outline.pngios7-analytics.pngios7-arrow-back.pngios7-arrow-down.pngios7-arrow-forward.pngios7-arrow-left.pngios7-arrow-right.pngios7-arrow-thin-down.pngios7-arrow-thin-left.pngios7-arrow-thin-right.pngios7-arrow-thin-up.pngios7-arrow-up.pngios7-at-outline.pngios7-at.pngios7-barcode-outline.pngios7-barcode.pngios7-baseball-outline.pngios7-baseball.pngios7-basketball-outline.pngios7-basketball.pngios7-bell-outline.pngios7-bell.pngios7-bolt-outline.pngios7-bolt.pngios7-bookmarks-outline.pngios7-bookmarks.pngios7-box-outline.pngios7-box.pngios7-briefcase-outline.pngios7-briefcase.pngios7-browsers-outline.pngios7-browsers.pngios7-calculator-outline.pngios7-calculator.pngios7-calendar-outline.pngios7-calendar.pngios7-camera-outline.pngios7-camera.pngios7-cart-outline.pngios7-cart.pngios7-chatboxes-outline.pngios7-chatboxes.pngios7-chatbubble-outline.pngios7-chatbubble.pngios7-checkmark-empty.pngios7-checkmark-outline.pngios7-checkmark.pngios7-circle-filled.pngios7-circle-outline.pngios7-clock-outline.pngios7-clock.pngios7-close-empty.pngios7-close-outline.pngios7-close.pngios7-cloud-download-outline.pngios7-cloud-download.pngios7-cloud-outline.pngios7-cloud-upload-outline.pngios7-cloud-upload.pngios7-cloud.pngios7-cloudy-night-outline.pngios7-cloudy-night.pngios7-cloudy-outline.pngios7-cloudy.pngios7-cog-outline.pngios7-cog.pngios7-compose-outline.pngios7-compose.pngios7-contact-outline.pngios7-contact.pngios7-copy-outline.pngios7-copy.pngios7-download-outline.pngios7-download.pngios7-drag.pngios7-email-outline.pngios7-email.pngios7-expand.pngios7-eye-outline.pngios7-eye.pngios7-fastforward-outline.pngios7-fastforward.pngios7-filing-outline.pngios7-filing.pngios7-film-outline.pngios7-film.pngios7-flag-outline.pngios7-flag.pngios7-folder-outline.pngios7-folder.pngios7-football-outline.pngios7-football.pngios7-gear-outline.pngios7-gear.pngios7-glasses-outline.pngios7-glasses.pngios7-heart-outline.pngios7-heart.pngios7-help-empty.pngios7-help-outline.pngios7-help.pngios7-home-outline.pngios7-home.pngios7-infinite-outline.pngios7-infinite.pngios7-information-empty.pngios7-information-outline.pngios7-information.pngios7-ionic-outline.pngios7-keypad-outline.pngios7-keypad.pngios7-lightbulb-outline.pngios7-lightbulb.pngios7-location-outline.pngios7-location.pngios7-locked-outline.pngios7-locked.pngios7-loop-strong.pngios7-loop.pngios7-medkit-outline.pngios7-medkit.pngios7-mic-off.pngios7-mic-outline.pngios7-mic.pngios7-minus-empty.pngios7-minus-outline.pngios7-minus.pngios7-monitor-outline.pngios7-monitor.pngios7-moon-outline.pngios7-moon.pngios7-more-outline.pngios7-more.pngios7-musical-note.pngios7-musical-notes.pngios7-navigate-outline.pngios7-navigate.pngios7-paper-outline.pngios7-paper.pngios7-paperplane-outline.pngios7-paperplane.pngios7-partlysunny-outline.pngios7-partlysunny.pngios7-pause-outline.pngios7-pause.pngios7-paw-outline.pngios7-paw.pngios7-people-outline.pngios7-people.pngios7-person-outline.pngios7-person.pngios7-personadd-outline.pngios7-personadd.pngios7-photos-outline.pngios7-photos.pngios7-pie-outline.pngios7-pie.pngios7-play-outline.pngios7-play.pngios7-plus-empty.pngios7-plus-outline.pngios7-plus.pngios7-pricetag-outline.pngios7-pricetag.pngios7-pricetags-outline.pngios7-pricetags.pngios7-printer-outline.pngios7-printer.pngios7-pulse-strong.pngios7-pulse.pngios7-rainy-outline.pngios7-rainy.pngios7-recording-outline.pngios7-recording.pngios7-redo-outline.pngios7-redo.pngios7-refresh-empty.pngios7-refresh-outline.pngios7-refresh.pngios7-reload.pngios7-reverse-camera-outline.pngios7-reverse-camera.pngios7-rewind-outline.pngios7-rewind.pngios7-search-strong.pngios7-search.pngios7-settings-strong.pngios7-settings.pngios7-shrink.pngios7-skipbackward-outline.pngios7-skipbackward.pngios7-skipforward-outline.pngios7-skipforward.pngios7-snowy.pngios7-speedometer-outline.pngios7-speedometer.pngios7-star-half.pngios7-star-outline.pngios7-star.pngios7-stopwatch-outline.pngios7-stopwatch.pngios7-sunny-outline.pngios7-sunny.pngios7-telephone-outline.pngios7-telephone.pngios7-tennisball-outline.pngios7-tennisball.pngios7-thunderstorm-outline.pngios7-thunderstorm.pngios7-time-outline.pngios7-time.pngios7-timer-outline.pngios7-timer.pngios7-toggle-outline.pngios7-toggle.pngios7-trash-outline.pngios7-trash.pngios7-undo-outline.pngios7-undo.pngios7-unlocked-outline.pngios7-unlocked.pngios7-upload-outline.pngios7-upload.pngios7-videocam-outline.pngios7-videocam.pngios7-volume-high.pngios7-volume-low.pngios7-wineglass-outline.pngios7-wineglass.pngios7-world-outline.pngios7-world.pngipad.pngiphone.pngipod.pngjet.pngkey.pngknife.pnglaptop.pngleaf.pnglevels.pnglightbulb.pnglink.pngload-a.pngload-b.pngload-c.pngload-d.pnglocation.pnglocked.pnglog-in.pnglog-out.pngloop.pngmagnet.pngmale.pngman.pngmap.pngmedkit.pngmerge.pngmic-a.pngmic-b.pngmic-c.pngminus-circled.pngminus-round.pngminus.pngmodel-s.pngmonitor.pngmore.pngmouse.pngmusic-note.pngnavicon-round.pngnavicon.pngnavigate.pngnetwork.pngno-smoking.pngnuclear.pngoutlet.pngpaper-airplane.pngpaperclip.pngpause.pngperson-add.pngperson-stalker.pngperson.pngpie-graph.pngpin.pngpinpoint.pngpizza.pngplane.pngplanet.pngplay.pngplaystation.pngplus-circled.pngplus-round.pngplus.pngpodium.pngpound.pngpower.pngpricetag.pngpricetags.pngprinter.pngpull-request.pngqr-scanner.pngquote.pngradio-waves.pngrecord.pngrefresh.pngreply-all.pngreply.pngribbon-a.pngribbon-b.pngsad.pngscissors.pngsearch.pngsettings.pngshare.pngshuffle.pngskip-backward.pngskip-forward.pngsocial-android-outline.pngsocial-android.pngsocial-apple-outline.pngsocial-apple.pngsocial-bitcoin-outline.pngsocial-bitcoin.pngsocial-buffer-outline.pngsocial-buffer.pngsocial-designernews-outline.pngsocial-designernews.pngsocial-dribbble-outline.pngsocial-dribbble.pngsocial-dropbox-outline.pngsocial-dropbox.pngsocial-facebook-outline.pngsocial-facebook.pngsocial-foursquare-outline.pngsocial-foursquare.pngsocial-freebsd-devil.pngsocial-github-outline.pngsocial-github.pngsocial-google-outline.pngsocial-google.pngsocial-googleplus-outline.pngsocial-googleplus.pngsocial-hackernews-outline.pngsocial-hackernews.pngsocial-instagram-outline.pngsocial-instagram.pngsocial-linkedin-outline.pngsocial-linkedin.pngsocial-pinterest-outline.pngsocial-pinterest.pngsocial-reddit-outline.pngsocial-reddit.pngsocial-rss-outline.pngsocial-rss.pngsocial-skype-outline.pngsocial-skype.pngsocial-tumblr-outline.pngsocial-tumblr.pngsocial-tux.pngsocial-twitter-outline.pngsocial-twitter.pngsocial-usd-outline.pngsocial-usd.pngsocial-vimeo-outline.pngsocial-vimeo.pngsocial-windows-outline.pngsocial-windows.pngsocial-wordpress-outline.pngsocial-wordpress.pngsocial-yahoo-outline.pngsocial-yahoo.pngsocial-youtube-outline.pngsocial-youtube.pngspeakerphone.pngspeedometer.pngspoon.pngstar.pngstats-bars.pngsteam.pngstop.pngthermometer.pngthumbsdown.pngthumbsup.pngtoggle-filled.pngtoggle.pngtrash-a.pngtrash-b.pngtrophy.pngumbrella.pnguniversity.pngunlocked.pngupload.pngusb.pngvideocamera.pngvolume-high.pngvolume-low.pngvolume-medium.pngvolume-mute.pngwand.pngwaterdrop.pngwifi.pngwineglass.pngwoman.pngwrench.pngxbox.png
scss
src
alert-circled.svgalert.svgandroid-add-circle.svgandroid-add.svgandroid-alarm-clock.svgandroid-alert.svgandroid-apps.svgandroid-archive.svgandroid-arrow-back.svgandroid-arrow-down.svgandroid-arrow-dropdown-circle.svgandroid-arrow-dropdown.svgandroid-arrow-dropleft-circle.svgandroid-arrow-dropleft.svgandroid-arrow-dropright-circle.svgandroid-arrow-dropright.svgandroid-arrow-dropup-circle.svgandroid-arrow-dropup.svgandroid-arrow-forward.svgandroid-arrow-up.svgandroid-attach.svgandroid-bar.svgandroid-bicycle.svgandroid-boat.svgandroid-bookmark.svgandroid-bulb.svgandroid-bus.svgandroid-calendar.svgandroid-call.svgandroid-camera.svgandroid-cancel.svgandroid-car.svgandroid-cart.svgandroid-chat.svgandroid-checkbox-blank.svgandroid-checkbox-outline-blank.svgandroid-checkbox-outline.svgandroid-checkbox.svgandroid-checkmark-circle.svgandroid-clipboard.svgandroid-close.svgandroid-cloud-circle.svgandroid-cloud-done.svgandroid-cloud-outline.svgandroid-cloud.svgandroid-color-palette.svgandroid-compass.svgandroid-contact.svgandroid-contacts.svgandroid-contract.svgandroid-create.svgandroid-delete.svgandroid-desktop.svgandroid-document.svgandroid-done-all.svgandroid-done.svgandroid-download.svgandroid-drafts.svgandroid-exit.svgandroid-expand.svgandroid-favorite-outline.svgandroid-favorite.svgandroid-film.svgandroid-folder-open.svgandroid-folder.svgandroid-funnel.svgandroid-globe.svgandroid-hand.svgandroid-hangout.svgandroid-happy.svgandroid-home.svgandroid-image.svgandroid-laptop.svgandroid-list.svgandroid-locate.svgandroid-lock.svgandroid-mail.svgandroid-map.svgandroid-menu.svgandroid-microphone-off.svgandroid-microphone.svgandroid-more-horizontal.svgandroid-more-vertical.svgandroid-navigate.svgandroid-notifications-none.svgandroid-notifications-off.svgandroid-notifications.svgandroid-open.svgandroid-options.svgandroid-people.svgandroid-person-add.svgandroid-person.svgandroid-phone-landscape.svgandroid-phone-portrait.svgandroid-pin.svgandroid-plane.svgandroid-playstore.svgandroid-print.svgandroid-radio-button-off.svgandroid-radio-button-on.svgandroid-refresh.svgandroid-remove-circle.svgandroid-remove.svgandroid-restaurant.svgandroid-sad.svgandroid-search.svgandroid-send.svgandroid-settings.svgandroid-share-alt.svgandroid-share.svgandroid-star-half.svgandroid-star-outline.svgandroid-star.svgandroid-stopwatch.svgandroid-subway.svgandroid-sunny.svgandroid-sync.svgandroid-textsms.svgandroid-time.svgandroid-train.svgandroid-unlock.svgandroid-upload.svgandroid-volume-down.svgandroid-volume-mute.svgandroid-volume-off.svgandroid-volume-up.svgandroid-walk.svgandroid-warning.svgandroid-watch.svgandroid-wifi.svgaperture.svgarchive.svgarrow-down-a.svgarrow-down-b.svgarrow-down-c.svgarrow-expand.svgarrow-graph-down-left.svgarrow-graph-down-right.svgarrow-graph-up-left.svgarrow-graph-up-right.svgarrow-left-a.svgarrow-left-b.svgarrow-left-c.svgarrow-move.svgarrow-resize.svgarrow-return-left.svgarrow-return-right.svgarrow-right-a.svgarrow-right-b.svgarrow-right-c.svgarrow-shrink.svgarrow-swap.svgarrow-up-a.svgarrow-up-b.svgarrow-up-c.svgasterisk.svgat.svgbackspace-outline.svgbackspace.svgbag.svgbattery-charging.svgbattery-empty.svgbattery-full.svgbattery-half.svgbattery-low.svgbeaker.svgbeer.svgbluetooth.svgbonfire.svgbookmark.svgbowtie.svgbriefcase.svgbug.svgcalculator.svgcalendar.svgcamera.svgcard.svgcash.svgchatbox-working.svgchatbox.svgchatboxes.svgchatbubble-working.svgchatbubble.svgchatbubbles.svgcheckmark-circled.svgcheckmark-round.svgcheckmark.svgchevron-down.svgchevron-left.svgchevron-right.svgchevron-up.svgclipboard.svgclock.svgclose-circled.svgclose-round.svgclose.svgclosed-captioning.svgcloud.svgcode-download.svgcode-working.svgcode.svgcoffee.svgcompass.svgcompose.svgconnection-bars.svgcontrast.svgcrop.svgcube.svgdisc.svgdocument-text.svgdocument.svgdrag.svgearth.svgeasel.svgedit.svgegg.svgeject.svgemail-unread.svgemail.svgerlenmeyer-flask-bubbles.svgerlenmeyer-flask.svgeye-disabled.svgeye.svgfemale.svgfiling.svgfilm-marker.svgfireball.svgflag.svgflame.svgflash-off.svgflash.svgfolder.svgfork-repo.svgfork.svgforward.svgfunnel.svggear-a.svggear-b.svggrid.svghammer.svghappy-outline.svghappy.svgheadphone.svgheart-broken.svgheart.svghelp-buoy.svghelp-circled.svghelp.svghome.svgicecream.svgimage.svgimages.svginformation-circled.svginformation.svgionic.svgios-alarm-outline.svgios-alarm.svgios-albums-outline.svgios-albums.svgios-americanfootball-outline.svgios-americanfootball.svgios-analytics-outline.svgios-analytics.svgios-arrow-back.svgios-arrow-down.svgios-arrow-forward.svgios-arrow-left.svgios-arrow-right.svgios-arrow-thin-down.svgios-arrow-thin-left.svgios-arrow-thin-right.svgios-arrow-thin-up.svgios-arrow-up.svgios-at-outline.svgios-at.svgios-barcode-outline.svgios-barcode.svgios-baseball-outline.svgios-baseball.svgios-basketball-outline.svgios-basketball.svgios-bell-outline.svgios-bell.svgios-body-outline.svgios-body.svgios-bolt-outline.svgios-bolt.svgios-book-outline.svgios-book.svgios-bookmarks-outline.svgios-bookmarks.svgios-box-outline.svgios-box.svgios-briefcase-outline.svgios-briefcase.svgios-browsers-outline.svgios-browsers.svgios-calculator-outline.svgios-calculator.svgios-calendar-outline.svgios-calendar.svgios-camera-outline.svgios-camera.svgios-cart-outline.svgios-cart.svgios-chatboxes-outline.svgios-chatboxes.svgios-chatbubble-outline.svgios-chatbubble.svgios-checkmark-empty.svgios-checkmark-outline.svgios-checkmark.svgios-circle-filled.svgios-circle-outline.svgios-clock-outline.svgios-clock.svgios-close-empty.svgios-close-outline.svgios-close.svgios-cloud-download-outline.svgios-cloud-download.svgios-cloud-outline.svgios-cloud-upload-outline.svgios-cloud-upload.svgios-cloud.svgios-cloudy-night-outline.svgios-cloudy-night.svgios-cloudy-outline.svgios-cloudy.svgios-cog-outline.svgios-cog.svgios-color-filter-outline.svgios-color-filter.svgios-color-wand-outline.svgios-color-wand.svgios-compose-outline.svgios-compose.svgios-contact-outline.svgios-contact.svgios-copy-outline.svgios-copy.svgios-crop-strong.svgios-crop.svgios-download-outline.svgios-download.svgios-drag.svgios-email-outline.svgios-email.svgios-eye-outline.svgios-eye.svgios-fastforward-outline.svgios-fastforward.svgios-filing-outline.svgios-filing.svgios-film-outline.svgios-film.svgios-flag-outline.svgios-flag.svgios-flame-outline.svgios-flame.svgios-flask-outline.svgios-flask.svgios-flower-outline.svgios-flower.svgios-folder-outline.svgios-folder.svgios-football-outline.svgios-football.svgios-game-controller-a-outline.svgios-game-controller-a.svgios-game-controller-b-outline.svgios-game-controller-b.svgios-gear-outline.svgios-gear.svgios-glasses-outline.svgios-glasses.svgios-grid-view-outline.svgios-grid-view.svgios-heart-outline.svgios-heart.svgios-help-empty.svgios-help-outline.svgios-help.svgios-home-outline.svgios-home.svgios-infinite-outline.svgios-infinite.svgios-information-empty.svgios-information-outline.svgios-information.svgios-ionic-outline.svgios-keypad-outline.svgios-keypad.svgios-lightbulb-outline.svgios-lightbulb.svgios-list-outline.svgios-list.svgios-location-outline.svgios-location.svgios-locked-outline.svgios-locked.svgios-loop-strong.svgios-loop.svgios-medical-outline.svgios-medical.svgios-medkit-outline.svgios-medkit.svgios-mic-off.svgios-mic-outline.svgios-mic.svgios-minus-empty.svgios-minus-outline.svgios-minus.svgios-monitor-outline.svgios-monitor.svgios-moon-outline.svgios-moon.svgios-more-outline.svgios-more.svgios-musical-note.svgios-musical-notes.svgios-navigate-outline.svgios-navigate.svgios-nutrition-outline.svgios-nutrition.svgios-paper-outline.svgios-paper.svgios-paperplane-outline.svgios-paperplane.svgios-partlysunny-outline.svgios-partlysunny.svgios-pause-outline.svgios-pause.svgios-paw-outline.svgios-paw.svgios-people-outline.svgios-people.svgios-person-outline.svgios-person.svgios-personadd-outline.svgios-personadd.svgios-photos-outline.svgios-photos.svgios-pie-outline.svgios-pie.svgios-pint-outline.svgios-pint.svgios-play-outline.svgios-play.svgios-plus-empty.svgios-plus-outline.svgios-plus.svgios-pricetag-outline.svgios-pricetag.svgios-pricetags-outline.svgios-pricetags.svgios-printer-outline.svgios-printer.svgios-pulse-strong.svgios-pulse.svgios-rainy-outline.svgios-rainy.svgios-recording-outline.svgios-recording.svgios-redo-outline.svgios-redo.svgios-refresh-empty.svgios-refresh-outline.svgios-refresh.svgios-reload.svgios-reverse-camera-outline.svgios-reverse-camera.svgios-rewind-outline.svgios-rewind.svgios-rose-outline.svgios-rose.svgios-search-strong.svgios-search.svgios-settings-strong.svgios-settings.svgios-shuffle-strong.svgios-shuffle.svgios-skipbackward-outline.svgios-skipbackward.svgios-skipforward-outline.svgios-skipforward.svgios-snowy.svgios-speedometer-outline.svgios-speedometer.svgios-star-half.svgios-star-outline.svgios-star.svgios-stopwatch-outline.svgios-stopwatch.svgios-sunny-outline.svgios-sunny.svgios-telephone-outline.svgios-telephone.svgios-tennisball-outline.svgios-tennisball.svgios-thunderstorm-outline.svgios-thunderstorm.svgios-time-outline.svgios-time.svgios-timer-outline.svgios-timer.svgios-toggle-outline.svgios-toggle.svgios-trash-outline.svgios-trash.svgios-undo-outline.svgios-undo.svgios-unlocked-outline.svgios-unlocked.svgios-upload-outline.svgios-upload.svgios-videocam-outline.svgios-videocam.svgios-volume-high.svgios-volume-low.svgios-wineglass-outline.svgios-wineglass.svgios-world-outline.svgios-world.svgipad.svgiphone.svgipod.svgjet.svgkey.svgknife.svglaptop.svgleaf.svglevels.svglightbulb.svglink.svgload-a.svgload-b.svgload-c.svgload-d.svglocation.svglock-combination.svglocked.svglog-in.svglog-out.svgloop.svgmagnet.svgmale.svgman.svgmap.svgmedkit.svgmerge.svgmic-a.svgmic-b.svgmic-c.svgminus-circled.svgminus-round.svgminus.svgmodel-s.svgmonitor.svgmore.svgmouse.svgmusic-note.svgnavicon-round.svgnavicon.svgnavigate.svgnetwork.svgno-smoking.svgnuclear.svgoutlet.svgpaintbrush.svgpaintbucket.svgpaper-airplane.svgpaperclip.svgpause.svgperson-add.svgperson-stalker.svgperson.svgpie-graph.svgpin.svgpinpoint.svgpizza.svgplane.svgplanet.svgplay.svgplaystation.svgplus-circled.svgplus-round.svgplus.svgpodium.svgpound.svgpower.svgpricetag.svgpricetags.svgprinter.svgpull-request.svgqr-scanner.svgquote.svgradio-waves.svgrecord.svgrefresh.svgreply-all.svgreply.svgribbon-a.svgribbon-b.svgsad-outline.svgsad.svgscissors.svgsearch.svgsettings.svgshare.svgshuffle.svgskip-backward.svgskip-forward.svgsocial-android-outline.svgsocial-android.svgsocial-angular-outline.svgsocial-angular.svgsocial-apple-outline.svgsocial-apple.svgsocial-bitcoin-outline.svgsocial-bitcoin.svgsocial-buffer-outline.svgsocial-buffer.svgsocial-chrome-outline.svgsocial-chrome.svgsocial-codepen-outline.svgsocial-codepen.svgsocial-css3-outline.svgsocial-css3.svgsocial-designernews-outline.svgsocial-designernews.svgsocial-dribbble-outline.svgsocial-dribbble.svgsocial-dropbox-outline.svgsocial-dropbox.svgsocial-euro-outline.svgsocial-euro.svgsocial-facebook-outline.svgsocial-facebook.svgsocial-foursquare-outline.svgsocial-foursquare.svgsocial-freebsd-devil.svgsocial-github-outline.svgsocial-github.svgsocial-google-outline.svgsocial-google.svgsocial-googleplus-outline.svgsocial-googleplus.svgsocial-hackernews-outline.svgsocial-hackernews.svgsocial-html5-outline.svgsocial-html5.svgsocial-instagram-outline.svgsocial-instagram.svgsocial-javascript-outline.svgsocial-javascript.svgsocial-linkedin-outline.svgsocial-linkedin.svgsocial-markdown.svgsocial-nodejs.svgsocial-octocat.svgsocial-pinterest-outline.svgsocial-pinterest.svgsocial-python.svgsocial-reddit-outline.svgsocial-reddit.svgsocial-rss-outline.svgsocial-rss.svgsocial-sass.svgsocial-skype-outline.svgsocial-skype.svgsocial-snapchat-outline.svgsocial-snapchat.svgsocial-tumblr-outline.svgsocial-tumblr.svgsocial-tux.svgsocial-twitch-outline.svgsocial-twitch.svgsocial-twitter-outline.svgsocial-twitter.svgsocial-usd-outline.svgsocial-usd.svgsocial-vimeo-outline.svgsocial-vimeo.svgsocial-whatsapp-outline.svgsocial-whatsapp.svgsocial-windows-outline.svgsocial-windows.svgsocial-wordpress-outline.svgsocial-wordpress.svgsocial-yahoo-outline.svgsocial-yahoo.svgsocial-yen-outline.svgsocial-yen.svgsocial-youtube-outline.svgsocial-youtube.svgsoup-can-outline.svgsoup-can.svgspeakerphone.svgspeedometer.svgspoon.svgstar.svgstats-bars.svgsteam.svgstop.svgthermometer.svgthumbsdown.svgthumbsup.svgtoggle-filled.svgtoggle.svgtransgender.svgtrash-a.svgtrash-b.svgtrophy.svgtshirt-outline.svgtshirt.svgumbrella.svguniversity.svgunlocked.svgupload.svgusb.svgvideocamera.svgvolume-high.svgvolume-low.svgvolume-medium.svgvolume-mute.svgwand.svgwaterdrop.svgwifi.svgwineglass.svgwoman.svgwrench.svgxbox.svg
ionslider
img
ion.rangeSlider.cssion.rangeSlider.min.jsion.rangeSlider.skinFlat.cssion.rangeSlider.skinNice.cssjQuery
jQueryUI
jquery-ui
jvectormap
jquery-jvectormap-1.2.2.cssjquery-jvectormap-1.2.2.min.jsjquery-jvectormap-usa-en.jsjquery-jvectormap-world-mill-en.js
knob
moment.js
morris
pace
raphael
README.markdowndr.csshistory.mdlicense.txtmake
plugins
colorpicker.jscolorwheel.jsjquery.colorpicker.jsjquery.colorwheel.jsraphael.blur.jsraphael.path.methods.jsraphael.primitives.jsraphael.shadow.js
raphael-min.jsraphael-src.htmlraphael.core.jsraphael.jsraphael.svg.jsraphael.vml.jsreference.htmlreference.jstest
select2
i18n
ar.jsaz.jsbg.jsca.jscs.jsda.jsde.jsel.jsen.jses.jset.jseu.jsfa.jsfi.jsfr.jsgl.jshe.jshi.jshr.jshu.jsid.jsis.jsit.jsja.jskm.jsko.jslt.jslv.jsmk.jsms.jsnb.jsnl.jspl.jspt-BR.jspt.jsro.jsru.jssk.jssr-Cyrl.jssr.jssv.jsth.jstr.jsuk.jsvi.jszh-CN.jszh-TW.js
select2.cssselect2.full.jsselect2.full.min.jsselect2.jsselect2.min.cssselect2.min.jsslimScroll
sparkline
timepicker
corePage/config
873
assets/3rdparty/adminLTE/plugins/datatables/extensions/Responsive/js/dataTables.responsive.js
vendored
Executable file
873
assets/3rdparty/adminLTE/plugins/datatables/extensions/Responsive/js/dataTables.responsive.js
vendored
Executable file
@ -0,0 +1,873 @@
|
||||
/*! Responsive 1.0.6
|
||||
* 2014-2015 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
|
||||
/**
|
||||
* @summary Responsive
|
||||
* @description Responsive tables plug-in for DataTables
|
||||
* @version 1.0.6
|
||||
* @file dataTables.responsive.js
|
||||
* @author SpryMedia Ltd (www.sprymedia.co.uk)
|
||||
* @contact www.sprymedia.co.uk/contact
|
||||
* @copyright Copyright 2014-2015 SpryMedia Ltd.
|
||||
*
|
||||
* This source file is free software, available under the following license:
|
||||
* MIT license - http://datatables.net/license/mit
|
||||
*
|
||||
* This source file 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 license files for details.
|
||||
*
|
||||
* For details please refer to: http://www.datatables.net
|
||||
*/
|
||||
|
||||
(function(window, document, undefined) {
|
||||
|
||||
|
||||
var factory = function( $, DataTable ) {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Responsive is a plug-in for the DataTables library that makes use of
|
||||
* DataTables' ability to change the visibility of columns, changing the
|
||||
* visibility of columns so the displayed columns fit into the table container.
|
||||
* The end result is that complex tables will be dynamically adjusted to fit
|
||||
* into the viewport, be it on a desktop, tablet or mobile browser.
|
||||
*
|
||||
* Responsive for DataTables has two modes of operation, which can used
|
||||
* individually or combined:
|
||||
*
|
||||
* * Class name based control - columns assigned class names that match the
|
||||
* breakpoint logic can be shown / hidden as required for each breakpoint.
|
||||
* * Automatic control - columns are automatically hidden when there is no
|
||||
* room left to display them. Columns removed from the right.
|
||||
*
|
||||
* In additional to column visibility control, Responsive also has built into
|
||||
* options to use DataTables' child row display to show / hide the information
|
||||
* from the table that has been hidden. There are also two modes of operation
|
||||
* for this child row display:
|
||||
*
|
||||
* * Inline - when the control element that the user can use to show / hide
|
||||
* child rows is displayed inside the first column of the table.
|
||||
* * Column - where a whole column is dedicated to be the show / hide control.
|
||||
*
|
||||
* Initialisation of Responsive is performed by:
|
||||
*
|
||||
* * Adding the class `responsive` or `dt-responsive` to the table. In this case
|
||||
* Responsive will automatically be initialised with the default configuration
|
||||
* options when the DataTable is created.
|
||||
* * Using the `responsive` option in the DataTables configuration options. This
|
||||
* can also be used to specify the configuration options, or simply set to
|
||||
* `true` to use the defaults.
|
||||
*
|
||||
* @class
|
||||
* @param {object} settings DataTables settings object for the host table
|
||||
* @param {object} [opts] Configuration options
|
||||
* @requires jQuery 1.7+
|
||||
* @requires DataTables 1.10.1+
|
||||
*
|
||||
* @example
|
||||
* $('#example').DataTable( {
|
||||
* responsive: true
|
||||
* } );
|
||||
* } );
|
||||
*/
|
||||
var Responsive = function ( settings, opts ) {
|
||||
// Sanity check that we are using DataTables 1.10 or newer
|
||||
if ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.1' ) ) {
|
||||
throw 'DataTables Responsive requires DataTables 1.10.1 or newer';
|
||||
}
|
||||
|
||||
this.s = {
|
||||
dt: new DataTable.Api( settings ),
|
||||
columns: []
|
||||
};
|
||||
|
||||
// Check if responsive has already been initialised on this table
|
||||
if ( this.s.dt.settings()[0].responsive ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// details is an object, but for simplicity the user can give it as a string
|
||||
if ( opts && typeof opts.details === 'string' ) {
|
||||
opts.details = { type: opts.details };
|
||||
}
|
||||
|
||||
this.c = $.extend( true, {}, Responsive.defaults, DataTable.defaults.responsive, opts );
|
||||
settings.responsive = this;
|
||||
this._constructor();
|
||||
};
|
||||
|
||||
Responsive.prototype = {
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Constructor
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initialise the Responsive instance
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_constructor: function ()
|
||||
{
|
||||
var that = this;
|
||||
var dt = this.s.dt;
|
||||
|
||||
dt.settings()[0]._responsive = this;
|
||||
|
||||
// Use DataTables' private throttle function to avoid processor thrashing
|
||||
$(window).on( 'resize.dtr orientationchange.dtr', dt.settings()[0].oApi._fnThrottle( function () {
|
||||
that._resize();
|
||||
} ) );
|
||||
|
||||
// Destroy event handler
|
||||
dt.on( 'destroy.dtr', function () {
|
||||
$(window).off( 'resize.dtr orientationchange.dtr draw.dtr' );
|
||||
} );
|
||||
|
||||
// Reorder the breakpoints array here in case they have been added out
|
||||
// of order
|
||||
this.c.breakpoints.sort( function (a, b) {
|
||||
return a.width < b.width ? 1 :
|
||||
a.width > b.width ? -1 : 0;
|
||||
} );
|
||||
|
||||
// Determine which columns are already hidden, and should therefore
|
||||
// remain hidden. todo - should this be done? See thread 22677
|
||||
//
|
||||
// this.s.alwaysHidden = dt.columns(':hidden').indexes();
|
||||
|
||||
this._classLogic();
|
||||
this._resizeAuto();
|
||||
|
||||
// Details handler
|
||||
var details = this.c.details;
|
||||
if ( details.type ) {
|
||||
that._detailsInit();
|
||||
this._detailsVis();
|
||||
|
||||
dt.on( 'column-visibility.dtr', function () {
|
||||
that._detailsVis();
|
||||
} );
|
||||
|
||||
// Redraw the details box on each draw. This is used until
|
||||
// DataTables implements a native `updated` event for rows
|
||||
dt.on( 'draw.dtr', function () {
|
||||
dt.rows( {page: 'current'} ).iterator( 'row', function ( settings, idx ) {
|
||||
var row = dt.row( idx );
|
||||
|
||||
if ( row.child.isShown() ) {
|
||||
var info = that.c.details.renderer( dt, idx );
|
||||
row.child( info, 'child' ).show();
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
$(dt.table().node()).addClass( 'dtr-'+details.type );
|
||||
}
|
||||
|
||||
// First pass - draw the table for the current viewport size
|
||||
this._resize();
|
||||
},
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Private methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Calculate the visibility for the columns in a table for a given
|
||||
* breakpoint. The result is pre-determined based on the class logic if
|
||||
* class names are used to control all columns, but the width of the table
|
||||
* is also used if there are columns which are to be automatically shown
|
||||
* and hidden.
|
||||
*
|
||||
* @param {string} breakpoint Breakpoint name to use for the calculation
|
||||
* @return {array} Array of boolean values initiating the visibility of each
|
||||
* column.
|
||||
* @private
|
||||
*/
|
||||
_columnsVisiblity: function ( breakpoint )
|
||||
{
|
||||
var dt = this.s.dt;
|
||||
var columns = this.s.columns;
|
||||
var i, ien;
|
||||
|
||||
// Class logic - determine which columns are in this breakpoint based
|
||||
// on the classes. If no class control (i.e. `auto`) then `-` is used
|
||||
// to indicate this to the rest of the function
|
||||
var display = $.map( columns, function ( col ) {
|
||||
return col.auto && col.minWidth === null ?
|
||||
false :
|
||||
col.auto === true ?
|
||||
'-' :
|
||||
$.inArray( breakpoint, col.includeIn ) !== -1;
|
||||
} );
|
||||
|
||||
// Auto column control - first pass: how much width is taken by the
|
||||
// ones that must be included from the non-auto columns
|
||||
var requiredWidth = 0;
|
||||
for ( i=0, ien=display.length ; i<ien ; i++ ) {
|
||||
if ( display[i] === true ) {
|
||||
requiredWidth += columns[i].minWidth;
|
||||
}
|
||||
}
|
||||
|
||||
// Second pass, use up any remaining width for other columns. For
|
||||
// scrolling tables we need to subtract the width of the scrollbar. It
|
||||
// may not be requires which makes this sub-optimal, but it would
|
||||
// require another full redraw to make complete use of those extra few
|
||||
// pixels
|
||||
var scrolling = dt.settings()[0].oScroll;
|
||||
var bar = scrolling.sY || scrolling.sX ? scrolling.iBarWidth : 0;
|
||||
var widthAvailable = dt.table().container().offsetWidth - bar;
|
||||
var usedWidth = widthAvailable - requiredWidth;
|
||||
|
||||
// Control column needs to always be included. This makes it sub-
|
||||
// optimal in terms of using the available with, but to stop layout
|
||||
// thrashing or overflow. Also we need to account for the control column
|
||||
// width first so we know how much width is available for the other
|
||||
// columns, since the control column might not be the first one shown
|
||||
for ( i=0, ien=display.length ; i<ien ; i++ ) {
|
||||
if ( columns[i].control ) {
|
||||
usedWidth -= columns[i].minWidth;
|
||||
}
|
||||
}
|
||||
|
||||
// Allow columns to be shown (counting from the left) until we run out
|
||||
// of room
|
||||
var empty = false;
|
||||
for ( i=0, ien=display.length ; i<ien ; i++ ) {
|
||||
if ( display[i] === '-' && ! columns[i].control ) {
|
||||
// Once we've found a column that won't fit we don't let any
|
||||
// others display either, or columns might disappear in the
|
||||
// middle of the table
|
||||
if ( empty || usedWidth - columns[i].minWidth < 0 ) {
|
||||
empty = true;
|
||||
display[i] = false;
|
||||
}
|
||||
else {
|
||||
display[i] = true;
|
||||
}
|
||||
|
||||
usedWidth -= columns[i].minWidth;
|
||||
}
|
||||
}
|
||||
|
||||
// Determine if the 'control' column should be shown (if there is one).
|
||||
// This is the case when there is a hidden column (that is not the
|
||||
// control column). The two loops look inefficient here, but they are
|
||||
// trivial and will fly through. We need to know the outcome from the
|
||||
// first , before the action in the second can be taken
|
||||
var showControl = false;
|
||||
|
||||
for ( i=0, ien=columns.length ; i<ien ; i++ ) {
|
||||
if ( ! columns[i].control && ! columns[i].never && ! display[i] ) {
|
||||
showControl = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for ( i=0, ien=columns.length ; i<ien ; i++ ) {
|
||||
if ( columns[i].control ) {
|
||||
display[i] = showControl;
|
||||
}
|
||||
}
|
||||
|
||||
// Finally we need to make sure that there is at least one column that
|
||||
// is visible
|
||||
if ( $.inArray( true, display ) === -1 ) {
|
||||
display[0] = true;
|
||||
}
|
||||
|
||||
return display;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Create the internal `columns` array with information about the columns
|
||||
* for the table. This includes determining which breakpoints the column
|
||||
* will appear in, based upon class names in the column, which makes up the
|
||||
* vast majority of this method.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_classLogic: function ()
|
||||
{
|
||||
var that = this;
|
||||
var calc = {};
|
||||
var breakpoints = this.c.breakpoints;
|
||||
var columns = this.s.dt.columns().eq(0).map( function (i) {
|
||||
var className = this.column(i).header().className;
|
||||
|
||||
return {
|
||||
className: className,
|
||||
includeIn: [],
|
||||
auto: false,
|
||||
control: false,
|
||||
never: className.match(/\bnever\b/) ? true : false
|
||||
};
|
||||
} );
|
||||
|
||||
// Simply add a breakpoint to `includeIn` array, ensuring that there are
|
||||
// no duplicates
|
||||
var add = function ( colIdx, name ) {
|
||||
var includeIn = columns[ colIdx ].includeIn;
|
||||
|
||||
if ( $.inArray( name, includeIn ) === -1 ) {
|
||||
includeIn.push( name );
|
||||
}
|
||||
};
|
||||
|
||||
var column = function ( colIdx, name, operator, matched ) {
|
||||
var size, i, ien;
|
||||
|
||||
if ( ! operator ) {
|
||||
columns[ colIdx ].includeIn.push( name );
|
||||
}
|
||||
else if ( operator === 'max-' ) {
|
||||
// Add this breakpoint and all smaller
|
||||
size = that._find( name ).width;
|
||||
|
||||
for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
|
||||
if ( breakpoints[i].width <= size ) {
|
||||
add( colIdx, breakpoints[i].name );
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( operator === 'min-' ) {
|
||||
// Add this breakpoint and all larger
|
||||
size = that._find( name ).width;
|
||||
|
||||
for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
|
||||
if ( breakpoints[i].width >= size ) {
|
||||
add( colIdx, breakpoints[i].name );
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ( operator === 'not-' ) {
|
||||
// Add all but this breakpoint (xxx need extra information)
|
||||
|
||||
for ( i=0, ien=breakpoints.length ; i<ien ; i++ ) {
|
||||
if ( breakpoints[i].name.indexOf( matched ) === -1 ) {
|
||||
add( colIdx, breakpoints[i].name );
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Loop over each column and determine if it has a responsive control
|
||||
// class
|
||||
columns.each( function ( col, i ) {
|
||||
var classNames = col.className.split(' ');
|
||||
var hasClass = false;
|
||||
|
||||
// Split the class name up so multiple rules can be applied if needed
|
||||
for ( var k=0, ken=classNames.length ; k<ken ; k++ ) {
|
||||
var className = $.trim( classNames[k] );
|
||||
|
||||
if ( className === 'all' ) {
|
||||
// Include in all
|
||||
hasClass = true;
|
||||
col.includeIn = $.map( breakpoints, function (a) {
|
||||
return a.name;
|
||||
} );
|
||||
return;
|
||||
}
|
||||
else if ( className === 'none' || className === 'never' ) {
|
||||
// Include in none (default) and no auto
|
||||
hasClass = true;
|
||||
return;
|
||||
}
|
||||
else if ( className === 'control' ) {
|
||||
// Special column that is only visible, when one of the other
|
||||
// columns is hidden. This is used for the details control
|
||||
hasClass = true;
|
||||
col.control = true;
|
||||
return;
|
||||
}
|
||||
|
||||
$.each( breakpoints, function ( j, breakpoint ) {
|
||||
// Does this column have a class that matches this breakpoint?
|
||||
var brokenPoint = breakpoint.name.split('-');
|
||||
var re = new RegExp( '(min\\-|max\\-|not\\-)?('+brokenPoint[0]+')(\\-[_a-zA-Z0-9])?' );
|
||||
var match = className.match( re );
|
||||
|
||||
if ( match ) {
|
||||
hasClass = true;
|
||||
|
||||
if ( match[2] === brokenPoint[0] && match[3] === '-'+brokenPoint[1] ) {
|
||||
// Class name matches breakpoint name fully
|
||||
column( i, breakpoint.name, match[1], match[2]+match[3] );
|
||||
}
|
||||
else if ( match[2] === brokenPoint[0] && ! match[3] ) {
|
||||
// Class name matched primary breakpoint name with no qualifier
|
||||
column( i, breakpoint.name, match[1], match[2] );
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
// If there was no control class, then automatic sizing is used
|
||||
if ( ! hasClass ) {
|
||||
col.auto = true;
|
||||
}
|
||||
} );
|
||||
|
||||
this.s.columns = columns;
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Initialisation for the details handler
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_detailsInit: function ()
|
||||
{
|
||||
var that = this;
|
||||
var dt = this.s.dt;
|
||||
var details = this.c.details;
|
||||
|
||||
// The inline type always uses the first child as the target
|
||||
if ( details.type === 'inline' ) {
|
||||
details.target = 'td:first-child';
|
||||
}
|
||||
|
||||
// type.target can be a string jQuery selector or a column index
|
||||
var target = details.target;
|
||||
var selector = typeof target === 'string' ? target : 'td';
|
||||
|
||||
// Click handler to show / hide the details rows when they are available
|
||||
$( dt.table().body() ).on( 'click', selector, function (e) {
|
||||
// If the table is not collapsed (i.e. there is no hidden columns)
|
||||
// then take no action
|
||||
if ( ! $(dt.table().node()).hasClass('collapsed' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check that the row is actually a DataTable's controlled node
|
||||
if ( ! dt.row( $(this).closest('tr') ).length ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// For column index, we determine if we should act or not in the
|
||||
// handler - otherwise it is already okay
|
||||
if ( typeof target === 'number' ) {
|
||||
var targetIdx = target < 0 ?
|
||||
dt.columns().eq(0).length + target :
|
||||
target;
|
||||
|
||||
if ( dt.cell( this ).index().column !== targetIdx ) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// $().closest() includes itself in its check
|
||||
var row = dt.row( $(this).closest('tr') );
|
||||
|
||||
if ( row.child.isShown() ) {
|
||||
row.child( false );
|
||||
$( row.node() ).removeClass( 'parent' );
|
||||
}
|
||||
else {
|
||||
var info = that.c.details.renderer( dt, row[0] );
|
||||
row.child( info, 'child' ).show();
|
||||
$( row.node() ).addClass( 'parent' );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Update the child rows in the table whenever the column visibility changes
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_detailsVis: function ()
|
||||
{
|
||||
var that = this;
|
||||
var dt = this.s.dt;
|
||||
|
||||
// Find how many columns are hidden
|
||||
var hiddenColumns = dt.columns().indexes().filter( function ( idx ) {
|
||||
var col = dt.column( idx );
|
||||
|
||||
if ( col.visible() ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Only counts as hidden if it doesn't have the `never` class
|
||||
return $( col.header() ).hasClass( 'never' ) ? null : idx;
|
||||
} );
|
||||
var haveHidden = true;
|
||||
|
||||
if ( hiddenColumns.length === 0 || ( hiddenColumns.length === 1 && this.s.columns[ hiddenColumns[0] ].control ) ) {
|
||||
haveHidden = false;
|
||||
}
|
||||
|
||||
if ( haveHidden ) {
|
||||
// Show all existing child rows
|
||||
dt.rows( { page: 'current' } ).eq(0).each( function (idx) {
|
||||
var row = dt.row( idx );
|
||||
|
||||
if ( row.child() ) {
|
||||
var info = that.c.details.renderer( dt, row[0] );
|
||||
|
||||
// The renderer can return false to have no child row
|
||||
if ( info === false ) {
|
||||
row.child.hide();
|
||||
}
|
||||
else {
|
||||
row.child( info, 'child' ).show();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
else {
|
||||
// Hide all existing child rows
|
||||
dt.rows( { page: 'current' } ).eq(0).each( function (idx) {
|
||||
dt.row( idx ).child.hide();
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Find a breakpoint object from a name
|
||||
* @param {string} name Breakpoint name to find
|
||||
* @return {object} Breakpoint description object
|
||||
*/
|
||||
_find: function ( name )
|
||||
{
|
||||
var breakpoints = this.c.breakpoints;
|
||||
|
||||
for ( var i=0, ien=breakpoints.length ; i<ien ; i++ ) {
|
||||
if ( breakpoints[i].name === name ) {
|
||||
return breakpoints[i];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Alter the table display for a resized viewport. This involves first
|
||||
* determining what breakpoint the window currently is in, getting the
|
||||
* column visibilities to apply and then setting them.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_resize: function ()
|
||||
{
|
||||
var dt = this.s.dt;
|
||||
var width = $(window).width();
|
||||
var breakpoints = this.c.breakpoints;
|
||||
var breakpoint = breakpoints[0].name;
|
||||
var columns = this.s.columns;
|
||||
var i, ien;
|
||||
|
||||
// Determine what breakpoint we are currently at
|
||||
for ( i=breakpoints.length-1 ; i>=0 ; i-- ) {
|
||||
if ( width <= breakpoints[i].width ) {
|
||||
breakpoint = breakpoints[i].name;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Show the columns for that break point
|
||||
var columnsVis = this._columnsVisiblity( breakpoint );
|
||||
|
||||
// Set the class before the column visibility is changed so event
|
||||
// listeners know what the state is. Need to determine if there are
|
||||
// any columns that are not visible but can be shown
|
||||
var collapsedClass = false;
|
||||
for ( i=0, ien=columns.length ; i<ien ; i++ ) {
|
||||
if ( columnsVis[i] === false && ! columns[i].never ) {
|
||||
collapsedClass = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$( dt.table().node() ).toggleClass('collapsed', collapsedClass );
|
||||
|
||||
dt.columns().eq(0).each( function ( colIdx, i ) {
|
||||
dt.column( colIdx ).visible( columnsVis[i] );
|
||||
} );
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Determine the width of each column in the table so the auto column hiding
|
||||
* has that information to work with. This method is never going to be 100%
|
||||
* perfect since column widths can change slightly per page, but without
|
||||
* seriously compromising performance this is quite effective.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_resizeAuto: function ()
|
||||
{
|
||||
var dt = this.s.dt;
|
||||
var columns = this.s.columns;
|
||||
|
||||
// Are we allowed to do auto sizing?
|
||||
if ( ! this.c.auto ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Are there any columns that actually need auto-sizing, or do they all
|
||||
// have classes defined
|
||||
if ( $.inArray( true, $.map( columns, function (c) { return c.auto; } ) ) === -1 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Clone the table with the current data in it
|
||||
var tableWidth = dt.table().node().offsetWidth;
|
||||
var columnWidths = dt.columns;
|
||||
var clonedTable = dt.table().node().cloneNode( false );
|
||||
var clonedHeader = $( dt.table().header().cloneNode( false ) ).appendTo( clonedTable );
|
||||
var clonedBody = $( dt.table().body().cloneNode( false ) ).appendTo( clonedTable );
|
||||
|
||||
$( dt.table().footer() ).clone( false ).appendTo( clonedTable );
|
||||
|
||||
// This is a bit slow, but we need to get a clone of each row that
|
||||
// includes all columns. As such, try to do this as little as possible.
|
||||
dt.rows( { page: 'current' } ).indexes().flatten().each( function ( idx ) {
|
||||
var clone = dt.row( idx ).node().cloneNode( true );
|
||||
|
||||
if ( dt.columns( ':hidden' ).flatten().length ) {
|
||||
$(clone).append( dt.cells( idx, ':hidden' ).nodes().to$().clone() );
|
||||
}
|
||||
|
||||
$(clone).appendTo( clonedBody );
|
||||
} );
|
||||
|
||||
var cells = dt.columns().header().to$().clone( false );
|
||||
$('<tr/>')
|
||||
.append( cells )
|
||||
.appendTo( clonedHeader );
|
||||
|
||||
// In the inline case extra padding is applied to the first column to
|
||||
// give space for the show / hide icon. We need to use this in the
|
||||
// calculation
|
||||
if ( this.c.details.type === 'inline' ) {
|
||||
$(clonedTable).addClass( 'dtr-inline collapsed' );
|
||||
}
|
||||
|
||||
var inserted = $('<div/>')
|
||||
.css( {
|
||||
width: 1,
|
||||
height: 1,
|
||||
overflow: 'hidden'
|
||||
} )
|
||||
.append( clonedTable );
|
||||
|
||||
// Remove columns which are not to be included
|
||||
inserted.find('th.never, td.never').remove();
|
||||
|
||||
inserted.insertBefore( dt.table().node() );
|
||||
|
||||
// The cloned header now contains the smallest that each column can be
|
||||
dt.columns().eq(0).each( function ( idx ) {
|
||||
columns[idx].minWidth = cells[ idx ].offsetWidth || 0;
|
||||
} );
|
||||
|
||||
inserted.remove();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* List of default breakpoints. Each item in the array is an object with two
|
||||
* properties:
|
||||
*
|
||||
* * `name` - the breakpoint name.
|
||||
* * `width` - the breakpoint width
|
||||
*
|
||||
* @name Responsive.breakpoints
|
||||
* @static
|
||||
*/
|
||||
Responsive.breakpoints = [
|
||||
{ name: 'desktop', width: Infinity },
|
||||
{ name: 'tablet-l', width: 1024 },
|
||||
{ name: 'tablet-p', width: 768 },
|
||||
{ name: 'mobile-l', width: 480 },
|
||||
{ name: 'mobile-p', width: 320 }
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Responsive default settings for initialisation
|
||||
*
|
||||
* @namespace
|
||||
* @name Responsive.defaults
|
||||
* @static
|
||||
*/
|
||||
Responsive.defaults = {
|
||||
/**
|
||||
* List of breakpoints for the instance. Note that this means that each
|
||||
* instance can have its own breakpoints. Additionally, the breakpoints
|
||||
* cannot be changed once an instance has been creased.
|
||||
*
|
||||
* @type {Array}
|
||||
* @default Takes the value of `Responsive.breakpoints`
|
||||
*/
|
||||
breakpoints: Responsive.breakpoints,
|
||||
|
||||
/**
|
||||
* Enable / disable auto hiding calculations. It can help to increase
|
||||
* performance slightly if you disable this option, but all columns would
|
||||
* need to have breakpoint classes assigned to them
|
||||
*
|
||||
* @type {Boolean}
|
||||
* @default `true`
|
||||
*/
|
||||
auto: true,
|
||||
|
||||
/**
|
||||
* Details control. If given as a string value, the `type` property of the
|
||||
* default object is set to that value, and the defaults used for the rest
|
||||
* of the object - this is for ease of implementation.
|
||||
*
|
||||
* The object consists of the following properties:
|
||||
*
|
||||
* * `renderer` - function that is called for display of the child row data.
|
||||
* The default function will show the data from the hidden columns
|
||||
* * `target` - Used as the selector for what objects to attach the child
|
||||
* open / close to
|
||||
* * `type` - `false` to disable the details display, `inline` or `column`
|
||||
* for the two control types
|
||||
*
|
||||
* @type {Object|string}
|
||||
*/
|
||||
details: {
|
||||
renderer: function ( api, rowIdx ) {
|
||||
var data = api.cells( rowIdx, ':hidden' ).eq(0).map( function ( cell ) {
|
||||
var header = $( api.column( cell.column ).header() );
|
||||
var idx = api.cell( cell ).index();
|
||||
|
||||
if ( header.hasClass( 'control' ) || header.hasClass( 'never' ) ) {
|
||||
return '';
|
||||
}
|
||||
|
||||
// Use a non-public DT API method to render the data for display
|
||||
// This needs to be updated when DT adds a suitable method for
|
||||
// this type of data retrieval
|
||||
var dtPrivate = api.settings()[0];
|
||||
var cellData = dtPrivate.oApi._fnGetCellData(
|
||||
dtPrivate, idx.row, idx.column, 'display'
|
||||
);
|
||||
var title = header.text();
|
||||
if ( title ) {
|
||||
title = title + ':';
|
||||
}
|
||||
|
||||
return '<li data-dtr-index="'+idx.column+'">'+
|
||||
'<span class="dtr-title">'+
|
||||
title+
|
||||
'</span> '+
|
||||
'<span class="dtr-data">'+
|
||||
cellData+
|
||||
'</span>'+
|
||||
'</li>';
|
||||
} ).toArray().join('');
|
||||
|
||||
return data ?
|
||||
$('<ul data-dtr-index="'+rowIdx+'"/>').append( data ) :
|
||||
false;
|
||||
},
|
||||
|
||||
target: 0,
|
||||
|
||||
type: 'inline'
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* API
|
||||
*/
|
||||
var Api = $.fn.dataTable.Api;
|
||||
|
||||
// Doesn't do anything - work around for a bug in DT... Not documented
|
||||
Api.register( 'responsive()', function () {
|
||||
return this;
|
||||
} );
|
||||
|
||||
Api.register( 'responsive.index()', function ( li ) {
|
||||
li = $(li);
|
||||
|
||||
return {
|
||||
column: li.data('dtr-index'),
|
||||
row: li.parent().data('dtr-index')
|
||||
};
|
||||
} );
|
||||
|
||||
Api.register( 'responsive.rebuild()', function () {
|
||||
return this.iterator( 'table', function ( ctx ) {
|
||||
if ( ctx._responsive ) {
|
||||
ctx._responsive._classLogic();
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
Api.register( 'responsive.recalc()', function () {
|
||||
return this.iterator( 'table', function ( ctx ) {
|
||||
if ( ctx._responsive ) {
|
||||
ctx._responsive._resizeAuto();
|
||||
ctx._responsive._resize();
|
||||
}
|
||||
} );
|
||||
} );
|
||||
|
||||
|
||||
/**
|
||||
* Version information
|
||||
*
|
||||
* @name Responsive.version
|
||||
* @static
|
||||
*/
|
||||
Responsive.version = '1.0.6';
|
||||
|
||||
|
||||
$.fn.dataTable.Responsive = Responsive;
|
||||
$.fn.DataTable.Responsive = Responsive;
|
||||
|
||||
// Attach a listener to the document which listens for DataTables initialisation
|
||||
// events so we can automatically initialise
|
||||
$(document).on( 'init.dt.dtr', function (e, settings, json) {
|
||||
if ( e.namespace !== 'dt' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $(settings.nTable).hasClass( 'responsive' ) ||
|
||||
$(settings.nTable).hasClass( 'dt-responsive' ) ||
|
||||
settings.oInit.responsive ||
|
||||
DataTable.defaults.responsive
|
||||
) {
|
||||
var init = settings.oInit.responsive;
|
||||
|
||||
if ( init !== false ) {
|
||||
new Responsive( settings, $.isPlainObject( init ) ? init : {} );
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
return Responsive;
|
||||
}; // /factory
|
||||
|
||||
|
||||
// Define as an AMD module if possible
|
||||
if ( typeof define === 'function' && define.amd ) {
|
||||
define( ['jquery', 'datatables'], factory );
|
||||
}
|
||||
else if ( typeof exports === 'object' ) {
|
||||
// Node/CommonJS
|
||||
factory( require('jquery'), require('datatables') );
|
||||
}
|
||||
else if ( jQuery && !jQuery.fn.dataTable.Responsive ) {
|
||||
// Otherwise simply initialise as normal, stopping multiple evaluation
|
||||
factory( jQuery, jQuery.fn.dataTable );
|
||||
}
|
||||
|
||||
|
||||
})(window, document);
|
19
assets/3rdparty/adminLTE/plugins/datatables/extensions/Responsive/js/dataTables.responsive.min.js
vendored
Executable file
19
assets/3rdparty/adminLTE/plugins/datatables/extensions/Responsive/js/dataTables.responsive.min.js
vendored
Executable file
@ -0,0 +1,19 @@
|
||||
/*!
|
||||
Responsive 1.0.6
|
||||
2014-2015 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(function(n,p){var o=function(e,k){var h=function(d,a){if(!k.versionCheck||!k.versionCheck("1.10.1"))throw"DataTables Responsive requires DataTables 1.10.1 or newer";this.s={dt:new k.Api(d),columns:[]};this.s.dt.settings()[0].responsive||(a&&"string"===typeof a.details&&(a.details={type:a.details}),this.c=e.extend(!0,{},h.defaults,k.defaults.responsive,a),d.responsive=this,this._constructor())};h.prototype={_constructor:function(){var d=this,a=this.s.dt;a.settings()[0]._responsive=this;e(n).on("resize.dtr orientationchange.dtr",
|
||||
a.settings()[0].oApi._fnThrottle(function(){d._resize()}));a.on("destroy.dtr",function(){e(n).off("resize.dtr orientationchange.dtr draw.dtr")});this.c.breakpoints.sort(function(a,c){return a.width<c.width?1:a.width>c.width?-1:0});this._classLogic();this._resizeAuto();var c=this.c.details;c.type&&(d._detailsInit(),this._detailsVis(),a.on("column-visibility.dtr",function(){d._detailsVis()}),a.on("draw.dtr",function(){a.rows({page:"current"}).iterator("row",function(b,c){var f=a.row(c);if(f.child.isShown()){var i=
|
||||
d.c.details.renderer(a,c);f.child(i,"child").show()}})}),e(a.table().node()).addClass("dtr-"+c.type));this._resize()},_columnsVisiblity:function(d){var a=this.s.dt,c=this.s.columns,b,g,f=e.map(c,function(a){return a.auto&&null===a.minWidth?!1:!0===a.auto?"-":-1!==e.inArray(d,a.includeIn)}),i=0;b=0;for(g=f.length;b<g;b++)!0===f[b]&&(i+=c[b].minWidth);b=a.settings()[0].oScroll;b=b.sY||b.sX?b.iBarWidth:0;a=a.table().container().offsetWidth-b-i;b=0;for(g=f.length;b<g;b++)c[b].control&&(a-=c[b].minWidth);
|
||||
i=!1;b=0;for(g=f.length;b<g;b++)"-"===f[b]&&!c[b].control&&(i||0>a-c[b].minWidth?(i=!0,f[b]=!1):f[b]=!0,a-=c[b].minWidth);a=!1;b=0;for(g=c.length;b<g;b++)if(!c[b].control&&!c[b].never&&!f[b]){a=!0;break}b=0;for(g=c.length;b<g;b++)c[b].control&&(f[b]=a);-1===e.inArray(!0,f)&&(f[0]=!0);return f},_classLogic:function(){var d=this,a=this.c.breakpoints,c=this.s.dt.columns().eq(0).map(function(a){a=this.column(a).header().className;return{className:a,includeIn:[],auto:!1,control:!1,never:a.match(/\bnever\b/)?
|
||||
!0:!1}}),b=function(a,b){var d=c[a].includeIn;-1===e.inArray(b,d)&&d.push(b)},g=function(f,g,e,j){if(e)if("max-"===e){j=d._find(g).width;g=0;for(e=a.length;g<e;g++)a[g].width<=j&&b(f,a[g].name)}else if("min-"===e){j=d._find(g).width;g=0;for(e=a.length;g<e;g++)a[g].width>=j&&b(f,a[g].name)}else{if("not-"===e){g=0;for(e=a.length;g<e;g++)-1===a[g].name.indexOf(j)&&b(f,a[g].name)}}else c[f].includeIn.push(g)};c.each(function(b,c){for(var d=b.className.split(" "),j=!1,h=0,k=d.length;h<k;h++){var l=e.trim(d[h]);
|
||||
if("all"===l){j=!0;b.includeIn=e.map(a,function(a){return a.name});return}if("none"===l||"never"===l){j=!0;return}if("control"===l){j=!0;b.control=!0;return}e.each(a,function(a,b){var d=b.name.split("-"),e=l.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));e&&(j=!0,e[2]===d[0]&&e[3]==="-"+d[1]?g(c,b.name,e[1],e[2]+e[3]):e[2]===d[0]&&!e[3]&&g(c,b.name,e[1],e[2]))})}j||(b.auto=!0)});this.s.columns=c},_detailsInit:function(){var d=this,a=this.s.dt,c=this.c.details;"inline"===c.type&&
|
||||
(c.target="td:first-child");var b=c.target;e(a.table().body()).on("click","string"===typeof b?b:"td",function(){if(e(a.table().node()).hasClass("collapsed")&&a.row(e(this).closest("tr")).length){if(typeof b==="number"){var c=b<0?a.columns().eq(0).length+b:b;if(a.cell(this).index().column!==c)return}c=a.row(e(this).closest("tr"));if(c.child.isShown()){c.child(false);e(c.node()).removeClass("parent")}else{var f=d.c.details.renderer(a,c[0]);c.child(f,"child").show();e(c.node()).addClass("parent")}}})},
|
||||
_detailsVis:function(){var d=this,a=this.s.dt,c=a.columns().indexes().filter(function(b){var c=a.column(b);return c.visible()?null:e(c.header()).hasClass("never")?null:b}),b=!0;if(0===c.length||1===c.length&&this.s.columns[c[0]].control)b=!1;b?a.rows({page:"current"}).eq(0).each(function(b){b=a.row(b);if(b.child()){var c=d.c.details.renderer(a,b[0]);!1===c?b.child.hide():b.child(c,"child").show()}}):a.rows({page:"current"}).eq(0).each(function(b){a.row(b).child.hide()})},_find:function(d){for(var a=
|
||||
this.c.breakpoints,c=0,b=a.length;c<b;c++)if(a[c].name===d)return a[c]},_resize:function(){var d=this.s.dt,a=e(n).width(),c=this.c.breakpoints,b=c[0].name,g=this.s.columns,f;for(f=c.length-1;0<=f;f--)if(a<=c[f].width){b=c[f].name;break}var i=this._columnsVisiblity(b),c=!1;f=0;for(a=g.length;f<a;f++)if(!1===i[f]&&!g[f].never){c=!0;break}e(d.table().node()).toggleClass("collapsed",c);d.columns().eq(0).each(function(a,b){d.column(a).visible(i[b])})},_resizeAuto:function(){var d=this.s.dt,a=this.s.columns;
|
||||
if(this.c.auto&&-1!==e.inArray(!0,e.map(a,function(a){return a.auto}))){d.table().node();var c=d.table().node().cloneNode(!1),b=e(d.table().header().cloneNode(!1)).appendTo(c),g=e(d.table().body().cloneNode(!1)).appendTo(c);e(d.table().footer()).clone(!1).appendTo(c);d.rows({page:"current"}).indexes().flatten().each(function(a){var b=d.row(a).node().cloneNode(!0);d.columns(":hidden").flatten().length&&e(b).append(d.cells(a,":hidden").nodes().to$().clone());e(b).appendTo(g)});var f=d.columns().header().to$().clone(!1);
|
||||
e("<tr/>").append(f).appendTo(b);"inline"===this.c.details.type&&e(c).addClass("dtr-inline collapsed");c=e("<div/>").css({width:1,height:1,overflow:"hidden"}).append(c);c.find("th.never, td.never").remove();c.insertBefore(d.table().node());d.columns().eq(0).each(function(b){a[b].minWidth=f[b].offsetWidth||0});c.remove()}}};h.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];h.defaults={breakpoints:h.breakpoints,
|
||||
auto:!0,details:{renderer:function(d,a){var c=d.cells(a,":hidden").eq(0).map(function(a){var c=e(d.column(a.column).header()),a=d.cell(a).index();if(c.hasClass("control")||c.hasClass("never"))return"";var f=d.settings()[0],f=f.oApi._fnGetCellData(f,a.row,a.column,"display");(c=c.text())&&(c+=":");return'<li data-dtr-index="'+a.column+'"><span class="dtr-title">'+c+'</span> <span class="dtr-data">'+f+"</span></li>"}).toArray().join("");return c?e('<ul data-dtr-index="'+a+'"/>').append(c):!1},target:0,
|
||||
type:"inline"}};var m=e.fn.dataTable.Api;m.register("responsive()",function(){return this});m.register("responsive.index()",function(d){d=e(d);return{column:d.data("dtr-index"),row:d.parent().data("dtr-index")}});m.register("responsive.rebuild()",function(){return this.iterator("table",function(d){d._responsive&&d._responsive._classLogic()})});m.register("responsive.recalc()",function(){return this.iterator("table",function(d){d._responsive&&(d._responsive._resizeAuto(),d._responsive._resize())})});
|
||||
h.version="1.0.6";e.fn.dataTable.Responsive=h;e.fn.DataTable.Responsive=h;e(p).on("init.dt.dtr",function(d,a){if("dt"===d.namespace&&(e(a.nTable).hasClass("responsive")||e(a.nTable).hasClass("dt-responsive")||a.oInit.responsive||k.defaults.responsive)){var c=a.oInit.responsive;!1!==c&&new h(a,e.isPlainObject(c)?c:{})}});return h};"function"===typeof define&&define.amd?define(["jquery","datatables"],o):"object"===typeof exports?o(require("jquery"),require("datatables")):jQuery&&!jQuery.fn.dataTable.Responsive&&
|
||||
o(jQuery,jQuery.fn.dataTable)})(window,document);
|
Reference in New Issue
Block a user