mirror of
https://github.com/pierre42100/ComunicWeb
synced 2025-07-07 11:52:51 +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
466
assets/3rdparty/adminLTE/plugins/ionicons/builder/scripts/eotlitetool.py
vendored
Normal file
466
assets/3rdparty/adminLTE/plugins/ionicons/builder/scripts/eotlitetool.py
vendored
Normal file
@ -0,0 +1,466 @@
|
||||
#!/usr/bin/env python
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is font utility code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is Mozilla Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2009
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# John Daggett <jdaggett@mozilla.com>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK ***** */
|
||||
|
||||
# eotlitetool.py - create EOT version of OpenType font for use with IE
|
||||
#
|
||||
# Usage: eotlitetool.py [-o output-filename] font1 [font2 ...]
|
||||
#
|
||||
|
||||
# OpenType file structure
|
||||
# http://www.microsoft.com/typography/otspec/otff.htm
|
||||
#
|
||||
# Types:
|
||||
#
|
||||
# BYTE 8-bit unsigned integer.
|
||||
# CHAR 8-bit signed integer.
|
||||
# USHORT 16-bit unsigned integer.
|
||||
# SHORT 16-bit signed integer.
|
||||
# ULONG 32-bit unsigned integer.
|
||||
# Fixed 32-bit signed fixed-point number (16.16)
|
||||
# LONGDATETIME Date represented in number of seconds since 12:00 midnight, January 1, 1904. The value is represented as a signed 64-bit integer.
|
||||
#
|
||||
# SFNT Header
|
||||
#
|
||||
# Fixed sfnt version // 0x00010000 for version 1.0.
|
||||
# USHORT numTables // Number of tables.
|
||||
# USHORT searchRange // (Maximum power of 2 <= numTables) x 16.
|
||||
# USHORT entrySelector // Log2(maximum power of 2 <= numTables).
|
||||
# USHORT rangeShift // NumTables x 16-searchRange.
|
||||
#
|
||||
# Table Directory
|
||||
#
|
||||
# ULONG tag // 4-byte identifier.
|
||||
# ULONG checkSum // CheckSum for this table.
|
||||
# ULONG offset // Offset from beginning of TrueType font file.
|
||||
# ULONG length // Length of this table.
|
||||
#
|
||||
# OS/2 Table (Version 4)
|
||||
#
|
||||
# USHORT version // 0x0004
|
||||
# SHORT xAvgCharWidth
|
||||
# USHORT usWeightClass
|
||||
# USHORT usWidthClass
|
||||
# USHORT fsType
|
||||
# SHORT ySubscriptXSize
|
||||
# SHORT ySubscriptYSize
|
||||
# SHORT ySubscriptXOffset
|
||||
# SHORT ySubscriptYOffset
|
||||
# SHORT ySuperscriptXSize
|
||||
# SHORT ySuperscriptYSize
|
||||
# SHORT ySuperscriptXOffset
|
||||
# SHORT ySuperscriptYOffset
|
||||
# SHORT yStrikeoutSize
|
||||
# SHORT yStrikeoutPosition
|
||||
# SHORT sFamilyClass
|
||||
# BYTE panose[10]
|
||||
# ULONG ulUnicodeRange1 // Bits 0-31
|
||||
# ULONG ulUnicodeRange2 // Bits 32-63
|
||||
# ULONG ulUnicodeRange3 // Bits 64-95
|
||||
# ULONG ulUnicodeRange4 // Bits 96-127
|
||||
# CHAR achVendID[4]
|
||||
# USHORT fsSelection
|
||||
# USHORT usFirstCharIndex
|
||||
# USHORT usLastCharIndex
|
||||
# SHORT sTypoAscender
|
||||
# SHORT sTypoDescender
|
||||
# SHORT sTypoLineGap
|
||||
# USHORT usWinAscent
|
||||
# USHORT usWinDescent
|
||||
# ULONG ulCodePageRange1 // Bits 0-31
|
||||
# ULONG ulCodePageRange2 // Bits 32-63
|
||||
# SHORT sxHeight
|
||||
# SHORT sCapHeight
|
||||
# USHORT usDefaultChar
|
||||
# USHORT usBreakChar
|
||||
# USHORT usMaxContext
|
||||
#
|
||||
#
|
||||
# The Naming Table is organized as follows:
|
||||
#
|
||||
# [name table header]
|
||||
# [name records]
|
||||
# [string data]
|
||||
#
|
||||
# Name Table Header
|
||||
#
|
||||
# USHORT format // Format selector (=0).
|
||||
# USHORT count // Number of name records.
|
||||
# USHORT stringOffset // Offset to start of string storage (from start of table).
|
||||
#
|
||||
# Name Record
|
||||
#
|
||||
# USHORT platformID // Platform ID.
|
||||
# USHORT encodingID // Platform-specific encoding ID.
|
||||
# USHORT languageID // Language ID.
|
||||
# USHORT nameID // Name ID.
|
||||
# USHORT length // String length (in bytes).
|
||||
# USHORT offset // String offset from start of storage area (in bytes).
|
||||
#
|
||||
# head Table
|
||||
#
|
||||
# Fixed tableVersion // Table version number 0x00010000 for version 1.0.
|
||||
# Fixed fontRevision // Set by font manufacturer.
|
||||
# ULONG checkSumAdjustment // To compute: set it to 0, sum the entire font as ULONG, then store 0xB1B0AFBA - sum.
|
||||
# ULONG magicNumber // Set to 0x5F0F3CF5.
|
||||
# USHORT flags
|
||||
# USHORT unitsPerEm // Valid range is from 16 to 16384. This value should be a power of 2 for fonts that have TrueType outlines.
|
||||
# LONGDATETIME created // Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer
|
||||
# LONGDATETIME modified // Number of seconds since 12:00 midnight, January 1, 1904. 64-bit integer
|
||||
# SHORT xMin // For all glyph bounding boxes.
|
||||
# SHORT yMin
|
||||
# SHORT xMax
|
||||
# SHORT yMax
|
||||
# USHORT macStyle
|
||||
# USHORT lowestRecPPEM // Smallest readable size in pixels.
|
||||
# SHORT fontDirectionHint
|
||||
# SHORT indexToLocFormat // 0 for short offsets, 1 for long.
|
||||
# SHORT glyphDataFormat // 0 for current format.
|
||||
#
|
||||
#
|
||||
#
|
||||
# Embedded OpenType (EOT) file format
|
||||
# http://www.w3.org/Submission/EOT/
|
||||
#
|
||||
# EOT version 0x00020001
|
||||
#
|
||||
# An EOT font consists of a header with the original OpenType font
|
||||
# appended at the end. Most of the data in the EOT header is simply a
|
||||
# copy of data from specific tables within the font data. The exceptions
|
||||
# are the 'Flags' field and the root string name field. The root string
|
||||
# is a set of names indicating domains for which the font data can be
|
||||
# used. A null root string implies the font data can be used anywhere.
|
||||
# The EOT header is in little-endian byte order but the font data remains
|
||||
# in big-endian order as specified by the OpenType spec.
|
||||
#
|
||||
# Overall structure:
|
||||
#
|
||||
# [EOT header]
|
||||
# [EOT name records]
|
||||
# [font data]
|
||||
#
|
||||
# EOT header
|
||||
#
|
||||
# ULONG eotSize // Total structure length in bytes (including string and font data)
|
||||
# ULONG fontDataSize // Length of the OpenType font (FontData) in bytes
|
||||
# ULONG version // Version number of this format - 0x00020001
|
||||
# ULONG flags // Processing Flags (0 == no special processing)
|
||||
# BYTE fontPANOSE[10] // OS/2 Table panose
|
||||
# BYTE charset // DEFAULT_CHARSET (0x01)
|
||||
# BYTE italic // 0x01 if ITALIC in OS/2 Table fsSelection is set, 0 otherwise
|
||||
# ULONG weight // OS/2 Table usWeightClass
|
||||
# USHORT fsType // OS/2 Table fsType (specifies embedding permission flags)
|
||||
# USHORT magicNumber // Magic number for EOT file - 0x504C.
|
||||
# ULONG unicodeRange1 // OS/2 Table ulUnicodeRange1
|
||||
# ULONG unicodeRange2 // OS/2 Table ulUnicodeRange2
|
||||
# ULONG unicodeRange3 // OS/2 Table ulUnicodeRange3
|
||||
# ULONG unicodeRange4 // OS/2 Table ulUnicodeRange4
|
||||
# ULONG codePageRange1 // OS/2 Table ulCodePageRange1
|
||||
# ULONG codePageRange2 // OS/2 Table ulCodePageRange2
|
||||
# ULONG checkSumAdjustment // head Table CheckSumAdjustment
|
||||
# ULONG reserved[4] // Reserved - must be 0
|
||||
# USHORT padding1 // Padding - must be 0
|
||||
#
|
||||
# EOT name records
|
||||
#
|
||||
# USHORT FamilyNameSize // Font family name size in bytes
|
||||
# BYTE FamilyName[FamilyNameSize] // Font family name (name ID = 1), little-endian UTF-16
|
||||
# USHORT Padding2 // Padding - must be 0
|
||||
#
|
||||
# USHORT StyleNameSize // Style name size in bytes
|
||||
# BYTE StyleName[StyleNameSize] // Style name (name ID = 2), little-endian UTF-16
|
||||
# USHORT Padding3 // Padding - must be 0
|
||||
#
|
||||
# USHORT VersionNameSize // Version name size in bytes
|
||||
# bytes VersionName[VersionNameSize] // Version name (name ID = 5), little-endian UTF-16
|
||||
# USHORT Padding4 // Padding - must be 0
|
||||
#
|
||||
# USHORT FullNameSize // Full name size in bytes
|
||||
# BYTE FullName[FullNameSize] // Full name (name ID = 4), little-endian UTF-16
|
||||
# USHORT Padding5 // Padding - must be 0
|
||||
#
|
||||
# USHORT RootStringSize // Root string size in bytes
|
||||
# BYTE RootString[RootStringSize] // Root string, little-endian UTF-16
|
||||
|
||||
|
||||
|
||||
import optparse
|
||||
import struct
|
||||
|
||||
class FontError(Exception):
|
||||
"""Error related to font handling"""
|
||||
pass
|
||||
|
||||
def multichar(str):
|
||||
vals = struct.unpack('4B', str[:4])
|
||||
return (vals[0] << 24) + (vals[1] << 16) + (vals[2] << 8) + vals[3]
|
||||
|
||||
def multicharval(v):
|
||||
return struct.pack('4B', (v >> 24) & 0xFF, (v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF)
|
||||
|
||||
class EOT:
|
||||
EOT_VERSION = 0x00020001
|
||||
EOT_MAGIC_NUMBER = 0x504c
|
||||
EOT_DEFAULT_CHARSET = 0x01
|
||||
EOT_FAMILY_NAME_INDEX = 0 # order of names in variable portion of EOT header
|
||||
EOT_STYLE_NAME_INDEX = 1
|
||||
EOT_VERSION_NAME_INDEX = 2
|
||||
EOT_FULL_NAME_INDEX = 3
|
||||
EOT_NUM_NAMES = 4
|
||||
|
||||
EOT_HEADER_PACK = '<4L10B2BL2H7L18x'
|
||||
|
||||
class OpenType:
|
||||
SFNT_CFF = multichar('OTTO') # Postscript CFF SFNT version
|
||||
SFNT_TRUE = 0x10000 # Standard TrueType version
|
||||
SFNT_APPLE = multichar('true') # Apple TrueType version
|
||||
|
||||
SFNT_UNPACK = '>I4H'
|
||||
TABLE_DIR_UNPACK = '>4I'
|
||||
|
||||
TABLE_HEAD = multichar('head') # TrueType table tags
|
||||
TABLE_NAME = multichar('name')
|
||||
TABLE_OS2 = multichar('OS/2')
|
||||
TABLE_GLYF = multichar('glyf')
|
||||
TABLE_CFF = multichar('CFF ')
|
||||
|
||||
OS2_FSSELECTION_ITALIC = 0x1
|
||||
OS2_UNPACK = '>4xH2xH22x10B4L4xH14x2L'
|
||||
|
||||
HEAD_UNPACK = '>8xL'
|
||||
|
||||
NAME_RECORD_UNPACK = '>6H'
|
||||
NAME_ID_FAMILY = 1
|
||||
NAME_ID_STYLE = 2
|
||||
NAME_ID_UNIQUE = 3
|
||||
NAME_ID_FULL = 4
|
||||
NAME_ID_VERSION = 5
|
||||
NAME_ID_POSTSCRIPT = 6
|
||||
PLATFORM_ID_UNICODE = 0 # Mac OS uses this typically
|
||||
PLATFORM_ID_MICROSOFT = 3
|
||||
ENCODING_ID_MICROSOFT_UNICODEBMP = 1 # with Microsoft platformID BMP-only Unicode encoding
|
||||
LANG_ID_MICROSOFT_EN_US = 0x0409 # with Microsoft platformID EN US lang code
|
||||
|
||||
def eotname(ttf):
|
||||
i = ttf.rfind('.')
|
||||
if i != -1:
|
||||
ttf = ttf[:i]
|
||||
return ttf + '.eotlite'
|
||||
|
||||
def readfont(f):
|
||||
data = open(f, 'rb').read()
|
||||
return data
|
||||
|
||||
def get_table_directory(data):
|
||||
"""read the SFNT header and table directory"""
|
||||
datalen = len(data)
|
||||
sfntsize = struct.calcsize(OpenType.SFNT_UNPACK)
|
||||
if sfntsize > datalen:
|
||||
raise FontError, 'truncated font data'
|
||||
sfntvers, numTables = struct.unpack(OpenType.SFNT_UNPACK, data[:sfntsize])[:2]
|
||||
if sfntvers != OpenType.SFNT_CFF and sfntvers != OpenType.SFNT_TRUE:
|
||||
raise FontError, 'invalid font type';
|
||||
|
||||
font = {}
|
||||
font['version'] = sfntvers
|
||||
font['numTables'] = numTables
|
||||
|
||||
# create set of offsets, lengths for tables
|
||||
table_dir_size = struct.calcsize(OpenType.TABLE_DIR_UNPACK)
|
||||
if sfntsize + table_dir_size * numTables > datalen:
|
||||
raise FontError, 'truncated font data, table directory extends past end of data'
|
||||
table_dir = {}
|
||||
for i in range(0, numTables):
|
||||
start = sfntsize + i * table_dir_size
|
||||
end = start + table_dir_size
|
||||
tag, check, bongo, dirlen = struct.unpack(OpenType.TABLE_DIR_UNPACK, data[start:end])
|
||||
table_dir[tag] = {'offset': bongo, 'length': dirlen, 'checksum': check}
|
||||
|
||||
font['tableDir'] = table_dir
|
||||
|
||||
return font
|
||||
|
||||
def get_name_records(nametable):
|
||||
"""reads through the name records within name table"""
|
||||
name = {}
|
||||
# read the header
|
||||
headersize = 6
|
||||
count, strOffset = struct.unpack('>2H', nametable[2:6])
|
||||
namerecsize = struct.calcsize(OpenType.NAME_RECORD_UNPACK)
|
||||
if count * namerecsize + headersize > len(nametable):
|
||||
raise FontError, 'names exceed size of name table'
|
||||
name['count'] = count
|
||||
name['strOffset'] = strOffset
|
||||
|
||||
# read through the name records
|
||||
namerecs = {}
|
||||
for i in range(0, count):
|
||||
start = headersize + i * namerecsize
|
||||
end = start + namerecsize
|
||||
platformID, encodingID, languageID, nameID, namelen, offset = struct.unpack(OpenType.NAME_RECORD_UNPACK, nametable[start:end])
|
||||
if platformID != OpenType.PLATFORM_ID_MICROSOFT or \
|
||||
encodingID != OpenType.ENCODING_ID_MICROSOFT_UNICODEBMP or \
|
||||
languageID != OpenType.LANG_ID_MICROSOFT_EN_US:
|
||||
continue
|
||||
namerecs[nameID] = {'offset': offset, 'length': namelen}
|
||||
|
||||
name['namerecords'] = namerecs
|
||||
return name
|
||||
|
||||
def make_eot_name_headers(fontdata, nameTableDir):
|
||||
"""extracts names from the name table and generates the names header portion of the EOT header"""
|
||||
nameoffset = nameTableDir['offset']
|
||||
namelen = nameTableDir['length']
|
||||
name = get_name_records(fontdata[nameoffset : nameoffset + namelen])
|
||||
namestroffset = name['strOffset']
|
||||
namerecs = name['namerecords']
|
||||
|
||||
eotnames = (OpenType.NAME_ID_FAMILY, OpenType.NAME_ID_STYLE, OpenType.NAME_ID_VERSION, OpenType.NAME_ID_FULL)
|
||||
nameheaders = []
|
||||
for nameid in eotnames:
|
||||
if nameid in namerecs:
|
||||
namerecord = namerecs[nameid]
|
||||
noffset = namerecord['offset']
|
||||
nlen = namerecord['length']
|
||||
nformat = '%dH' % (nlen / 2) # length is in number of bytes
|
||||
start = nameoffset + namestroffset + noffset
|
||||
end = start + nlen
|
||||
nstr = struct.unpack('>' + nformat, fontdata[start:end])
|
||||
nameheaders.append(struct.pack('<H' + nformat + '2x', nlen, *nstr))
|
||||
else:
|
||||
nameheaders.append(struct.pack('4x')) # len = 0, padding = 0
|
||||
|
||||
return ''.join(nameheaders)
|
||||
|
||||
# just return a null-string (len = 0)
|
||||
def make_root_string():
|
||||
return struct.pack('2x')
|
||||
|
||||
def make_eot_header(fontdata):
|
||||
"""given ttf font data produce an EOT header"""
|
||||
fontDataSize = len(fontdata)
|
||||
font = get_table_directory(fontdata)
|
||||
|
||||
# toss out .otf fonts, t2embed library doesn't support these
|
||||
tableDir = font['tableDir']
|
||||
|
||||
# check for required tables
|
||||
required = (OpenType.TABLE_HEAD, OpenType.TABLE_NAME, OpenType.TABLE_OS2)
|
||||
for table in required:
|
||||
if not (table in tableDir):
|
||||
raise FontError, 'missing required table ' + multicharval(table)
|
||||
|
||||
# read name strings
|
||||
|
||||
# pull out data from individual tables to construct fixed header portion
|
||||
# need to calculate eotSize before packing
|
||||
version = EOT.EOT_VERSION
|
||||
flags = 0
|
||||
charset = EOT.EOT_DEFAULT_CHARSET
|
||||
magicNumber = EOT.EOT_MAGIC_NUMBER
|
||||
|
||||
# read values from OS/2 table
|
||||
os2Dir = tableDir[OpenType.TABLE_OS2]
|
||||
os2offset = os2Dir['offset']
|
||||
os2size = struct.calcsize(OpenType.OS2_UNPACK)
|
||||
|
||||
if os2size > os2Dir['length']:
|
||||
raise FontError, 'OS/2 table invalid length'
|
||||
|
||||
os2fields = struct.unpack(OpenType.OS2_UNPACK, fontdata[os2offset : os2offset + os2size])
|
||||
|
||||
panose = []
|
||||
urange = []
|
||||
codepage = []
|
||||
|
||||
weight, fsType = os2fields[:2]
|
||||
panose[:10] = os2fields[2:12]
|
||||
urange[:4] = os2fields[12:16]
|
||||
fsSelection = os2fields[16]
|
||||
codepage[:2] = os2fields[17:19]
|
||||
|
||||
italic = fsSelection & OpenType.OS2_FSSELECTION_ITALIC
|
||||
|
||||
# read in values from head table
|
||||
headDir = tableDir[OpenType.TABLE_HEAD]
|
||||
headoffset = headDir['offset']
|
||||
headsize = struct.calcsize(OpenType.HEAD_UNPACK)
|
||||
|
||||
if headsize > headDir['length']:
|
||||
raise FontError, 'head table invalid length'
|
||||
|
||||
headfields = struct.unpack(OpenType.HEAD_UNPACK, fontdata[headoffset : headoffset + headsize])
|
||||
checkSumAdjustment = headfields[0]
|
||||
|
||||
# make name headers
|
||||
nameheaders = make_eot_name_headers(fontdata, tableDir[OpenType.TABLE_NAME])
|
||||
rootstring = make_root_string()
|
||||
|
||||
# calculate the total eot size
|
||||
eotSize = struct.calcsize(EOT.EOT_HEADER_PACK) + len(nameheaders) + len(rootstring) + fontDataSize
|
||||
fixed = struct.pack(EOT.EOT_HEADER_PACK,
|
||||
*([eotSize, fontDataSize, version, flags] + panose + [charset, italic] +
|
||||
[weight, fsType, magicNumber] + urange + codepage + [checkSumAdjustment]))
|
||||
|
||||
return ''.join((fixed, nameheaders, rootstring))
|
||||
|
||||
|
||||
def write_eot_font(eot, header, data):
|
||||
open(eot,'wb').write(''.join((header, data)))
|
||||
return
|
||||
|
||||
def main():
|
||||
|
||||
# deal with options
|
||||
p = optparse.OptionParser()
|
||||
p.add_option('--output', '-o', default="world")
|
||||
options, args = p.parse_args()
|
||||
|
||||
# iterate over font files
|
||||
for f in args:
|
||||
data = readfont(f)
|
||||
if len(data) == 0:
|
||||
print 'Error reading %s' % f
|
||||
else:
|
||||
eot = eotname(f)
|
||||
header = make_eot_header(data)
|
||||
write_eot_font(eot, header, data)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
|
Reference in New Issue
Block a user