summaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/Resources.php379
-rw-r--r--resources/assets/file-type-icons/COPYING2
-rw-r--r--resources/assets/poweredby_mediawiki_132x47.pngbin0 -> 6011 bytes
-rw-r--r--resources/assets/poweredby_mediawiki_176x62.pngbin0 -> 8796 bytes
-rw-r--r--resources/lib/jquery.client/AUTHORS.txt9
-rw-r--r--resources/lib/jquery.client/LICENSE-MIT.txt20
-rw-r--r--resources/lib/jquery.client/README.md6
-rw-r--r--resources/lib/jquery.client/jquery.client.js (renamed from resources/src/jquery/jquery.client.js)26
-rw-r--r--resources/lib/jquery.ui/themes/smoothness/PATCHES3
-rw-r--r--resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css2
-rw-r--r--resources/lib/jquery.ui/themes/smoothness/jquery.ui.theme.css4
-rw-r--r--resources/lib/jquery/jquery.jStorage.js20
-rw-r--r--resources/lib/jquery/jquery.js13
-rw-r--r--resources/lib/jquery/jquery.json.js199
-rw-r--r--resources/lib/jquery/jquery.migrate.js551
-rw-r--r--resources/lib/jquery/jquery.qunit.js2288
-rw-r--r--resources/lib/moment/locale/af.js4
-rw-r--r--resources/lib/moment/locale/ar-ma.js3
-rw-r--r--resources/lib/moment/locale/ar-sa.js5
-rw-r--r--resources/lib/moment/locale/ar.js5
-rw-r--r--resources/lib/moment/locale/az.js4
-rw-r--r--resources/lib/moment/locale/be.js4
-rw-r--r--resources/lib/moment/locale/bg.js4
-rw-r--r--resources/lib/moment/locale/bn.js3
-rw-r--r--resources/lib/moment/locale/bo.js3
-rw-r--r--resources/lib/moment/locale/br.js4
-rw-r--r--resources/lib/moment/locale/bs.js8
-rw-r--r--resources/lib/moment/locale/ca.js15
-rw-r--r--resources/lib/moment/locale/cs.js6
-rw-r--r--resources/lib/moment/locale/cv.js4
-rw-r--r--resources/lib/moment/locale/cy.js4
-rw-r--r--resources/lib/moment/locale/da.js4
-rw-r--r--resources/lib/moment/locale/de-at.js16
-rw-r--r--resources/lib/moment/locale/de.js16
-rw-r--r--resources/lib/moment/locale/el.js10
-rw-r--r--resources/lib/moment/locale/en-au.js4
-rw-r--r--resources/lib/moment/locale/en-ca.js4
-rw-r--r--resources/lib/moment/locale/en-gb.js4
-rw-r--r--resources/lib/moment/locale/eo.js4
-rw-r--r--resources/lib/moment/locale/es.js4
-rw-r--r--resources/lib/moment/locale/et.js4
-rw-r--r--resources/lib/moment/locale/eu.js4
-rw-r--r--resources/lib/moment/locale/fa.js4
-rw-r--r--resources/lib/moment/locale/fi.js4
-rw-r--r--resources/lib/moment/locale/fo.js4
-rw-r--r--resources/lib/moment/locale/fr-ca.js4
-rw-r--r--resources/lib/moment/locale/fr.js4
-rw-r--r--resources/lib/moment/locale/gl.js4
-rw-r--r--resources/lib/moment/locale/he.js3
-rw-r--r--resources/lib/moment/locale/hi.js3
-rw-r--r--resources/lib/moment/locale/hr.js4
-rw-r--r--resources/lib/moment/locale/hu.js4
-rw-r--r--resources/lib/moment/locale/hy-am.js4
-rw-r--r--resources/lib/moment/locale/id.js3
-rw-r--r--resources/lib/moment/locale/is.js4
-rw-r--r--resources/lib/moment/locale/it.js13
-rw-r--r--resources/lib/moment/locale/ja.js3
-rw-r--r--resources/lib/moment/locale/ka.js4
-rw-r--r--resources/lib/moment/locale/km.js3
-rw-r--r--resources/lib/moment/locale/ko.js4
-rw-r--r--resources/lib/moment/locale/lb.js4
-rw-r--r--resources/lib/moment/locale/lt.js4
-rw-r--r--resources/lib/moment/locale/lv.js4
-rw-r--r--resources/lib/moment/locale/mk.js4
-rw-r--r--resources/lib/moment/locale/ml.js3
-rw-r--r--resources/lib/moment/locale/mr.js3
-rw-r--r--resources/lib/moment/locale/ms-my.js3
-rw-r--r--resources/lib/moment/locale/my.js3
-rw-r--r--resources/lib/moment/locale/nb.js4
-rw-r--r--resources/lib/moment/locale/ne.js3
-rw-r--r--resources/lib/moment/locale/nl.js4
-rw-r--r--resources/lib/moment/locale/nn.js4
-rw-r--r--resources/lib/moment/locale/pl.js4
-rw-r--r--resources/lib/moment/locale/pt-br.js4
-rw-r--r--resources/lib/moment/locale/pt.js4
-rw-r--r--resources/lib/moment/locale/ro.js3
-rw-r--r--resources/lib/moment/locale/ru.js40
-rw-r--r--resources/lib/moment/locale/sk.js4
-rw-r--r--resources/lib/moment/locale/sl.js4
-rw-r--r--resources/lib/moment/locale/sq.js4
-rw-r--r--resources/lib/moment/locale/sr-cyrl.js4
-rw-r--r--resources/lib/moment/locale/sr.js4
-rw-r--r--resources/lib/moment/locale/sv.js4
-rw-r--r--resources/lib/moment/locale/ta.js4
-rw-r--r--resources/lib/moment/locale/th.js3
-rw-r--r--resources/lib/moment/locale/tl-ph.js4
-rw-r--r--resources/lib/moment/locale/tr.js4
-rw-r--r--resources/lib/moment/locale/tzm-latn.js3
-rw-r--r--resources/lib/moment/locale/tzm.js3
-rw-r--r--resources/lib/moment/locale/uk.js4
-rw-r--r--resources/lib/moment/locale/uz.js3
-rw-r--r--resources/lib/moment/locale/vi.js4
-rw-r--r--resources/lib/moment/locale/zh-cn.js4
-rw-r--r--resources/lib/moment/locale/zh-tw.js4
-rw-r--r--resources/lib/moment/moment.js148
-rw-r--r--resources/lib/mustache/mustache.js578
-rw-r--r--resources/lib/oojs-ui/i18n/ace.json1
-rw-r--r--resources/lib/oojs-ui/i18n/af.json13
-rw-r--r--resources/lib/oojs-ui/i18n/am.json3
-rw-r--r--resources/lib/oojs-ui/i18n/ar.json8
-rw-r--r--resources/lib/oojs-ui/i18n/arc.json3
-rw-r--r--resources/lib/oojs-ui/i18n/awa.json8
-rw-r--r--resources/lib/oojs-ui/i18n/az.json1
-rw-r--r--resources/lib/oojs-ui/i18n/ba.json1
-rw-r--r--resources/lib/oojs-ui/i18n/bcc.json9
-rw-r--r--resources/lib/oojs-ui/i18n/bcl.json1
-rw-r--r--resources/lib/oojs-ui/i18n/be-tarask.json1
-rw-r--r--resources/lib/oojs-ui/i18n/be.json7
-rw-r--r--resources/lib/oojs-ui/i18n/bg.json1
-rw-r--r--resources/lib/oojs-ui/i18n/bn.json16
-rw-r--r--resources/lib/oojs-ui/i18n/br.json8
-rw-r--r--resources/lib/oojs-ui/i18n/bs.json13
-rw-r--r--resources/lib/oojs-ui/i18n/ca.json16
-rw-r--r--resources/lib/oojs-ui/i18n/ce.json10
-rw-r--r--resources/lib/oojs-ui/i18n/ckb.json6
-rw-r--r--resources/lib/oojs-ui/i18n/co.json1
-rw-r--r--resources/lib/oojs-ui/i18n/crh-cyrl.json8
-rw-r--r--resources/lib/oojs-ui/i18n/crh-latn.json8
-rw-r--r--resources/lib/oojs-ui/i18n/cs.json8
-rw-r--r--resources/lib/oojs-ui/i18n/cu.json4
-rw-r--r--resources/lib/oojs-ui/i18n/cy.json1
-rw-r--r--resources/lib/oojs-ui/i18n/da.json1
-rw-r--r--resources/lib/oojs-ui/i18n/de.json5
-rw-r--r--resources/lib/oojs-ui/i18n/diq.json1
-rw-r--r--resources/lib/oojs-ui/i18n/dsb.json1
-rw-r--r--resources/lib/oojs-ui/i18n/egl.json7
-rw-r--r--resources/lib/oojs-ui/i18n/el.json5
-rw-r--r--resources/lib/oojs-ui/i18n/eml.json7
-rw-r--r--resources/lib/oojs-ui/i18n/en.json5
-rw-r--r--resources/lib/oojs-ui/i18n/eo.json1
-rw-r--r--resources/lib/oojs-ui/i18n/es.json5
-rw-r--r--resources/lib/oojs-ui/i18n/et.json5
-rw-r--r--resources/lib/oojs-ui/i18n/eu.json13
-rw-r--r--resources/lib/oojs-ui/i18n/fa.json8
-rw-r--r--resources/lib/oojs-ui/i18n/fi.json5
-rw-r--r--resources/lib/oojs-ui/i18n/fo.json12
-rw-r--r--resources/lib/oojs-ui/i18n/fr.json8
-rw-r--r--resources/lib/oojs-ui/i18n/frr.json1
-rw-r--r--resources/lib/oojs-ui/i18n/fur.json1
-rw-r--r--resources/lib/oojs-ui/i18n/fy.json11
-rw-r--r--resources/lib/oojs-ui/i18n/gl.json8
-rw-r--r--resources/lib/oojs-ui/i18n/he.json5
-rw-r--r--resources/lib/oojs-ui/i18n/hi.json14
-rw-r--r--resources/lib/oojs-ui/i18n/hr.json2
-rw-r--r--resources/lib/oojs-ui/i18n/hsb.json11
-rw-r--r--resources/lib/oojs-ui/i18n/hu.json5
-rw-r--r--resources/lib/oojs-ui/i18n/hy.json5
-rw-r--r--resources/lib/oojs-ui/i18n/id.json12
-rw-r--r--resources/lib/oojs-ui/i18n/ie.json1
-rw-r--r--resources/lib/oojs-ui/i18n/ilo.json5
-rw-r--r--resources/lib/oojs-ui/i18n/is.json12
-rw-r--r--resources/lib/oojs-ui/i18n/it.json5
-rw-r--r--resources/lib/oojs-ui/i18n/ja.json8
-rw-r--r--resources/lib/oojs-ui/i18n/jv.json1
-rw-r--r--resources/lib/oojs-ui/i18n/ka.json12
-rw-r--r--resources/lib/oojs-ui/i18n/kk-cyrl.json11
-rw-r--r--resources/lib/oojs-ui/i18n/km.json1
-rw-r--r--resources/lib/oojs-ui/i18n/kn.json21
-rw-r--r--resources/lib/oojs-ui/i18n/ko.json5
-rw-r--r--resources/lib/oojs-ui/i18n/krc.json11
-rw-r--r--resources/lib/oojs-ui/i18n/ksh.json19
-rw-r--r--resources/lib/oojs-ui/i18n/ku-latn.json13
-rw-r--r--resources/lib/oojs-ui/i18n/kw.json3
-rw-r--r--resources/lib/oojs-ui/i18n/ky.json3
-rw-r--r--resources/lib/oojs-ui/i18n/lb.json5
-rw-r--r--resources/lib/oojs-ui/i18n/lmo.json1
-rw-r--r--resources/lib/oojs-ui/i18n/lt.json1
-rw-r--r--resources/lib/oojs-ui/i18n/lv.json6
-rw-r--r--resources/lib/oojs-ui/i18n/lzh.json2
-rw-r--r--resources/lib/oojs-ui/i18n/mg.json3
-rw-r--r--resources/lib/oojs-ui/i18n/min.json7
-rw-r--r--resources/lib/oojs-ui/i18n/mk.json5
-rw-r--r--resources/lib/oojs-ui/i18n/ml.json1
-rw-r--r--resources/lib/oojs-ui/i18n/mr.json1
-rw-r--r--resources/lib/oojs-ui/i18n/nap.json1
-rw-r--r--resources/lib/oojs-ui/i18n/nb.json8
-rw-r--r--resources/lib/oojs-ui/i18n/nds-nl.json13
-rw-r--r--resources/lib/oojs-ui/i18n/nds.json1
-rw-r--r--resources/lib/oojs-ui/i18n/ne.json12
-rw-r--r--resources/lib/oojs-ui/i18n/nl.json5
-rw-r--r--resources/lib/oojs-ui/i18n/nn.json1
-rw-r--r--resources/lib/oojs-ui/i18n/oc.json5
-rw-r--r--resources/lib/oojs-ui/i18n/om.json5
-rw-r--r--resources/lib/oojs-ui/i18n/or.json13
-rw-r--r--resources/lib/oojs-ui/i18n/pa.json15
-rw-r--r--resources/lib/oojs-ui/i18n/pfl.json6
-rw-r--r--resources/lib/oojs-ui/i18n/pl.json5
-rw-r--r--resources/lib/oojs-ui/i18n/pms.json1
-rw-r--r--resources/lib/oojs-ui/i18n/ps.json11
-rw-r--r--resources/lib/oojs-ui/i18n/pt-br.json1
-rw-r--r--resources/lib/oojs-ui/i18n/pt.json5
-rw-r--r--resources/lib/oojs-ui/i18n/qqq.json5
-rw-r--r--resources/lib/oojs-ui/i18n/qu.json1
-rw-r--r--resources/lib/oojs-ui/i18n/ro.json5
-rw-r--r--resources/lib/oojs-ui/i18n/roa-tara.json12
-rw-r--r--resources/lib/oojs-ui/i18n/ru.json8
-rw-r--r--resources/lib/oojs-ui/i18n/sah.json3
-rw-r--r--resources/lib/oojs-ui/i18n/scn.json4
-rw-r--r--resources/lib/oojs-ui/i18n/sco.json1
-rw-r--r--resources/lib/oojs-ui/i18n/sh.json1
-rw-r--r--resources/lib/oojs-ui/i18n/si.json1
-rw-r--r--resources/lib/oojs-ui/i18n/sk.json2
-rw-r--r--resources/lib/oojs-ui/i18n/sl.json5
-rw-r--r--resources/lib/oojs-ui/i18n/sr-ec.json5
-rw-r--r--resources/lib/oojs-ui/i18n/sr-el.json10
-rw-r--r--resources/lib/oojs-ui/i18n/sv.json5
-rw-r--r--resources/lib/oojs-ui/i18n/ta.json6
-rw-r--r--resources/lib/oojs-ui/i18n/te.json3
-rw-r--r--resources/lib/oojs-ui/i18n/tg-cyrl.json1
-rw-r--r--resources/lib/oojs-ui/i18n/th.json1
-rw-r--r--resources/lib/oojs-ui/i18n/tl.json7
-rw-r--r--resources/lib/oojs-ui/i18n/tr.json15
-rw-r--r--resources/lib/oojs-ui/i18n/tt-cyrl.json1
-rw-r--r--resources/lib/oojs-ui/i18n/uk.json8
-rw-r--r--resources/lib/oojs-ui/i18n/uz.json1
-rw-r--r--resources/lib/oojs-ui/i18n/vec.json4
-rw-r--r--resources/lib/oojs-ui/i18n/vi.json8
-rw-r--r--resources/lib/oojs-ui/i18n/vo.json1
-rw-r--r--resources/lib/oojs-ui/i18n/yo.json1
-rw-r--r--resources/lib/oojs-ui/i18n/zh-hans.json11
-rw-r--r--resources/lib/oojs-ui/i18n/zh-hant.json10
-rw-r--r--resources/lib/oojs-ui/images/anchor.pngbin203 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/anchor.svg7
-rw-r--r--resources/lib/oojs-ui/images/grab.curbin0 -> 326 bytes
-rw-r--r--resources/lib/oojs-ui/images/grabbing.curbin0 -> 326 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/accept.pngbin332 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/accept.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/add-item.pngbin145 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/advanced.pngbin531 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/advanced.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/alert.pngbin448 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/arched-arrow-ltr.pngbin294 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/arched-arrow-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/arched-arrow-rtl.pngbin296 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/arched-arrow-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/check.pngbin235 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/check.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/clear.pngbin430 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/close.pngbin286 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/close.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/code.pngbin313 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/collapse.pngbin221 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/comment.pngbin244 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/expand.pngbin237 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/help.pngbin591 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/history.pngbin591 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/info.pngbin349 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/link.pngbin348 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/link.svg8
-rw-r--r--resources/lib/oojs-ui/images/icons/menu.pngbin190 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/menu.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/move-ltr.pngbin254 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/move-rtl.pngbin250 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/picture.pngbin402 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/remove-item.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/remove.pngbin175 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/search.pngbin267 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/search.svg6
-rw-r--r--resources/lib/oojs-ui/images/icons/settings.pngbin230 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/tag.pngbin319 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/icons/window.pngbin309 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/indicators/alert.pngbin256 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-down.pngbin199 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-down.svg6
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-ltr.pngbin204 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-rtl.pngbin194 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-up.pngbin180 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/indicators/arrow-up.svg6
-rw-r--r--resources/lib/oojs-ui/images/indicators/required.pngbin264 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/images/toolbar-shadow.pngbin131 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/oojs-ui-apex.css1945
-rw-r--r--resources/lib/oojs-ui/oojs-ui-apex.rtl.css1929
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css64
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css76
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css166
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css88
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css34
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css495
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css106
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css100
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css34
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css46
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css148
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css64
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css34
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css28
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki-noimages.css2660
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki.css3204
-rw-r--r--resources/lib/oojs-ui/oojs-ui-mediawiki.js66
-rw-r--r--resources/lib/oojs-ui/oojs-ui-minerva.css1397
-rw-r--r--resources/lib/oojs-ui/oojs-ui-minerva.rtl.css1381
-rw-r--r--resources/lib/oojs-ui/oojs-ui.css1159
-rw-r--r--resources/lib/oojs-ui/oojs-ui.js10609
-rw-r--r--resources/lib/oojs-ui/oojs-ui.rtl.css112
-rw-r--r--resources/lib/oojs-ui/oojs-ui.svg.css112
-rw-r--r--resources/lib/oojs-ui/oojs-ui.svg.rtl.css112
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.pngbin0 -> 152 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.pngbin0 -> 148 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/add-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/add.pngbin0 -> 144 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/add.svg (renamed from resources/lib/oojs-ui/images/icons/add-item.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.pngbin0 -> 453 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.pngbin0 -> 404 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-invert.pngbin0 -> 469 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.pngbin0 -> 594 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/alert.pngbin0 -> 433 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/alert.svg (renamed from resources/lib/oojs-ui/images/icons/alert.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center.pngbin0 -> 165 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/align-center.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left.pngbin0 -> 176 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-left.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right.pngbin0 -> 176 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/align-float-right.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.pngbin0 -> 351 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr.pngbin0 -> 309 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl-invert.pngbin0 -> 331 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl.pngbin0 -> 286 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.pngbin0 -> 197 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.pngbin0 -> 198 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.pngbin0 -> 197 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.pngbin0 -> 190 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.pngbin0 -> 304 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.pngbin0 -> 295 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.pngbin0 -> 345 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.pngbin0 -> 377 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.pngbin0 -> 256 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.pngbin0 -> 365 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.pngbin0 -> 376 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.pngbin0 -> 348 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.pngbin0 -> 304 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.pngbin0 -> 341 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.pngbin0 -> 342 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.pngbin0 -> 461 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/block-destructive.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.pngbin0 -> 323 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/block-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/block.pngbin0 -> 295 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/block.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.pngbin0 -> 329 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.pngbin0 -> 309 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.pngbin0 -> 342 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.pngbin0 -> 317 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a.pngbin0 -> 276 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-a.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain.pngbin0 -> 289 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-ain.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad.pngbin0 -> 315 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-arab-dad.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to.pngbin0 -> 342 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-armn-to.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b.pngbin0 -> 219 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-b.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be.pngbin0 -> 232 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-be.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te.pngbin0 -> 145 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-te.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe.pngbin0 -> 343 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-cyrl-zhe.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f.pngbin0 -> 150 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-f.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g.pngbin0 -> 315 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-g.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man.pngbin0 -> 297 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-geor-man.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l.pngbin0 -> 143 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-l.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n.pngbin0 -> 176 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-n.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v.pngbin0 -> 256 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bold-v.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.pngbin0 -> 238 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.pngbin0 -> 236 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.pngbin0 -> 221 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.pngbin0 -> 216 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.pngbin0 -> 208 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.pngbin0 -> 201 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.pngbin0 -> 378 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.pngbin0 -> 351 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/cancel.svg (renamed from resources/lib/oojs-ui/images/icons/clear.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.pngbin0 -> 250 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.pngbin0 -> 252 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.pngbin0 -> 246 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.pngbin0 -> 252 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive.pngbin0 -> 368 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/case-sensitive.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.pngbin0 -> 252 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check-invert.pngbin0 -> 190 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.pngbin0 -> 280 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check.pngbin0 -> 183 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/check.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-constructive.pngbin0 -> 337 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-constructive.svg2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-invert.pngbin0 -> 274 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-invert.svg2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/circle.pngbin0 -> 244 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/circle.svg2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.pngbin0 -> 224 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.pngbin0 -> 225 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/clear.pngbin0 -> 316 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/clear.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.pngbin0 -> 334 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.pngbin0 -> 333 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.pngbin0 -> 296 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl-invert.pngbin0 -> 357 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.pngbin0 -> 319 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/code-invert.pngbin0 -> 297 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/code-invert.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/code.pngbin0 -> 272 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/code.svg (renamed from resources/lib/oojs-ui/images/icons/code.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse-invert.pngbin0 -> 204 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse.pngbin0 -> 207 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/collapse.svg (renamed from resources/lib/oojs-ui/images/icons/collapse.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/comment-invert.pngbin0 -> 233 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/comment-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/comment.pngbin0 -> 211 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/comment.svg (renamed from resources/lib/oojs-ui/images/icons/comment.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.pngbin0 -> 220 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.pngbin0 -> 223 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.pngbin0 -> 212 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.pngbin0 -> 252 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.pngbin0 -> 262 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.pngbin0 -> 320 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.pngbin0 -> 477 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr-progressive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.pngbin0 -> 282 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.pngbin0 -> 314 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.pngbin0 -> 480 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl-progressive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.pngbin0 -> 284 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.pngbin0 -> 360 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.pngbin0 -> 312 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.pngbin0 -> 369 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.pngbin0 -> 328 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.pngbin0 -> 447 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr-invert.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.pngbin0 -> 390 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.pngbin0 -> 439 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl-invert.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.pngbin0 -> 379 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.pngbin0 -> 172 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.svg14
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.pngbin0 -> 166 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.svg14
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/expand-invert.pngbin0 -> 212 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/expand-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/expand.pngbin0 -> 196 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/expand.svg (renamed from resources/lib/oojs-ui/images/icons/expand.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.pngbin0 -> 184 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr-invert.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr.pngbin0 -> 168 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.pngbin0 -> 180 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl-invert.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl.pngbin0 -> 164 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/external-link-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.pngbin0 -> 353 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.pngbin0 -> 324 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr.pngbin0 -> 298 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/find-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl.pngbin0 -> 297 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/find-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.pngbin0 -> 260 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.pngbin0 -> 231 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.pngbin0 -> 263 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.pngbin0 -> 237 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.pngbin0 -> 306 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr-invert.svg16
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.pngbin0 -> 295 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg16
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.pngbin0 -> 309 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl-invert.svg16
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.pngbin0 -> 294 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg16
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.pngbin0 -> 163 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.pngbin0 -> 167 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.pngbin0 -> 231 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.pngbin0 -> 233 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.pngbin0 -> 263 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr-invert.pngbin0 -> 603 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr-invert.svg10
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr.pngbin0 -> 529 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-ltr.svg (renamed from resources/lib/oojs-ui/images/icons/help.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl-invert.pngbin0 -> 622 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl-invert.svg10
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl.pngbin0 -> 543 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/help-rtl.svg10
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/history-invert.pngbin0 -> 628 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/history-invert.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/history.pngbin0 -> 543 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/history.svg (renamed from resources/lib/oojs-ui/images/icons/history.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.pngbin0 -> 212 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.pngbin0 -> 207 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.pngbin0 -> 253 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.pngbin0 -> 237 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.pngbin0 -> 281 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.pngbin0 -> 288 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.pngbin0 -> 194 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.pngbin0 -> 187 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/info-invert.pngbin0 -> 377 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/info-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/info.pngbin0 -> 328 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/info.svg (renamed from resources/lib/oojs-ui/images/icons/info.svg)6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.pngbin0 -> 144 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/insert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a.pngbin0 -> 284 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-a.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem.pngbin0 -> 333 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-keheh-jeem.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem.pngbin0 -> 271 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-arab-meem.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha.pngbin0 -> 339 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-armn-sha.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c.pngbin0 -> 300 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-c.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d.pngbin0 -> 324 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-d.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e.pngbin0 -> 254 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-e.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan.pngbin0 -> 287 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-geor-kan.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i.pngbin0 -> 208 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-i.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k.pngbin0 -> 285 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-k.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s.pngbin0 -> 321 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/italic-s.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.pngbin0 -> 184 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.pngbin0 -> 193 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.pngbin0 -> 286 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.pngbin0 -> 280 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.pngbin0 -> 185 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.pngbin0 -> 187 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/language.pngbin0 -> 410 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/language.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr.pngbin0 -> 166 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl.pngbin0 -> 163 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/layout-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.pngbin0 -> 467 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr-invert.svg13
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.pngbin0 -> 423 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.svg13
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.pngbin0 -> 506 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.pngbin0 -> 444 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.pngbin0 -> 193 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.pngbin0 -> 178 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.pngbin0 -> 174 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.pngbin0 -> 184 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.pngbin0 -> 347 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-destructive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.pngbin0 -> 262 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.pngbin0 -> 239 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.pngbin0 -> 344 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-destructive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.pngbin0 -> 257 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.pngbin0 -> 241 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.pngbin0 -> 219 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.pngbin0 -> 225 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.pngbin0 -> 373 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.pngbin0 -> 521 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.pngbin0 -> 459 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.pngbin0 -> 265 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.pngbin0 -> 303 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.pngbin0 -> 367 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.pngbin0 -> 384 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.pngbin0 -> 378 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.pngbin0 -> 181 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/menu-invert.svg10
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.pngbin0 -> 170 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/menu.svg10
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.pngbin0 -> 290 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.pngbin0 -> 300 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr-invert.pngbin0 -> 225 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr.pngbin0 -> 219 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr.svg (renamed from resources/lib/oojs-ui/images/icons/move-ltr.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-rtl-invert.pngbin0 -> 221 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-rtl.pngbin0 -> 214 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move-rtl.svg (renamed from resources/lib/oojs-ui/images/icons/move-rtl.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move.pngbin0 -> 249 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/move.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.pngbin0 -> 216 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.pngbin0 -> 222 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.pngbin0 -> 267 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.pngbin0 -> 282 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.pngbin0 -> 188 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.pngbin0 -> 189 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.pngbin0 -> 234 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.pngbin0 -> 228 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.pngbin0 -> 190 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.pngbin0 -> 193 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr.pngbin0 -> 153 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl.pngbin0 -> 154 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/outline-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.pngbin0 -> 220 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.pngbin0 -> 213 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.pngbin0 -> 396 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/picture-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.pngbin0 -> 350 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/picture.svg (renamed from resources/lib/oojs-ui/images/icons/picture.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.pngbin0 -> 307 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.pngbin0 -> 302 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.pngbin0 -> 222 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.pngbin0 -> 221 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.pngbin0 -> 344 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.pngbin0 -> 360 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.pngbin0 -> 319 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.pngbin0 -> 326 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.pngbin0 -> 293 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.pngbin0 -> 287 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.pngbin0 -> 382 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.pngbin0 -> 381 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression.pngbin0 -> 340 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/regular-expression.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.pngbin0 -> 189 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.pngbin0 -> 181 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.pngbin0 -> 172 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/remove.svg (renamed from resources/lib/oojs-ui/images/icons/remove.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.pngbin0 -> 402 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.pngbin0 -> 372 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.pngbin0 -> 350 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.pngbin0 -> 376 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.pngbin0 -> 341 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/search-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.pngbin0 -> 215 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link.pngbin0 -> 201 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/secure-link.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/settings-invert.pngbin0 -> 202 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/settings-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/settings.pngbin0 -> 191 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/settings.svg (renamed from resources/lib/oojs-ui/images/icons/settings.svg)6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.pngbin0 -> 432 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.pngbin0 -> 446 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.pngbin0 -> 341 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.pngbin0 -> 342 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter.pngbin0 -> 360 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/specialCharacter.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.pngbin0 -> 158 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.pngbin0 -> 180 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.pngbin0 -> 189 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.pngbin0 -> 214 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.pngbin0 -> 179 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.pngbin0 -> 184 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.pngbin0 -> 484 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/star-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/star.pngbin0 -> 435 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/star.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.pngbin0 -> 368 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a.pngbin0 -> 299 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-a.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s.pngbin0 -> 306 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-s.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y.pngbin0 -> 244 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/strikethrough-y.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.pngbin0 -> 159 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.pngbin0 -> 152 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.pngbin0 -> 164 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.pngbin0 -> 156 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.pngbin0 -> 142 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu-invert.svg12
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.png (renamed from resources/lib/oojs-ui/images/icons/remove-item.png)bin131 -> 134 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.svg12
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.pngbin0 -> 148 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.pngbin0 -> 140 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.pngbin0 -> 147 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.pngbin0 -> 140 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.pngbin0 -> 159 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.pngbin0 -> 160 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr-progressive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.pngbin0 -> 153 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.pngbin0 -> 159 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.pngbin0 -> 160 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl-progressive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.pngbin0 -> 151 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.pngbin0 -> 244 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.svg5
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.pngbin0 -> 240 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.svg5
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.pngbin0 -> 409 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.svg5
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.pngbin0 -> 392 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.svg5
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.pngbin0 -> 241 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.svg5
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.pngbin0 -> 240 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.svg5
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption.pngbin0 -> 154 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-caption.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr.pngbin0 -> 164 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-ltr.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl.pngbin0 -> 165 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-column-rtl.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after.pngbin0 -> 153 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-after.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before.pngbin0 -> 151 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-insert-row-before.svg11
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells.pngbin0 -> 220 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table-merge-cells.svg10
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table.pngbin0 -> 150 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/table.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.pngbin0 -> 419 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-constructive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.pngbin0 -> 438 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-destructive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-invert.pngbin0 -> 295 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.pngbin0 -> 424 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-progressive.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.pngbin0 -> 403 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag-warning.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag.pngbin0 -> 262 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/tag.svg (renamed from resources/lib/oojs-ui/images/icons/tag.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.pngbin0 -> 193 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.pngbin0 -> 202 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright.pngbin0 -> 224 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-lefttoright.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft.pngbin0 -> 233 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/text-dir-righttoleft.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style.pngbin0 -> 306 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/text-style.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.pngbin0 -> 429 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.pngbin0 -> 437 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.pngbin0 -> 204 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trash-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.pngbin0 -> 193 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.pngbin0 -> 282 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.pngbin0 -> 254 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.pngbin0 -> 298 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.pngbin0 -> 280 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.pngbin0 -> 348 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-destructive.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.pngbin0 -> 265 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.pngbin0 -> 245 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.pngbin0 -> 345 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-destructive.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.pngbin0 -> 265 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.pngbin0 -> 245 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.pngbin0 -> 298 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.pngbin0 -> 262 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a.pngbin0 -> 295 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-a.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u.pngbin0 -> 220 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/underline-u.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.pngbin0 -> 203 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.pngbin0 -> 250 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.pngbin0 -> 251 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.pngbin0 -> 323 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.pngbin0 -> 313 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.pngbin0 -> 265 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.pngbin0 -> 288 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.pngbin0 -> 277 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.pngbin0 -> 314 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.pngbin0 -> 333 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.pngbin0 -> 211 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact-invert.svg14
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact.pngbin0 -> 202 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewCompact.svg14
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.pngbin0 -> 245 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr-invert.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr.pngbin0 -> 225 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-ltr.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.pngbin0 -> 215 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl-invert.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl.pngbin0 -> 201 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/viewDetails-rtl.svg9
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.pngbin0 -> 238 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator-invert.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator.pngbin0 -> 228 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/visionSimulator.svg4
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.pngbin0 -> 296 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.pngbin0 -> 285 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.pngbin0 -> 163 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg15
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.pngbin0 -> 409 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.pngbin0 -> 405 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/window-invert.pngbin0 -> 273 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/window-invert.svg7
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/window.pngbin0 -> 251 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/icons/window.svg (renamed from resources/lib/oojs-ui/images/icons/window.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/alert-invert.pngbin0 -> 264 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/alert-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/alert.pngbin0 -> 233 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/alert.svg (renamed from resources/lib/oojs-ui/images/indicators/alert.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down-invert.pngbin0 -> 184 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down.pngbin0 -> 173 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-down.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.pngbin0 -> 150 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr.pngbin0 -> 143 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl-invert.pngbin0 -> 148 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl.pngbin0 -> 142 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-rtl.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up-invert.pngbin0 -> 137 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up-invert.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up.pngbin0 -> 132 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-up.svg8
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/required-invert.pngbin0 -> 266 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/required-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/required.pngbin0 -> 241 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/required.svg (renamed from resources/lib/oojs-ui/images/indicators/required.svg)2
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.pngbin0 -> 251 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.pngbin0 -> 231 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-ltr.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.pngbin0 -> 261 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl-invert.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.pngbin0 -> 234 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/indicators/search-rtl.svg6
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/textures/pending.gif (renamed from resources/lib/oojs-ui/images/textures/pending.gif)bin2032 -> 2032 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/textures/transparency.png (renamed from resources/lib/oojs-ui/images/textures/transparency.png)bin145 -> 145 bytes
-rw-r--r--resources/lib/oojs-ui/themes/mediawiki/images/textures/transparency.svg (renamed from resources/lib/oojs-ui/images/textures/transparency.svg)0
-rw-r--r--resources/lib/oojs-ui/themes/minerva/images/icons/check.pngbin640 -> 0 bytes
-rw-r--r--resources/lib/oojs-ui/themes/minerva/images/icons/check.svg8
-rw-r--r--resources/lib/oojs/oojs.jquery.js126
-rw-r--r--resources/lib/qunitjs/qunit.css (renamed from resources/lib/jquery/jquery.qunit.css)59
-rw-r--r--resources/lib/qunitjs/qunit.js2875
-rw-r--r--resources/src/jquery.json-deprecate.js8
-rw-r--r--resources/src/jquery.tipsy/jquery.tipsy.js23
-rw-r--r--resources/src/jquery/jquery.accessKeyLabel.js2
-rw-r--r--resources/src/jquery/jquery.arrowSteps.js2
-rw-r--r--resources/src/jquery/jquery.badge.css2
-rw-r--r--resources/src/jquery/jquery.badge.js3
-rw-r--r--resources/src/jquery/jquery.confirmable.js14
-rw-r--r--resources/src/jquery/jquery.confirmable.mediawiki.js4
-rw-r--r--resources/src/jquery/jquery.expandableField.js2
-rw-r--r--resources/src/jquery/jquery.footHovzer.js16
-rw-r--r--resources/src/jquery/jquery.getAttrs.js49
-rw-r--r--resources/src/jquery/jquery.hidpi.js4
-rw-r--r--resources/src/jquery/jquery.makeCollapsible.css24
-rw-r--r--resources/src/jquery/jquery.makeCollapsible.js4
-rw-r--r--resources/src/jquery/jquery.mwExtension.js8
-rw-r--r--resources/src/jquery/jquery.placeholder.js10
-rw-r--r--resources/src/jquery/jquery.qunit.completenessTest.js14
-rw-r--r--resources/src/jquery/jquery.suggestions.js149
-rw-r--r--resources/src/jquery/jquery.tabIndex.js8
-rw-r--r--resources/src/jquery/jquery.tablesorter.js167
-rw-r--r--resources/src/jquery/jquery.textSelection.js39
-rw-r--r--resources/src/mediawiki.action/images/nextredirect-ltr.pngbin121 -> 122 bytes
-rw-r--r--resources/src/mediawiki.action/images/nextredirect-ltr.svg9
-rw-r--r--resources/src/mediawiki.action/images/nextredirect-rtl.pngbin121 -> 118 bytes
-rw-r--r--resources/src/mediawiki.action/images/nextredirect-rtl.svg9
-rw-r--r--resources/src/mediawiki.action/images/redirect-ltr.pngbin128 -> 169 bytes
-rw-r--r--resources/src/mediawiki.action/images/redirect-ltr.svg9
-rw-r--r--resources/src/mediawiki.action/images/redirect-rtl.pngbin132 -> 139 bytes
-rw-r--r--resources/src/mediawiki.action/images/redirect-rtl.svg9
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js61
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.edit.js232
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.edit.preview.js257
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.edit.stash.js76
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.edit.styles.css8
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.history.diff.css7
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.history.diff.print.css16
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.history.js3
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less11
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.view.dblClickEdit.js13
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.view.metadata.css10
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.view.postEdit.js11
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.view.redirect.js3
-rw-r--r--resources/src/mediawiki.action/mediawiki.action.view.redirectPage.css20
-rw-r--r--resources/src/mediawiki.action/templates/postEdit.html6
-rw-r--r--resources/src/mediawiki.api/mediawiki.api.category.js44
-rw-r--r--resources/src/mediawiki.api/mediawiki.api.edit.js43
-rw-r--r--resources/src/mediawiki.api/mediawiki.api.js87
-rw-r--r--resources/src/mediawiki.api/mediawiki.api.login.js45
-rw-r--r--resources/src/mediawiki.api/mediawiki.api.options.js89
-rw-r--r--resources/src/mediawiki.api/mediawiki.api.parse.js12
-rw-r--r--resources/src/mediawiki.api/mediawiki.api.watch.js21
-rw-r--r--resources/src/mediawiki.language/languages/fi.js2
-rw-r--r--resources/src/mediawiki.language/languages/hsb.js2
-rw-r--r--resources/src/mediawiki.language/languages/hy.js2
-rw-r--r--resources/src/mediawiki.language/languages/os.js18
-rw-r--r--resources/src/mediawiki.language/mediawiki.language.init.js2
-rw-r--r--resources/src/mediawiki.language/mediawiki.language.js41
-rw-r--r--resources/src/mediawiki.language/mediawiki.language.numbers.js6
-rw-r--r--resources/src/mediawiki.language/specialcharacters.json1
-rw-r--r--resources/src/mediawiki.legacy/ajax.js304
-rw-r--r--resources/src/mediawiki.legacy/commonPrint.css42
-rw-r--r--resources/src/mediawiki.legacy/images/magnify-clip-ltr.pngbin0 -> 336 bytes
-rw-r--r--resources/src/mediawiki.legacy/images/magnify-clip-ltr.svg7
-rw-r--r--resources/src/mediawiki.legacy/images/magnify-clip-rtl.pngbin0 -> 360 bytes
-rw-r--r--resources/src/mediawiki.legacy/images/magnify-clip-rtl.svg7
-rw-r--r--resources/src/mediawiki.legacy/oldshared.css6
-rw-r--r--resources/src/mediawiki.legacy/protect.js5
-rw-r--r--resources/src/mediawiki.legacy/shared.css28
-rw-r--r--resources/src/mediawiki.legacy/wikibits.js388
-rw-r--r--resources/src/mediawiki.less/mediawiki.mixins.less73
-rw-r--r--resources/src/mediawiki.less/mediawiki.ui/mixins.less29
-rw-r--r--resources/src/mediawiki.libs/CLDRPluralRuleParser.js246
-rw-r--r--resources/src/mediawiki.messagePoster/mediawiki.messagePoster.MessagePoster.js38
-rw-r--r--resources/src/mediawiki.messagePoster/mediawiki.messagePoster.WikitextMessagePoster.js53
-rw-r--r--resources/src/mediawiki.messagePoster/mediawiki.messagePoster.factory.js109
-rw-r--r--resources/src/mediawiki.page/mediawiki.page.gallery.js425
-rw-r--r--resources/src/mediawiki.page/mediawiki.page.image.pagination.js77
-rw-r--r--resources/src/mediawiki.page/mediawiki.page.ready.js2
-rw-r--r--resources/src/mediawiki.page/mediawiki.page.startup.js2
-rw-r--r--resources/src/mediawiki.skinning/content.css29
-rw-r--r--resources/src/mediawiki.skinning/elements.css13
-rw-r--r--resources/src/mediawiki.skinning/images/magnify-clip-ltr.pngbin204 -> 336 bytes
-rw-r--r--resources/src/mediawiki.skinning/images/magnify-clip-ltr.svg7
-rw-r--r--resources/src/mediawiki.skinning/images/magnify-clip-rtl.pngbin149 -> 360 bytes
-rw-r--r--resources/src/mediawiki.skinning/images/magnify-clip-rtl.svg7
-rw-r--r--resources/src/mediawiki.skinning/interface.css8
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.block.js2
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.changeslist.css8
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.changeslist.legend.css6
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.css5
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.edittags.css15
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.edittags.js24
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.import.js6
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.pageLanguage.js2
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.preferences.js66
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.search.css17
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.upload.js93
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.userlogin.common.css2
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.userlogin.common.js2
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.userlogin.login.css13
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.userlogin.signup.js2
-rw-r--r--resources/src/mediawiki.special/mediawiki.special.version.css4
-rw-r--r--resources/src/mediawiki.special/templates/thumbnail.html9
-rw-r--r--resources/src/mediawiki.toolbar/images/ar/button_bold.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_bold.png)bin533 -> 533 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ar/button_headline.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_headline.png)bin484 -> 484 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ar/button_italic.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_italic.png)bin532 -> 532 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ar/button_link.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_link.png)bin557 -> 557 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ar/button_nowiki.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_nowiki.png)bin874 -> 874 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/be-tarask/button_bold.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_bold.png)bin550 -> 550 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/be-tarask/button_italic.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_italic.png)bin539 -> 539 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/be-tarask/button_link.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_link.png)bin419 -> 419 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/de/button_bold.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_bold.png)bin255 -> 255 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/de/button_italic.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_italic.png)bin260 -> 260 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_bold.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_bold.png)bin250 -> 250 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_extlink.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_extlink.png)bin435 -> 435 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_headline.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_headline.png)bin440 -> 440 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_hr.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_hr.png)bin200 -> 200 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_image.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_image.png)bin483 -> 483 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_italic.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_italic.png)bin250 -> 250 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_link.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_link.png)bin280 -> 280 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_media.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_media.png)bin728 -> 728 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_nowiki.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_nowiki.png)bin322 -> 322 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/en/button_sig.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_sig.png)bin920 -> 920 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/fa/button_bold.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_bold.png)bin459 -> 459 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/fa/button_headline.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_headline.png)bin392 -> 392 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/fa/button_italic.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_italic.png)bin512 -> 512 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/fa/button_link.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_link.png)bin485 -> 485 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/fa/button_nowiki.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_nowiki.png)bin874 -> 874 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ksh/LICENSE (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/LICENSE)0
-rw-r--r--resources/src/mediawiki.toolbar/images/ksh/button_italic.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/button_italic.png)bin368 -> 368 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ru/LICENSE (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/LICENSE)0
-rw-r--r--resources/src/mediawiki.toolbar/images/ru/button_bold.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_bold.png)bin254 -> 254 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ru/button_italic.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_italic.png)bin423 -> 423 bytes
-rw-r--r--resources/src/mediawiki.toolbar/images/ru/button_link.png (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_link.png)bin278 -> 278 bytes
-rw-r--r--resources/src/mediawiki.toolbar/toolbar.js202
-rw-r--r--resources/src/mediawiki.toolbar/toolbar.less (renamed from resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less)0
-rw-r--r--resources/src/mediawiki.ui/components/anchors.less89
-rw-r--r--resources/src/mediawiki.ui/components/buttons.less11
-rw-r--r--resources/src/mediawiki.ui/components/checkbox.less120
-rw-r--r--resources/src/mediawiki.ui/components/forms.less15
-rw-r--r--resources/src/mediawiki.ui/components/icons.less107
-rw-r--r--resources/src/mediawiki.ui/components/images/checked.svg2
-rw-r--r--resources/src/mediawiki.ui/components/images/checked_disabled.pngbin0 -> 333 bytes
-rw-r--r--resources/src/mediawiki.ui/components/images/checked_disabled.svg1
-rw-r--r--resources/src/mediawiki.ui/components/images/ok.pngbin0 -> 442 bytes
-rw-r--r--resources/src/mediawiki.ui/components/images/ok.svg1
-rw-r--r--resources/src/mediawiki.ui/components/images/radio_checked.pngbin0 -> 286 bytes
-rw-r--r--resources/src/mediawiki.ui/components/images/radio_checked.svg1
-rw-r--r--resources/src/mediawiki.ui/components/images/radio_disabled.pngbin0 -> 251 bytes
-rw-r--r--resources/src/mediawiki.ui/components/images/radio_disabled.svg1
-rw-r--r--resources/src/mediawiki.ui/components/inputs.less20
-rw-r--r--resources/src/mediawiki.ui/components/radio.less116
-rw-r--r--resources/src/mediawiki.ui/components/text.less40
-rw-r--r--resources/src/mediawiki/images/help.pngbin0 -> 460 bytes
-rw-r--r--resources/src/mediawiki/images/help.svg1
-rw-r--r--resources/src/mediawiki/images/pager-arrow-disabled-fastforward-ltr.svg44
-rw-r--r--resources/src/mediawiki/images/pager-arrow-disabled-fastforward-rtl.svg44
-rw-r--r--resources/src/mediawiki/images/pager-arrow-disabled-forward-ltr.svg36
-rw-r--r--resources/src/mediawiki/images/pager-arrow-disabled-forward-rtl.svg36
-rw-r--r--resources/src/mediawiki/images/pager-arrow-fastforward-ltr.svg43
-rw-r--r--resources/src/mediawiki/images/pager-arrow-fastforward-rtl.svg69
-rw-r--r--resources/src/mediawiki/images/pager-arrow-forward-ltr.svg36
-rw-r--r--resources/src/mediawiki/images/pager-arrow-forward-rtl.svg36
-rw-r--r--resources/src/mediawiki/mediawiki.Title.js11
-rw-r--r--resources/src/mediawiki/mediawiki.Uri.js41
-rw-r--r--resources/src/mediawiki/mediawiki.apihelp.css86
-rw-r--r--resources/src/mediawiki/mediawiki.apipretty.css11
-rw-r--r--resources/src/mediawiki/mediawiki.confirmCloseWindow.js68
-rw-r--r--resources/src/mediawiki/mediawiki.content.json.css18
-rw-r--r--resources/src/mediawiki/mediawiki.cookie.js25
-rw-r--r--resources/src/mediawiki/mediawiki.debug.js9
-rw-r--r--resources/src/mediawiki/mediawiki.debug.profile.css45
-rw-r--r--resources/src/mediawiki/mediawiki.debug.profile.js556
-rw-r--r--resources/src/mediawiki/mediawiki.errorLogger.js49
-rw-r--r--resources/src/mediawiki/mediawiki.feedback.css13
-rw-r--r--resources/src/mediawiki/mediawiki.feedback.js699
-rw-r--r--resources/src/mediawiki/mediawiki.filewarning.js68
-rw-r--r--resources/src/mediawiki/mediawiki.filewarning.less29
-rw-r--r--resources/src/mediawiki/mediawiki.helplink.less11
-rw-r--r--resources/src/mediawiki/mediawiki.hlist.js30
-rw-r--r--resources/src/mediawiki/mediawiki.htmlform.js38
-rw-r--r--resources/src/mediawiki/mediawiki.inspect.js24
-rw-r--r--resources/src/mediawiki/mediawiki.jqueryMsg.js69
-rw-r--r--resources/src/mediawiki/mediawiki.js862
-rw-r--r--resources/src/mediawiki/mediawiki.notification.js2
-rw-r--r--resources/src/mediawiki/mediawiki.pager.tablePager.less32
-rw-r--r--resources/src/mediawiki/mediawiki.searchSuggest.js8
-rw-r--r--resources/src/mediawiki/mediawiki.sectionAnchor.css3
-rw-r--r--resources/src/mediawiki/mediawiki.startUp.js11
-rw-r--r--resources/src/mediawiki/mediawiki.template.js123
-rw-r--r--resources/src/mediawiki/mediawiki.template.mustache.js14
-rw-r--r--resources/src/mediawiki/mediawiki.user.js101
-rw-r--r--resources/src/mediawiki/mediawiki.userSuggest.js41
-rw-r--r--resources/src/mediawiki/mediawiki.util.js73
1212 files changed, 27229 insertions, 17800 deletions
diff --git a/resources/Resources.php b/resources/Resources.php
index ec1c0fc4..2c0ca9d9 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -29,12 +29,19 @@ return array(
/**
* Special modules who have their own classes
*/
+ 'startup' => array( 'class' => 'ResourceLoaderStartUpModule' ),
// Scripts managed by the local wiki (stored in the MediaWiki namespace)
'site' => array( 'class' => 'ResourceLoaderSiteModule' ),
- 'noscript' => array( 'class' => 'ResourceLoaderNoscriptModule' ),
- 'startup' => array( 'class' => 'ResourceLoaderStartUpModule' ),
- 'filepage' => array( 'class' => 'ResourceLoaderFilePageModule' ),
+ 'noscript' => array(
+ 'class' => 'ResourceLoaderWikiModule',
+ 'styles' => array( 'MediaWiki:Noscript.css' ),
+ 'group' => 'noscript',
+ ),
+ 'filepage' => array(
+ 'class' => 'ResourceLoaderWikiModule',
+ 'styles' => array( 'MediaWiki:Filepage.css' ),
+ ),
'user.groups' => array( 'class' => 'ResourceLoaderUserGroupsModule' ),
// Scripts managed by the current user (stored in their user space)
@@ -44,6 +51,7 @@ return array(
'user.cssprefs' => array( 'class' => 'ResourceLoaderUserCSSPrefsModule' ),
// Populate mediawiki.user placeholders with information about the current user
+ 'user.defaults' => array( 'class' => 'ResourceLoaderUserDefaultsModule' ),
'user.options' => array( 'class' => 'ResourceLoaderUserOptionsModule' ),
'user.tokens' => array( 'class' => 'ResourceLoaderUserTokensModule' ),
@@ -93,6 +101,7 @@ return array(
),
),
'mediawiki.skinning.interface' => array(
+ 'class' => 'ResourceLoaderSkinModule',
// Used in the web installer. Test it after modifying this definition!
'styles' => array(
'resources/src/mediawiki.skinning/elements.css' => array( 'media' => 'screen' ),
@@ -120,14 +129,9 @@ return array(
/* jQuery */
'jquery' => array(
- 'scripts' => ( $GLOBALS['wgIncludejQueryMigrate'] ?
- array(
- 'resources/lib/jquery/jquery.js',
- 'resources/lib/jquery/jquery.migrate.js'
- ) :
- array(
- 'resources/lib/jquery/jquery.js'
- ) ),
+ 'scripts' => array(
+ 'resources/lib/jquery/jquery.js',
+ ),
'raw' => true,
'targets' => array( 'desktop', 'mobile' ),
),
@@ -181,7 +185,7 @@ return array(
'styles' => 'resources/lib/jquery.chosen/chosen.css',
),
'jquery.client' => array(
- 'scripts' => 'resources/src/jquery/jquery.client.js',
+ 'scripts' => 'resources/lib/jquery.client/jquery.client.js',
'targets' => array( 'desktop', 'mobile' ),
),
'jquery.color' => array(
@@ -244,14 +248,6 @@ return array(
'jquery.hoverIntent' => array(
'scripts' => 'resources/lib/jquery/jquery.hoverIntent.js',
),
- 'jquery.json' => array(
- // @deprecated since 1.24: Use the 'json' module and global JSON object instead.
- 'scripts' => array(
- 'resources/lib/jquery/jquery.json.js',
- 'resources/src/jquery.json-deprecate.js',
- ),
- 'targets' => array( 'mobile', 'desktop' ),
- ),
'jquery.localize' => array(
'scripts' => 'resources/src/jquery/jquery.localize.js',
),
@@ -277,8 +273,8 @@ return array(
'targets' => array( 'desktop', 'mobile' ),
),
'jquery.qunit' => array(
- 'scripts' => 'resources/lib/jquery/jquery.qunit.js',
- 'styles' => 'resources/lib/jquery/jquery.qunit.css',
+ 'scripts' => 'resources/lib/qunitjs/qunit.js',
+ 'styles' => 'resources/lib/qunitjs/qunit.css',
'position' => 'top',
'targets' => array( 'desktop', 'mobile' ),
),
@@ -318,6 +314,7 @@ return array(
),
'jquery.throttle-debounce' => array(
'scripts' => 'resources/lib/jquery/jquery.ba-throttle-debounce.js',
+ 'targets' => array( 'desktop', 'mobile' ),
),
'jquery.validate' => array(
'scripts' => 'resources/lib/jquery/jquery.validate.js',
@@ -769,16 +766,44 @@ return array(
'zh-cn' => 'resources/lib/moment/locale/zh-cn.js',
'zh-tw' => 'resources/lib/moment/locale/zh-tw.js',
),
+ 'targets' => array( 'desktop', 'mobile' ),
),
/* MediaWiki */
'mediawiki' => array(
- 'scripts' => 'resources/src/mediawiki/mediawiki.js',
+ // Keep maintenance/jsduck/eg-iframe.html in sync
+ 'scripts' => array(
+ 'resources/src/mediawiki/mediawiki.js',
+ 'resources/src/mediawiki/mediawiki.errorLogger.js',
+ 'resources/src/mediawiki/mediawiki.startUp.js',
+ ),
'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
'raw' => true,
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.apihelp' => array(
+ 'styles' => 'resources/src/mediawiki/mediawiki.apihelp.css',
+ 'targets' => array( 'desktop' ),
+ 'dependencies' => 'mediawiki.hlist',
+ 'position' => 'top',
+ ),
+ 'mediawiki.template' => array(
+ 'scripts' => 'resources/src/mediawiki/mediawiki.template.js',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+ 'mediawiki.template.mustache' => array(
+ 'scripts' => array(
+ 'resources/lib/mustache/mustache.js',
+ 'resources/src/mediawiki/mediawiki.template.mustache.js',
+ ),
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+ 'mediawiki.apipretty' => array(
+ 'styles' => 'resources/src/mediawiki/mediawiki.apipretty.css',
+ 'targets' => array( 'desktop', 'mobile' ),
+ 'position' => 'top',
+ ),
'mediawiki.api' => array(
'scripts' => 'resources/src/mediawiki.api/mediawiki.api.js',
'dependencies' => 'mediawiki.util',
@@ -798,12 +823,16 @@ return array(
'mediawiki.Title',
'user.tokens',
),
+ 'targets' => array( 'desktop', 'mobile' ),
),
'mediawiki.api.login' => array(
'scripts' => 'resources/src/mediawiki.api/mediawiki.api.login.js',
- 'dependencies' => array(
- 'mediawiki.api',
- ),
+ 'dependencies' => 'mediawiki.api',
+ ),
+ 'mediawiki.api.options' => array(
+ 'scripts' => 'resources/src/mediawiki.api/mediawiki.api.options.js',
+ 'dependencies' => 'mediawiki.api',
+ 'targets' => array( 'desktop', 'mobile' ),
),
'mediawiki.api.parse' => array(
'scripts' => 'resources/src/mediawiki.api/mediawiki.api.parse.js',
@@ -819,14 +848,18 @@ return array(
'mediawiki.content.json' => array(
'styles' => 'resources/src/mediawiki/mediawiki.content.json.css',
),
+ 'mediawiki.confirmCloseWindow' => array(
+ 'scripts' => array(
+ 'resources/src/mediawiki/mediawiki.confirmCloseWindow.js',
+ ),
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
'mediawiki.debug' => array(
'scripts' => array(
'resources/src/mediawiki/mediawiki.debug.js',
- 'resources/src/mediawiki/mediawiki.debug.profile.js'
),
'styles' => array(
'resources/src/mediawiki/mediawiki.debug.less',
- 'resources/src/mediawiki/mediawiki.debug.profile.css'
),
'dependencies' => array(
'jquery.footHovzer',
@@ -845,48 +878,73 @@ return array(
'scripts' => 'resources/src/mediawiki/mediawiki.feedback.js',
'styles' => 'resources/src/mediawiki/mediawiki.feedback.css',
'dependencies' => array(
- 'mediawiki.api.edit',
+ 'mediawiki.messagePoster',
'mediawiki.Title',
- 'mediawiki.jqueryMsg',
- 'jquery.ui.dialog',
+ 'oojs-ui',
),
'messages' => array(
+ 'feedback-adding',
+ 'feedback-back',
+ 'feedback-bugcheck',
+ 'feedback-dialog-intro',
+ 'feedback-external-bug-report-button',
+ 'feedback-bugnew',
'feedback-bugornote',
- 'feedback-subject',
- 'feedback-message',
'feedback-cancel',
- 'feedback-submit',
- 'feedback-adding',
+ 'feedback-close',
+ 'feedback-dialog-title',
+ 'feedback-error-title',
'feedback-error1',
'feedback-error2',
'feedback-error3',
+ 'feedback-error4',
+ 'feedback-message',
+ 'feedback-subject',
+ 'feedback-submit',
+ 'feedback-terms',
+ 'feedback-termsofuse',
'feedback-thanks',
- 'feedback-close',
- 'feedback-bugcheck',
- 'feedback-bugnew',
+ 'feedback-thanks-title',
+ 'feedback-useragent'
),
),
- 'mediawiki.hidpi' => array(
- 'scripts' => 'resources/src/mediawiki/mediawiki.hidpi.js',
+
+ 'mediawiki.filewarning' => array(
+ 'scripts' => 'resources/src/mediawiki/mediawiki.filewarning.js',
+ 'styles' => 'resources/src/mediawiki/mediawiki.filewarning.less',
'dependencies' => array(
- 'jquery.hidpi',
+ 'oojs-ui',
+ ),
+ ),
+
+ 'mediawiki.helplink' => array(
+ 'styles' => array(
+ 'resources/src/mediawiki/mediawiki.helplink.less',
),
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+ 'mediawiki.hidpi' => array(
+ 'scripts' => 'resources/src/mediawiki/mediawiki.hidpi.js',
+ 'dependencies' => 'jquery.hidpi',
'skipFunction' => 'resources/src/mediawiki.hidpi-skip.js',
'targets' => array( 'desktop', 'mobile' ),
),
'mediawiki.hlist' => array(
'styles' => 'resources/src/mediawiki/mediawiki.hlist.css',
'scripts' => 'resources/src/mediawiki/mediawiki.hlist.js',
- 'dependencies' => array(
- 'jquery.client',
- ),
+ 'dependencies' => 'jquery.client',
),
'mediawiki.htmlform' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js',
'dependencies' => array(
'jquery.mwExtension',
+ 'jquery.byteLimit',
+ ),
+ 'messages' => array(
+ 'htmlform-chosen-placeholder',
+ // @todo Load this message in content language
+ 'colon-separator',
),
- 'messages' => array( 'htmlform-chosen-placeholder' ),
),
'mediawiki.icon' => array(
'styles' => 'resources/src/mediawiki/mediawiki.icon.less',
@@ -899,6 +957,27 @@ return array(
),
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.messagePoster' => array(
+ 'scripts' => array(
+ 'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.factory.js',
+ 'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.MessagePoster.js',
+ ),
+ 'dependencies' => array(
+ 'oojs',
+ 'mediawiki.api',
+ ),
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+ 'mediawiki.messagePoster.wikitext' => array(
+ 'scripts' => array(
+ 'resources/src/mediawiki.messagePoster/mediawiki.messagePoster.WikitextMessagePoster.js',
+ ),
+ 'dependencies' => array(
+ 'mediawiki.api.edit',
+ 'mediawiki.messagePoster',
+ ),
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
'mediawiki.notification' => array(
'styles' => array(
'resources/src/mediawiki/mediawiki.notification.css',
@@ -906,9 +985,7 @@ return array(
=> array( 'media' => 'print' ),
),
'scripts' => 'resources/src/mediawiki/mediawiki.notification.js',
- 'dependencies' => array(
- 'mediawiki.page.startup',
- ),
+ 'dependencies' => 'mediawiki.page.startup',
'targets' => array( 'desktop', 'mobile' ),
),
'mediawiki.notify' => array(
@@ -930,9 +1007,15 @@ return array(
'jquery.client',
'jquery.placeholder',
'jquery.suggestions',
+ 'jquery.getAttrs',
'mediawiki.api',
),
),
+ 'mediawiki.sectionAnchor' => array(
+ // Back-compat to hide it on cached pages (T18691; Ie9e334e973; 2015-03-17)
+ 'styles' => 'resources/src/mediawiki/mediawiki.sectionAnchor.css',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
'mediawiki.Title' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.Title.js',
'dependencies' => array(
@@ -943,9 +1026,7 @@ return array(
),
'mediawiki.toc' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.toc.js',
- 'dependencies' => array(
- 'jquery.cookie',
- ),
+ 'dependencies' => 'jquery.cookie',
'messages' => array( 'showtoc', 'hidetoc' ),
'targets' => array( 'desktop', 'mobile' ),
),
@@ -964,6 +1045,13 @@ return array(
),
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.userSuggest' => array(
+ 'scripts' => 'resources/src/mediawiki/mediawiki.userSuggest.js',
+ 'dependencies' => array(
+ 'jquery.suggestions',
+ 'mediawiki.api'
+ )
+ ),
'mediawiki.util' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.util.js',
'dependencies' => array(
@@ -976,9 +1064,14 @@ return array(
),
'mediawiki.cookie' => array(
'scripts' => 'resources/src/mediawiki/mediawiki.cookie.js',
- 'dependencies' => array(
- 'jquery.cookie',
- ),
+ 'dependencies' => 'jquery.cookie',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+ 'mediawiki.toolbar' => array(
+ 'class' => 'ResourceLoaderEditToolbarModule',
+ 'scripts' => 'resources/src/mediawiki.toolbar/toolbar.js',
+ 'styles' => 'resources/src/mediawiki.toolbar/toolbar.less',
+ 'position' => 'top',
),
/* MediaWiki Action */
@@ -988,7 +1081,6 @@ return array(
'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.css',
'dependencies' => array(
'mediawiki.action.edit.styles',
- 'mediawiki.action.edit.toolbar',
'jquery.textSelection',
'jquery.byteLimit',
),
@@ -998,10 +1090,6 @@ return array(
'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.styles.css',
'position' => 'top',
),
- 'mediawiki.action.edit.toolbar' => array(
- 'class' => 'ResourceLoaderEditToolbarModule',
- 'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less',
- ),
'mediawiki.action.edit.collapsibleFooter' => array(
'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.js',
'styles' => 'resources/src/mediawiki.action/mediawiki.action.edit.collapsibleFooter.css',
@@ -1016,7 +1104,33 @@ return array(
'dependencies' => array(
'jquery.form',
'jquery.spinner',
+ 'jquery.textSelection',
+ 'mediawiki.api',
'mediawiki.action.history.diff',
+ 'mediawiki.util',
+ 'mediawiki.jqueryMsg',
+ ),
+ 'messages' => array(
+ // Keep the uses message keys in sync with EditPage#setHeaders
+ 'creating',
+ 'editconflict',
+ 'editing',
+ 'editingcomment',
+ 'editingsection',
+ 'pagetitle',
+ 'otherlanguages',
+ 'tooltip-p-lang',
+ 'summary-preview',
+ 'subject-preview',
+ 'parentheses',
+ 'previewerrortext',
+ ),
+ ),
+ 'mediawiki.action.edit.stash' => array(
+ 'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.stash.js',
+ 'dependencies' => array(
+ 'jquery.getAttrs',
+ 'mediawiki.api',
),
),
'mediawiki.action.history' => array(
@@ -1025,7 +1139,12 @@ return array(
'group' => 'mediawiki.action.history',
),
'mediawiki.action.history.diff' => array(
- 'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.diff.css',
+ 'styles' => array(
+ 'resources/src/mediawiki.action/mediawiki.action.history.diff.css',
+ 'resources/src/mediawiki.action/mediawiki.action.history.diff.print.css' => array(
+ 'media' => 'print'
+ ),
+ ),
'group' => 'mediawiki.action.history',
'targets' => array( 'desktop', 'mobile' ),
),
@@ -1034,6 +1153,7 @@ return array(
'dependencies' => array(
'mediawiki.util',
'mediawiki.page.startup',
+ 'user.options',
),
),
'mediawiki.action.view.metadata' => array(
@@ -1044,7 +1164,14 @@ return array(
'metadata-collapse',
),
),
+ 'mediawiki.action.view.categoryPage.styles' => array(
+ 'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.categoryPage.less',
+ 'targets' => array( 'desktop', 'mobile' )
+ ),
'mediawiki.action.view.postEdit' => array(
+ 'templates' => array(
+ 'postEdit.html' => 'resources/src/mediawiki.action/templates/postEdit.html',
+ ),
'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.js',
'styles' => 'resources/src/mediawiki.action/mediawiki.action.view.postEdit.css',
'dependencies' => array(
@@ -1059,9 +1186,7 @@ return array(
),
'mediawiki.action.view.redirect' => array(
'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.redirect.js',
- 'dependencies' => array(
- 'jquery.client',
- ),
+ 'dependencies' => 'jquery.client',
'position' => 'top',
),
'mediawiki.action.view.redirectPage' => array(
@@ -1075,10 +1200,12 @@ return array(
'scripts' => 'resources/src/mediawiki.action/mediawiki.action.edit.editWarning.js',
'dependencies' => array(
'jquery.textSelection',
- 'mediawiki.jqueryMsg'
+ 'mediawiki.jqueryMsg',
+ 'mediawiki.confirmCloseWindow',
),
'messages' => array(
'editwarning-warning',
+ // editwarning-warning uses {{int:prefs-editing}}
'prefs-editing'
),
),
@@ -1107,9 +1234,9 @@ return array(
'uk' => 'resources/src/mediawiki.language/languages/uk.js',
),
'dependencies' => array(
- 'mediawiki.language.data',
- 'mediawiki.cldr',
- ),
+ 'mediawiki.language.data',
+ 'mediawiki.cldr',
+ ),
'targets' => array( 'desktop', 'mobile' ),
'messages' => array(
'and',
@@ -1157,6 +1284,10 @@ return array(
'mediawiki.language.names' => array( 'class' => 'ResourceLoaderLanguageNamesModule' ),
+ 'mediawiki.language.specialCharacters' => array(
+ 'class' => 'ResourceLoaderSpecialCharacterDataModule'
+ ),
+
/* MediaWiki Libs */
'mediawiki.libs.jpegmeta' => array(
@@ -1167,6 +1298,9 @@ return array(
'mediawiki.page.gallery' => array(
'scripts' => 'resources/src/mediawiki.page/mediawiki.page.gallery.js',
+ 'dependencies' => array(
+ 'jquery.throttle-debounce',
+ )
),
'mediawiki.page.ready' => array(
'scripts' => 'resources/src/mediawiki.page/mediawiki.page.ready.js',
@@ -1181,9 +1315,7 @@ return array(
),
'mediawiki.page.startup' => array(
'scripts' => 'resources/src/mediawiki.page/mediawiki.page.startup.js',
- 'dependencies' => array(
- 'mediawiki.util',
- ),
+ 'dependencies' => 'mediawiki.util',
'position' => 'top',
'targets' => array( 'desktop', 'mobile' ),
),
@@ -1242,16 +1374,12 @@ return array(
'mediawiki.special.block' => array(
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.block.js',
'styles' => 'resources/src/mediawiki.special/mediawiki.special.block.css',
- 'dependencies' => array(
- 'mediawiki.util',
- ),
+ 'dependencies' => 'mediawiki.util',
),
'mediawiki.special.changeemail' => array(
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeemail.js',
'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeemail.css',
- 'dependencies' => array(
- 'mediawiki.util',
- ),
+ 'dependencies' => 'mediawiki.util',
'messages' => array(
'email-address-validity-valid',
'email-address-validity-invalid',
@@ -1273,6 +1401,20 @@ return array(
'mediawiki.special.changeslist.enhanced' => array(
'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeslist.enhanced.css',
),
+ 'mediawiki.special.edittags' => array(
+ 'scripts' => 'resources/src/mediawiki.special/mediawiki.special.edittags.js',
+ 'dependencies' => array(
+ 'jquery.chosen',
+ ),
+ 'messages' => array(
+ 'tags-edit-chosen-placeholder',
+ 'tags-edit-chosen-no-results',
+ ),
+ ),
+ 'mediawiki.special.edittags.styles' => array(
+ 'styles' => 'resources/src/mediawiki.special/mediawiki.special.edittags.css',
+ 'position' => 'top',
+ ),
'mediawiki.special.import' => array(
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.import.js',
),
@@ -1297,11 +1439,12 @@ return array(
),
'dependencies' => array(
'mediawiki.language',
+ 'mediawiki.confirmCloseWindow',
),
),
'mediawiki.special.recentchanges' => array(
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.recentchanges.js',
- 'dependencies' => array( 'mediawiki.special' ),
+ 'dependencies' => 'mediawiki.special',
'position' => 'top',
),
'mediawiki.special.search' => array(
@@ -1317,6 +1460,9 @@ return array(
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.undelete.js',
),
'mediawiki.special.upload' => array(
+ 'templates' => array(
+ 'thumbnail.html' => 'resources/src/mediawiki.special/templates/thumbnail.html',
+ ),
'scripts' => 'resources/src/mediawiki.special/mediawiki.special.upload.js',
'messages' => array(
'widthheight',
@@ -1325,13 +1471,18 @@ return array(
'size-megabytes',
'size-gigabytes',
'largefileserver',
+ 'editwarning-warning',
+ // editwarning-warning uses {{int:prefs-editing}}
+ 'prefs-editing',
),
'dependencies' => array(
'jquery.spinner',
+ 'mediawiki.jqueryMsg',
'mediawiki.api',
'mediawiki.libs.jpegmeta',
'mediawiki.Title',
'mediawiki.util',
+ 'mediawiki.confirmCloseWindow',
),
),
'mediawiki.special.userlogin.common.styles' => array(
@@ -1401,9 +1552,7 @@ return array(
'colon-separator',
'javascripttest-pagetext-skins',
) ),
- 'dependencies' => array(
- 'mediawiki.Uri',
- ),
+ 'dependencies' => 'mediawiki.Uri',
'position' => 'top',
'targets' => array( 'desktop', 'mobile' ),
),
@@ -1437,9 +1586,7 @@ return array(
),
'mediawiki.legacy.protect' => array(
'scripts' => 'resources/src/mediawiki.legacy/protect.js',
- 'dependencies' => array(
- 'jquery.byteLimit',
- ),
+ 'dependencies' => 'jquery.byteLimit',
'messages' => array( 'protect-unchain-permissions' )
),
'mediawiki.legacy.shared' => array(
@@ -1455,9 +1602,7 @@ return array(
),
'mediawiki.legacy.wikibits' => array(
'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
- 'dependencies' => array(
- 'mediawiki.util',
- ),
+ 'dependencies' => 'mediawiki.util',
'position' => 'top',
),
@@ -1481,6 +1626,15 @@ return array(
'position' => 'top',
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.ui.radio' => array(
+ 'skinStyles' => array(
+ 'default' => array(
+ 'resources/src/mediawiki.ui/components/radio.less',
+ ),
+ ),
+ 'position' => 'top',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
// Lightweight module for anchor styles
'mediawiki.ui.anchor' => array(
'skinStyles' => array(
@@ -1510,6 +1664,25 @@ return array(
'position' => 'top',
'targets' => array( 'desktop', 'mobile' ),
),
+ 'mediawiki.ui.icon' => array(
+ 'skinStyles' => array(
+ 'default' => array(
+ 'resources/src/mediawiki.ui/components/icons.less',
+ ),
+ ),
+ 'position' => 'top',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+ // Lightweight module for text styles
+ 'mediawiki.ui.text' => array(
+ 'skinStyles' => array(
+ 'default' => array(
+ 'resources/src/mediawiki.ui/components/text.less',
+ ),
+ ),
+ 'position' => 'top',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
/* es5-shim */
'es5-shim' => array(
@@ -1540,29 +1713,37 @@ return array(
'scripts' => array(
'resources/lib/oojs-ui/oojs-ui.js',
),
- 'styles' => array(
- 'resources/lib/oojs-ui/oojs-ui.svg.css',
+ 'skinScripts' => array(
+ 'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.js',
),
- 'skinStyles' => array(
- 'default' => 'resources/lib/oojs-ui/oojs-ui-apex.css',
- // FIXME As of July 2014, this is to be gone "in a couple of months".
- 'minerva' => 'resources/lib/oojs-ui/oojs-ui-minerva.css',
+ 'dependencies' => array(
+ 'es5-shim',
+ 'oojs',
+ 'oojs-ui.styles',
),
'messages' => array(
- 'ooui-outline-control-move-down',
- 'ooui-outline-control-move-up',
- 'ooui-outline-control-remove',
- 'ooui-toolbar-more',
'ooui-dialog-message-accept',
'ooui-dialog-message-reject',
+ 'ooui-dialog-process-continue',
'ooui-dialog-process-dismiss',
'ooui-dialog-process-error',
'ooui-dialog-process-retry',
+ 'ooui-outline-control-move-down',
+ 'ooui-outline-control-move-up',
+ 'ooui-outline-control-remove',
+ 'ooui-toolbar-more',
+ 'ooui-toolgroup-collapse',
+ 'ooui-toolgroup-expand',
),
- 'dependencies' => array(
- 'es5-shim',
- 'oojs',
+ 'targets' => array( 'desktop', 'mobile' ),
+ ),
+
+ 'oojs-ui.styles' => array(
+ 'position' => 'top',
+ 'skinStyles' => array(
+ 'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.css',
),
'targets' => array( 'desktop', 'mobile' ),
),
+
);
diff --git a/resources/assets/file-type-icons/COPYING b/resources/assets/file-type-icons/COPYING
index 136530a9..19a775a8 100644
--- a/resources/assets/file-type-icons/COPYING
+++ b/resources/assets/file-type-icons/COPYING
@@ -1,4 +1,4 @@
-The icons used here are derived from the crystalsvg icons in the the
+The icons used here are derived from the crystalsvg icons in the
pics/crystalsvg/ directory of kdelibs-3.4.0 they were modified on 2005-05-15
by Ævar Arnfjörð Bjarmason for use in MediaWiki.
diff --git a/resources/assets/poweredby_mediawiki_132x47.png b/resources/assets/poweredby_mediawiki_132x47.png
new file mode 100644
index 00000000..a784ecff
--- /dev/null
+++ b/resources/assets/poweredby_mediawiki_132x47.png
Binary files differ
diff --git a/resources/assets/poweredby_mediawiki_176x62.png b/resources/assets/poweredby_mediawiki_176x62.png
new file mode 100644
index 00000000..79708012
--- /dev/null
+++ b/resources/assets/poweredby_mediawiki_176x62.png
Binary files differ
diff --git a/resources/lib/jquery.client/AUTHORS.txt b/resources/lib/jquery.client/AUTHORS.txt
new file mode 100644
index 00000000..9f186cac
--- /dev/null
+++ b/resources/lib/jquery.client/AUTHORS.txt
@@ -0,0 +1,9 @@
+Trevor Parscal <trevorparscal@gmail.com>
+Timo Tijhof <krinklemail@gmail.com>
+Roan Kattouw <roan.kattouw@gmail.com>
+Derk-Jan Hartman <hartman.wiki@gmail.com>
+Bartosz Dziewoński <matma.rex@gmail.com>
+Rob Moen <rmoen@wikimedia.org>
+Ed Sanders <esanders@wikimedia.org>
+Alex Monk <krenair@gmail.com>
+James D. Forrester <jforrester@wikimedia.org>
diff --git a/resources/lib/jquery.client/LICENSE-MIT.txt b/resources/lib/jquery.client/LICENSE-MIT.txt
new file mode 100644
index 00000000..f149289d
--- /dev/null
+++ b/resources/lib/jquery.client/LICENSE-MIT.txt
@@ -0,0 +1,20 @@
+Copyright 2010-2015 jquery-client maintainers and other contributors.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/resources/lib/jquery.client/README.md b/resources/lib/jquery.client/README.md
new file mode 100644
index 00000000..02b5dd41
--- /dev/null
+++ b/resources/lib/jquery.client/README.md
@@ -0,0 +1,6 @@
+[![Build Status](https://travis-ci.org/wikimedia/jquery-client.svg?branch=master)](https://travis-ci.org/wikimedia/jquery-client) [![npm](https://img.shields.io/npm/v/jquery-client.svg?style=flat)](https://www.npmjs.com/package/jquery-client)
+
+jQuery Client
+=================
+
+jQuery Client is a jQuery plugin for user-agent detection.
diff --git a/resources/src/jquery/jquery.client.js b/resources/lib/jquery.client/jquery.client.js
index 662a6887..1560c7d2 100644
--- a/resources/src/jquery/jquery.client.js
+++ b/resources/lib/jquery.client/jquery.client.js
@@ -1,3 +1,12 @@
+/*!
+ * jQuery Client v1.0.0
+ * https://www.mediawiki.org/wiki/JQuery_Client
+ *
+ * Copyright 2010-2015 jquery-client maintainers and other contributors.
+ * Released under the MIT license
+ * http://jquery-client.mit-license.org
+ */
+
/**
* User-agent detection
*
@@ -33,7 +42,7 @@
* }
*/
profile: function ( nav ) {
- /*jshint boss: true */
+ /*jshint boss:true */
if ( nav === undefined ) {
nav = window.navigator;
@@ -87,11 +96,11 @@
// Tanslations for conforming browser names
nameTranslations = [],
// Names of known layout engines
- layouts = ['gecko', 'konqueror', 'msie', 'trident', 'opera', 'webkit'],
+ layouts = ['gecko', 'konqueror', 'msie', 'trident', 'edge', 'opera', 'webkit'],
// Translations for conforming layout names
layoutTranslations = [ ['konqueror', 'khtml'], ['msie', 'trident'], ['opera', 'presto'] ],
// Names of supported layout engines for version number
- layoutVersions = ['applewebkit', 'gecko', 'trident'],
+ layoutVersions = ['applewebkit', 'gecko', 'trident', 'edge'],
// Names of known operating systems
platforms = ['win', 'wow64', 'mac', 'linux', 'sunos', 'solaris', 'iphone'],
// Translations for conforming operating system names
@@ -173,6 +182,13 @@
version = match[1];
}
}
+ // And IE 12's different lies about not being IE
+ if ( name === 'chrome' && ( match = ua.match( /\bedge\/([0-9\.]*)/ ) ) ) {
+ name = 'msie';
+ version = match[1];
+ layout = 'edge';
+ layoutversion = parseInt( match[1], 10 );
+ }
// And Amazon Silk's lies about being Android on mobile or Safari on desktop
if ( match = ua.match( /\bsilk\/([0-9.\-_]*)/ ) ) {
if ( match[1] ) {
@@ -236,7 +252,7 @@
* @return {boolean} The current browser is in the support map
*/
test: function ( map, profile, exactMatchOnly ) {
- /*jshint evil: true */
+ /*jshint evil:true */
var conditions, dir, i, op, val, j, pieceVersion, pieceVal, compare;
profile = $.isPlainObject( profile ) ? profile : $.client.profile();
@@ -285,7 +301,7 @@
}
}
// compare will be -1, 0 or 1, depending on comparison result
- if ( !( eval( '' + compare + op + '0' ) ) ) {
+ if ( !( eval( String( compare + op + '0' ) ) ) ) {
return false;
}
} else if ( typeof val === 'number' ) {
diff --git a/resources/lib/jquery.ui/themes/smoothness/PATCHES b/resources/lib/jquery.ui/themes/smoothness/PATCHES
new file mode 100644
index 00000000..53fbe1fc
--- /dev/null
+++ b/resources/lib/jquery.ui/themes/smoothness/PATCHES
@@ -0,0 +1,3 @@
+jquery.ui.theme.css
+* Removed ".ui-widget-content a { color: #222222; }" and
+ ".ui-widget-header a { color: #222222; }" due to bug T85857.
diff --git a/resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css b/resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css
index 2e088ca1..d4f7db3b 100644
--- a/resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css
+++ b/resources/lib/jquery.ui/themes/smoothness/jquery.ui.core.css
@@ -14,7 +14,7 @@
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
+.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; border-collapse: collapse; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
diff --git a/resources/lib/jquery.ui/themes/smoothness/jquery.ui.theme.css b/resources/lib/jquery.ui/themes/smoothness/jquery.ui.theme.css
index d170081b..1d8b8a8f 100644
--- a/resources/lib/jquery.ui/themes/smoothness/jquery.ui.theme.css
+++ b/resources/lib/jquery.ui/themes/smoothness/jquery.ui.theme.css
@@ -18,9 +18,7 @@
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x; color: #222222; font-weight: bold; }
-.ui-widget-header a { color: #222222; }
/* Interaction states
----------------------------------*/
@@ -245,4 +243,4 @@
/* Overlays */
.ui-widget-overlay { background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } \ No newline at end of file
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x; opacity: .3;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }
diff --git a/resources/lib/jquery/jquery.jStorage.js b/resources/lib/jquery/jquery.jStorage.js
index cc11aed1..45e19ac6 100644
--- a/resources/lib/jquery/jquery.jStorage.js
+++ b/resources/lib/jquery/jquery.jStorage.js
@@ -34,12 +34,15 @@
* For more information, please refer to <http://unlicense.org/>
*/
+/* global ActiveXObject: false */
+/* jshint browser: true */
+
(function() {
'use strict';
var
/* jStorage version */
- JSTORAGE_VERSION = '0.4.10',
+ JSTORAGE_VERSION = '0.4.12',
/* detect a dollar object or create one if not found */
$ = window.jQuery || window.$ || (window.$ = {}),
@@ -58,7 +61,7 @@
};
// Break if no JSON support was found
- if (!('parse' in JSON) || !('stringify' in JSON)) {
+ if (typeof JSON.parse !== 'function' || typeof JSON.stringify !== 'function') {
throw new Error('No JSON support found, include //cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js to page');
}
@@ -536,16 +539,21 @@
return;
}
var pubelm,
- _pubsubCurrent = _pubsub_last;
+ _pubsubCurrent = _pubsub_last,
+ needFired = [];
for (i = len = _storage.__jstorage_meta.PubSub.length - 1; i >= 0; i--) {
pubelm = _storage.__jstorage_meta.PubSub[i];
if (pubelm[0] > _pubsub_last) {
_pubsubCurrent = pubelm[0];
- _fireSubscribers(pubelm[1], pubelm[2]);
+ needFired.unshift(pubelm);
}
}
+ for (i = needFired.length - 1; i >= 0; i--) {
+ _fireSubscribers(needFired[i][1], needFired[i][2]);
+ }
+
_pubsub_last = _pubsubCurrent;
}
@@ -653,8 +661,10 @@
switch (l) {
case 3:
h ^= (str.charCodeAt(i + 2) & 0xff) << 16;
+ /* falls through */
case 2:
h ^= (str.charCodeAt(i + 1) & 0xff) << 8;
+ /* falls through */
case 1:
h ^= (str.charCodeAt(i) & 0xff);
h = (((h & 0xffff) * 0x5bd1e995) + ((((h >>> 16) * 0x5bd1e995) & 0xffff) << 16));
@@ -983,4 +993,4 @@
// Initialize jStorage
_init();
-})(); \ No newline at end of file
+})();
diff --git a/resources/lib/jquery/jquery.js b/resources/lib/jquery/jquery.js
index 1c3aa822..6feb1108 100644
--- a/resources/lib/jquery/jquery.js
+++ b/resources/lib/jquery/jquery.js
@@ -1,5 +1,5 @@
/*!
- * jQuery JavaScript Library v1.11.2
+ * jQuery JavaScript Library v1.11.3
* http://jquery.com/
*
* Includes Sizzle.js
@@ -9,7 +9,7 @@
* Released under the MIT license
* http://jquery.org/license
*
- * Date: 2014-12-17T15:27Z
+ * Date: 2015-04-28T16:19Z
*/
(function( global, factory ) {
@@ -64,7 +64,7 @@ var support = {};
var
- version = "1.11.2",
+ version = "1.11.3",
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@@ -569,7 +569,12 @@ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".spli
});
function isArraylike( obj ) {
- var length = obj.length,
+
+ // Support: iOS 8.2 (not reproducible in simulator)
+ // `in` check used to prevent JIT error (gh-2145)
+ // hasOwn isn't used here due to false negatives
+ // regarding Nodelist length in IE
+ var length = "length" in obj && obj.length,
type = jQuery.type( obj );
if ( type === "function" || jQuery.isWindow( obj ) ) {
diff --git a/resources/lib/jquery/jquery.json.js b/resources/lib/jquery/jquery.json.js
deleted file mode 100644
index 75953f4d..00000000
--- a/resources/lib/jquery/jquery.json.js
+++ /dev/null
@@ -1,199 +0,0 @@
-/**
- * jQuery JSON plugin 2.4.0
- *
- * @author Brantley Harris, 2009-2011
- * @author Timo Tijhof, 2011-2012
- * @source This plugin is heavily influenced by MochiKit's serializeJSON, which is
- * copyrighted 2005 by Bob Ippolito.
- * @source Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
- * website's http://www.json.org/json2.js, which proclaims:
- * "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
- * I uphold.
- * @license MIT License <http://www.opensource.org/licenses/mit-license.php>
- */
-(function ($) {
- 'use strict';
-
- var escape = /["\\\x00-\x1f\x7f-\x9f]/g,
- meta = {
- '\b': '\\b',
- '\t': '\\t',
- '\n': '\\n',
- '\f': '\\f',
- '\r': '\\r',
- '"' : '\\"',
- '\\': '\\\\'
- },
- hasOwn = Object.prototype.hasOwnProperty;
-
- /**
- * jQuery.toJSON
- * Converts the given argument into a JSON representation.
- *
- * @param o {Mixed} The json-serializable *thing* to be converted
- *
- * If an object has a toJSON prototype, that will be used to get the representation.
- * Non-integer/string keys are skipped in the object, as are keys that point to a
- * function.
- *
- */
- $.toJSON = typeof JSON === 'object' && JSON.stringify ? JSON.stringify : function (o) {
- if (o === null) {
- return 'null';
- }
-
- var pairs, k, name, val,
- type = $.type(o);
-
- if (type === 'undefined') {
- return undefined;
- }
-
- // Also covers instantiated Number and Boolean objects,
- // which are typeof 'object' but thanks to $.type, we
- // catch them here. I don't know whether it is right
- // or wrong that instantiated primitives are not
- // exported to JSON as an {"object":..}.
- // We choose this path because that's what the browsers did.
- if (type === 'number' || type === 'boolean') {
- return String(o);
- }
- if (type === 'string') {
- return $.quoteString(o);
- }
- if (typeof o.toJSON === 'function') {
- return $.toJSON(o.toJSON());
- }
- if (type === 'date') {
- var month = o.getUTCMonth() + 1,
- day = o.getUTCDate(),
- year = o.getUTCFullYear(),
- hours = o.getUTCHours(),
- minutes = o.getUTCMinutes(),
- seconds = o.getUTCSeconds(),
- milli = o.getUTCMilliseconds();
-
- if (month < 10) {
- month = '0' + month;
- }
- if (day < 10) {
- day = '0' + day;
- }
- if (hours < 10) {
- hours = '0' + hours;
- }
- if (minutes < 10) {
- minutes = '0' + minutes;
- }
- if (seconds < 10) {
- seconds = '0' + seconds;
- }
- if (milli < 100) {
- milli = '0' + milli;
- }
- if (milli < 10) {
- milli = '0' + milli;
- }
- return '"' + year + '-' + month + '-' + day + 'T' +
- hours + ':' + minutes + ':' + seconds +
- '.' + milli + 'Z"';
- }
-
- pairs = [];
-
- if ($.isArray(o)) {
- for (k = 0; k < o.length; k++) {
- pairs.push($.toJSON(o[k]) || 'null');
- }
- return '[' + pairs.join(',') + ']';
- }
-
- // Any other object (plain object, RegExp, ..)
- // Need to do typeof instead of $.type, because we also
- // want to catch non-plain objects.
- if (typeof o === 'object') {
- for (k in o) {
- // Only include own properties,
- // Filter out inherited prototypes
- if (hasOwn.call(o, k)) {
- // Keys must be numerical or string. Skip others
- type = typeof k;
- if (type === 'number') {
- name = '"' + k + '"';
- } else if (type === 'string') {
- name = $.quoteString(k);
- } else {
- continue;
- }
- type = typeof o[k];
-
- // Invalid values like these return undefined
- // from toJSON, however those object members
- // shouldn't be included in the JSON string at all.
- if (type !== 'function' && type !== 'undefined') {
- val = $.toJSON(o[k]);
- pairs.push(name + ':' + val);
- }
- }
- }
- return '{' + pairs.join(',') + '}';
- }
- };
-
- /**
- * jQuery.evalJSON
- * Evaluates a given json string.
- *
- * @param str {String}
- */
- $.evalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
- /*jshint evil: true */
- return eval('(' + str + ')');
- };
-
- /**
- * jQuery.secureEvalJSON
- * Evals JSON in a way that is *more* secure.
- *
- * @param str {String}
- */
- $.secureEvalJSON = typeof JSON === 'object' && JSON.parse ? JSON.parse : function (str) {
- var filtered =
- str
- .replace(/\\["\\\/bfnrtu]/g, '@')
- .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
- .replace(/(?:^|:|,)(?:\s*\[)+/g, '');
-
- if (/^[\],:{}\s]*$/.test(filtered)) {
- /*jshint evil: true */
- return eval('(' + str + ')');
- }
- throw new SyntaxError('Error parsing JSON, source is not valid.');
- };
-
- /**
- * jQuery.quoteString
- * Returns a string-repr of a string, escaping quotes intelligently.
- * Mostly a support function for toJSON.
- * Examples:
- * >>> jQuery.quoteString('apple')
- * "apple"
- *
- * >>> jQuery.quoteString('"Where are we going?", she asked.')
- * "\"Where are we going?\", she asked."
- */
- $.quoteString = function (str) {
- if (str.match(escape)) {
- return '"' + str.replace(escape, function (a) {
- var c = meta[a];
- if (typeof c === 'string') {
- return c;
- }
- c = a.charCodeAt();
- return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
- }) + '"';
- }
- return '"' + str + '"';
- };
-
-}(jQuery));
diff --git a/resources/lib/jquery/jquery.migrate.js b/resources/lib/jquery/jquery.migrate.js
deleted file mode 100644
index 5b182366..00000000
--- a/resources/lib/jquery/jquery.migrate.js
+++ /dev/null
@@ -1,551 +0,0 @@
-/*!
- * jQuery Migrate - v1.2.1 - 2013-05-08
- * https://github.com/jquery/jquery-migrate
- * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
- *
- * Patched for MediaWiki to add mw.track calls. --Krinkle 2014-04-14
- */
-(function( jQuery, window, undefined ) {
-// See http://bugs.jquery.com/ticket/13335
-// "use strict";
-
-
-var warnedAbout = {};
-
-// List of warnings already given; public read only
-jQuery.migrateWarnings = [];
-
-// Set to true to prevent console output; migrateWarnings still maintained
-// jQuery.migrateMute = false;
-
-// Show a message on the console so devs know we're active
-if ( !jQuery.migrateMute && window.console && window.console.log ) {
- window.console.log("JQMIGRATE: Logging is active");
-}
-
-// Set to false to disable traces that appear with warnings
-if ( jQuery.migrateTrace === undefined ) {
- jQuery.migrateTrace = true;
-}
-
-// Forget any warnings we've already given; public
-jQuery.migrateReset = function() {
- warnedAbout = {};
- jQuery.migrateWarnings.length = 0;
-};
-
-function migrateWarn( msg, key ) {
- var console = window.console;
- /*
- MediaWiki patch for tracking usage.
-
- Custom keys:
- - andSelf
- - attr-pass
- - attr-prop
- - bind-error
- - clean
- - create-html
- - data-events
- - die
- - event-ajax
- - event-global
- - event-hover
- - event-handle
- - input-type
- - json-invalid
- - live
- - sub
- - toggle-handle
-
- Prop keys:
- - attrFn
- - browser
- */
- mw.track( "jquery.migrate", key || "unknown" );
-
- if ( !warnedAbout[ msg ] ) {
- warnedAbout[ msg ] = true;
- jQuery.migrateWarnings.push( msg );
- if ( console && console.warn && !jQuery.migrateMute ) {
- console.warn( "JQMIGRATE: " + msg );
- if ( jQuery.migrateTrace && console.trace ) {
- console.trace();
- }
- }
- }
-}
-
-function migrateWarnProp( obj, prop, value, msg, key ) {
- if ( Object.defineProperty ) {
- // On ES5 browsers (non-oldIE), warn if the code tries to get prop;
- // allow property to be overwritten in case some other plugin wants it
- try {
- Object.defineProperty( obj, prop, {
- configurable: true,
- enumerable: true,
- get: function() {
- migrateWarn( msg, key || prop );
- return value;
- },
- set: function( newValue ) {
- migrateWarn( msg, key || prop );
- value = newValue;
- }
- });
- return;
- } catch( err ) {
- // IE8 is a dope about Object.defineProperty, can't warn there
- }
- }
-
- // Non-ES5 (or broken) browser; just set the property
- jQuery._definePropertyBroken = true;
- obj[ prop ] = value;
-}
-
-if ( document.compatMode === "BackCompat" ) {
- // jQuery has never supported or tested Quirks Mode
- migrateWarn( "jQuery is not compatible with Quirks Mode" );
-}
-
-
-var attrFn = jQuery( "<input/>", { size: 1 } ).attr("size") && jQuery.attrFn,
- oldAttr = jQuery.attr,
- valueAttrGet = jQuery.attrHooks.value && jQuery.attrHooks.value.get ||
- function() { return null; },
- valueAttrSet = jQuery.attrHooks.value && jQuery.attrHooks.value.set ||
- function() { return undefined; },
- rnoType = /^(?:input|button)$/i,
- rnoAttrNodeType = /^[238]$/,
- rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
- ruseDefault = /^(?:checked|selected)$/i;
-
-// jQuery.attrFn
-migrateWarnProp( jQuery, "attrFn", attrFn || {}, "jQuery.attrFn is deprecated" );
-
-jQuery.attr = function( elem, name, value, pass ) {
- var lowerName = name.toLowerCase(),
- nType = elem && elem.nodeType;
-
- if ( pass ) {
- // Since pass is used internally, we only warn for new jQuery
- // versions where there isn't a pass arg in the formal params
- if ( oldAttr.length < 4 ) {
- migrateWarn("jQuery.fn.attr( props, pass ) is deprecated", "attr-pass" );
- }
- if ( elem && !rnoAttrNodeType.test( nType ) &&
- (attrFn ? name in attrFn : jQuery.isFunction(jQuery.fn[name])) ) {
- return jQuery( elem )[ name ]( value );
- }
- }
-
- // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
- // for disconnected elements we don't warn on $( "<button>", { type: "button" } ).
- if ( name === "type" && value !== undefined && rnoType.test( elem.nodeName ) && elem.parentNode ) {
- migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8", "input-type");
- }
-
- // Restore boolHook for boolean property/attribute synchronization
- if ( !jQuery.attrHooks[ lowerName ] && rboolean.test( lowerName ) ) {
- jQuery.attrHooks[ lowerName ] = {
- get: function( elem, name ) {
- // Align boolean attributes with corresponding properties
- // Fall back to attribute presence where some booleans are not supported
- var attrNode,
- property = jQuery.prop( elem, name );
- return property === true || typeof property !== "boolean" &&
- ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
-
- name.toLowerCase() :
- undefined;
- },
- set: function( elem, value, name ) {
- var propName;
- if ( value === false ) {
- // Remove boolean attributes when set to false
- jQuery.removeAttr( elem, name );
- } else {
- // value is true since we know at this point it's type boolean and not false
- // Set boolean attributes to the same name and set the DOM property
- propName = jQuery.propFix[ name ] || name;
- if ( propName in elem ) {
- // Only set the IDL specifically if it already exists on the element
- elem[ propName ] = true;
- }
-
- elem.setAttribute( name, name.toLowerCase() );
- }
- return name;
- }
- };
-
- // Warn only for attributes that can remain distinct from their properties post-1.9
- if ( ruseDefault.test( lowerName ) ) {
- migrateWarn( "jQuery.fn.attr('" + lowerName + "') may use property instead of attribute", "attr-prop" );
- }
- }
-
- return oldAttr.call( jQuery, elem, name, value );
-};
-
-// attrHooks: value
-jQuery.attrHooks.value = {
- get: function( elem, name ) {
- var nodeName = ( elem.nodeName || "" ).toLowerCase();
- if ( nodeName === "button" ) {
- return valueAttrGet.apply( this, arguments );
- }
- if ( nodeName !== "input" && nodeName !== "option" ) {
- migrateWarn("jQuery.fn.attr('value') no longer gets properties", "attr-prop");
- }
- return name in elem ?
- elem.value :
- null;
- },
- set: function( elem, value ) {
- var nodeName = ( elem.nodeName || "" ).toLowerCase();
- if ( nodeName === "button" ) {
- return valueAttrSet.apply( this, arguments );
- }
- if ( nodeName !== "input" && nodeName !== "option" ) {
- migrateWarn("jQuery.fn.attr('value', val) no longer sets properties", "attr-prop");
- }
- // Does not return so that setAttribute is also used
- elem.value = value;
- }
-};
-
-
-var matched, browser,
- oldInit = jQuery.fn.init,
- oldParseJSON = jQuery.parseJSON,
- // Note: XSS check is done below after string is trimmed
- rquickExpr = /^([^<]*)(<[\w\W]+>)([^>]*)$/;
-
-// $(html) "looks like html" rule change
-jQuery.fn.init = function( selector, context, rootjQuery ) {
- var match;
-
- if ( selector && typeof selector === "string" && !jQuery.isPlainObject( context ) &&
- (match = rquickExpr.exec( jQuery.trim( selector ) )) && match[ 0 ] ) {
- // This is an HTML string according to the "old" rules; is it still?
- if ( selector.charAt( 0 ) !== "<" ) {
- migrateWarn("$(html) HTML strings must start with '<' character", "create-html");
- }
- if ( match[ 3 ] ) {
- migrateWarn("$(html) HTML text after last tag is ignored", "create-html");
- }
- // Consistently reject any HTML-like string starting with a hash (#9521)
- // Note that this may break jQuery 1.6.x code that otherwise would work.
- if ( match[ 0 ].charAt( 0 ) === "#" ) {
- migrateWarn("HTML string cannot start with a '#' character", "create-html");
- jQuery.error("JQMIGRATE: Invalid selector string (XSS)");
- }
- // Now process using loose rules; let pre-1.8 play too
- if ( context && context.context ) {
- // jQuery object as context; parseHTML expects a DOM object
- context = context.context;
- }
- if ( jQuery.parseHTML ) {
- return oldInit.call( this, jQuery.parseHTML( match[ 2 ], context, true ),
- context, rootjQuery );
- }
- }
- return oldInit.apply( this, arguments );
-};
-jQuery.fn.init.prototype = jQuery.fn;
-
-// Let $.parseJSON(falsy_value) return null
-jQuery.parseJSON = function( json ) {
- if ( !json && json !== null ) {
- migrateWarn("jQuery.parseJSON requires a valid JSON string", "json-invalid");
- return null;
- }
- return oldParseJSON.apply( this, arguments );
-};
-
-jQuery.uaMatch = function( ua ) {
- ua = ua.toLowerCase();
-
- var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- return {
- browser: match[ 1 ] || "",
- version: match[ 2 ] || "0"
- };
-};
-
-// Don't clobber any existing jQuery.browser in case it's different
-if ( !jQuery.browser ) {
- matched = jQuery.uaMatch( navigator.userAgent );
- browser = {};
-
- if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- }
-
- // Chrome is Webkit, but Webkit is also Safari.
- if ( browser.chrome ) {
- browser.webkit = true;
- } else if ( browser.webkit ) {
- browser.safari = true;
- }
-
- jQuery.browser = browser;
-}
-
-// Warn if the code tries to get jQuery.browser
-migrateWarnProp( jQuery, "browser", jQuery.browser, "jQuery.browser is deprecated" );
-
-jQuery.sub = function() {
- function jQuerySub( selector, context ) {
- return new jQuerySub.fn.init( selector, context );
- }
- jQuery.extend( true, jQuerySub, this );
- jQuerySub.superclass = this;
- jQuerySub.fn = jQuerySub.prototype = this();
- jQuerySub.fn.constructor = jQuerySub;
- jQuerySub.sub = this.sub;
- jQuerySub.fn.init = function init( selector, context ) {
- if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
- context = jQuerySub( context );
- }
-
- return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
- };
- jQuerySub.fn.init.prototype = jQuerySub.fn;
- var rootjQuerySub = jQuerySub(document);
- migrateWarn( "jQuery.sub() is deprecated", "sub" );
- return jQuerySub;
-};
-
-
-// Ensure that $.ajax gets the new parseJSON defined in core.js
-jQuery.ajaxSetup({
- converters: {
- "text json": jQuery.parseJSON
- }
-});
-
-
-var oldFnData = jQuery.fn.data;
-
-jQuery.fn.data = function( name ) {
- var ret, evt,
- elem = this[0];
-
- // Handles 1.7 which has this behavior and 1.8 which doesn't
- if ( elem && name === "events" && arguments.length === 1 ) {
- ret = jQuery.data( elem, name );
- evt = jQuery._data( elem, name );
- if ( ( ret === undefined || ret === evt ) && evt !== undefined ) {
- migrateWarn("Use of jQuery.fn.data('events') is deprecated", "data-events");
- return evt;
- }
- }
- return oldFnData.apply( this, arguments );
-};
-
-
-var rscriptType = /\/(java|ecma)script/i,
- oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
-
-jQuery.fn.andSelf = function() {
- migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()", "andSelf");
- return oldSelf.apply( this, arguments );
-};
-
-// Since jQuery.clean is used internally on older versions, we only shim if it's missing
-if ( !jQuery.clean ) {
- jQuery.clean = function( elems, context, fragment, scripts ) {
- // Set context per 1.8 logic
- context = context || document;
- context = !context.nodeType && context[0] || context;
- context = context.ownerDocument || context;
-
- migrateWarn("jQuery.clean() is deprecated", "clean");
-
- var i, elem, handleScript, jsTags,
- ret = [];
-
- jQuery.merge( ret, jQuery.buildFragment( elems, context ).childNodes );
-
- // Complex logic lifted directly from jQuery 1.8
- if ( fragment ) {
- // Special handling of each script element
- handleScript = function( elem ) {
- // Check if we consider it executable
- if ( !elem.type || rscriptType.test( elem.type ) ) {
- // Detach the script and store it in the scripts array (if provided) or the fragment
- // Return truthy to indicate that it has been handled
- return scripts ?
- scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
- fragment.appendChild( elem );
- }
- };
-
- for ( i = 0; (elem = ret[i]) != null; i++ ) {
- // Check if we're done after handling an executable script
- if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
- // Append to fragment and handle embedded scripts
- fragment.appendChild( elem );
- if ( typeof elem.getElementsByTagName !== "undefined" ) {
- // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
- jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
-
- // Splice the scripts into ret after their former ancestor and advance our index beyond them
- ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
- i += jsTags.length;
- }
- }
- }
- }
-
- return ret;
- };
-}
-
-var eventAdd = jQuery.event.add,
- eventRemove = jQuery.event.remove,
- eventTrigger = jQuery.event.trigger,
- oldToggle = jQuery.fn.toggle,
- oldLive = jQuery.fn.live,
- oldDie = jQuery.fn.die,
- ajaxEvents = "ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",
- rajaxEvent = new RegExp( "\\b(?:" + ajaxEvents + ")\\b" ),
- rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
- hoverHack = function( events ) {
- if ( typeof( events ) !== "string" || jQuery.event.special.hover ) {
- return events;
- }
- if ( rhoverHack.test( events ) ) {
- migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'", "event-hover");
- }
- return events && events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
- };
-
-// Event props removed in 1.9, put them back if needed; no practical way to warn them
-if ( jQuery.event.props && jQuery.event.props[ 0 ] !== "attrChange" ) {
- jQuery.event.props.unshift( "attrChange", "attrName", "relatedNode", "srcElement" );
-}
-
-// Undocumented jQuery.event.handle was "deprecated" in jQuery 1.7
-if ( jQuery.event.dispatch ) {
- migrateWarnProp( jQuery.event, "handle", jQuery.event.dispatch, "jQuery.event.handle is undocumented and deprecated", "event-handle" );
-}
-
-// Support for 'hover' pseudo-event and ajax event warnings
-jQuery.event.add = function( elem, types, handler, data, selector ){
- if ( elem !== document && rajaxEvent.test( types ) ) {
- migrateWarn( "AJAX events should be attached to document: " + types, "event-ajax" );
- }
- eventAdd.call( this, elem, hoverHack( types || "" ), handler, data, selector );
-};
-jQuery.event.remove = function( elem, types, handler, selector, mappedTypes ){
- eventRemove.call( this, elem, hoverHack( types ) || "", handler, selector, mappedTypes );
-};
-
-jQuery.fn.error = function() {
- var args = Array.prototype.slice.call( arguments, 0);
- migrateWarn("jQuery.fn.error() is deprecated", "bind-error");
- args.splice( 0, 0, "error" );
- if ( arguments.length ) {
- return this.bind.apply( this, args );
- }
- // error event should not bubble to window, although it does pre-1.7
- this.triggerHandler.apply( this, args );
- return this;
-};
-
-jQuery.fn.toggle = function( fn, fn2 ) {
-
- // Don't mess with animation or css toggles
- if ( !jQuery.isFunction( fn ) || !jQuery.isFunction( fn2 ) ) {
- return oldToggle.apply( this, arguments );
- }
- migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated", "toggle-handle");
-
- // Save reference to arguments for access in closure
- var args = arguments,
- guid = fn.guid || jQuery.guid++,
- i = 0,
- toggler = function( event ) {
- // Figure out which function to execute
- var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
- jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
- // Make sure that clicks stop
- event.preventDefault();
-
- // and execute the function
- return args[ lastToggle ].apply( this, arguments ) || false;
- };
-
- // link all the functions, so any of them can unbind this click handler
- toggler.guid = guid;
- while ( i < args.length ) {
- args[ i++ ].guid = guid;
- }
-
- return this.click( toggler );
-};
-
-jQuery.fn.live = function( types, data, fn ) {
- migrateWarn("jQuery.fn.live() is deprecated", "live");
- if ( oldLive ) {
- return oldLive.apply( this, arguments );
- }
- jQuery( this.context ).on( types, this.selector, data, fn );
- return this;
-};
-
-jQuery.fn.die = function( types, fn ) {
- migrateWarn("jQuery.fn.die() is deprecated", "die");
- if ( oldDie ) {
- return oldDie.apply( this, arguments );
- }
- jQuery( this.context ).off( types, this.selector || "**", fn );
- return this;
-};
-
-// Turn global events into document-triggered events
-jQuery.event.trigger = function( event, data, elem, onlyHandlers ){
- if ( !elem && !rajaxEvent.test( event ) ) {
- migrateWarn( "Global events are undocumented and deprecated", "event-global" );
- }
- return eventTrigger.call( this, event, data, elem || document, onlyHandlers );
-};
-jQuery.each( ajaxEvents.split("|"),
- function( _, name ) {
- jQuery.event.special[ name ] = {
- setup: function() {
- var elem = this;
-
- // The document needs no shimming; must be !== for oldIE
- if ( elem !== document ) {
- jQuery.event.add( document, name + "." + jQuery.guid, function() {
- jQuery.event.trigger( name, null, elem, true );
- });
- jQuery._data( this, name, jQuery.guid++ );
- }
- return false;
- },
- teardown: function() {
- if ( this !== document ) {
- jQuery.event.remove( document, name + "." + jQuery._data( this, name ) );
- }
- return false;
- }
- };
- }
-);
-
-
-})( jQuery, window );
diff --git a/resources/lib/jquery/jquery.qunit.js b/resources/lib/jquery/jquery.qunit.js
deleted file mode 100644
index 0e279fde..00000000
--- a/resources/lib/jquery/jquery.qunit.js
+++ /dev/null
@@ -1,2288 +0,0 @@
-/*!
- * QUnit 1.14.0
- * http://qunitjs.com/
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2014-01-31T16:40Z
- */
-
-(function( window ) {
-
-var QUnit,
- assert,
- config,
- onErrorFnPrev,
- testId = 0,
- fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
- toString = Object.prototype.toString,
- hasOwn = Object.prototype.hasOwnProperty,
- // Keep a local reference to Date (GH-283)
- Date = window.Date,
- setTimeout = window.setTimeout,
- clearTimeout = window.clearTimeout,
- defined = {
- document: typeof window.document !== "undefined",
- setTimeout: typeof window.setTimeout !== "undefined",
- sessionStorage: (function() {
- var x = "qunit-test-string";
- try {
- sessionStorage.setItem( x, x );
- sessionStorage.removeItem( x );
- return true;
- } catch( e ) {
- return false;
- }
- }())
- },
- /**
- * Provides a normalized error string, correcting an issue
- * with IE 7 (and prior) where Error.prototype.toString is
- * not properly implemented
- *
- * Based on http://es5.github.com/#x15.11.4.4
- *
- * @param {String|Error} error
- * @return {String} error message
- */
- errorString = function( error ) {
- var name, message,
- errorString = error.toString();
- if ( errorString.substring( 0, 7 ) === "[object" ) {
- name = error.name ? error.name.toString() : "Error";
- message = error.message ? error.message.toString() : "";
- if ( name && message ) {
- return name + ": " + message;
- } else if ( name ) {
- return name;
- } else if ( message ) {
- return message;
- } else {
- return "Error";
- }
- } else {
- return errorString;
- }
- },
- /**
- * Makes a clone of an object using only Array or Object as base,
- * and copies over the own enumerable properties.
- *
- * @param {Object} obj
- * @return {Object} New object with only the own properties (recursively).
- */
- objectValues = function( obj ) {
- // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
- /*jshint newcap: false */
- var key, val,
- vals = QUnit.is( "array", obj ) ? [] : {};
- for ( key in obj ) {
- if ( hasOwn.call( obj, key ) ) {
- val = obj[key];
- vals[key] = val === Object(val) ? objectValues(val) : val;
- }
- }
- return vals;
- };
-
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
- // call on start of module test to prepend name to all tests
- module: function( name, testEnvironment ) {
- config.currentModule = name;
- config.currentModuleTestEnvironment = testEnvironment;
- config.modules[name] = true;
- },
-
- asyncTest: function( testName, expected, callback ) {
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- QUnit.test( testName, expected, callback, true );
- },
-
- test: function( testName, expected, callback, async ) {
- var test,
- nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
-
- if ( arguments.length === 2 ) {
- callback = expected;
- expected = null;
- }
-
- if ( config.currentModule ) {
- nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
- }
-
- test = new Test({
- nameHtml: nameHtml,
- testName: testName,
- expected: expected,
- async: async,
- callback: callback,
- module: config.currentModule,
- moduleTestEnvironment: config.currentModuleTestEnvironment,
- stack: sourceFromStacktrace( 2 )
- });
-
- if ( !validTest( test ) ) {
- return;
- }
-
- test.queue();
- },
-
- // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
- expect: function( asserts ) {
- if (arguments.length === 1) {
- config.current.expected = asserts;
- } else {
- return config.current.expected;
- }
- },
-
- start: function( count ) {
- // QUnit hasn't been initialized yet.
- // Note: RequireJS (et al) may delay onLoad
- if ( config.semaphore === undefined ) {
- QUnit.begin(function() {
- // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
- setTimeout(function() {
- QUnit.start( count );
- });
- });
- return;
- }
-
- config.semaphore -= count || 1;
- // don't start until equal number of stop-calls
- if ( config.semaphore > 0 ) {
- return;
- }
- // ignore if start is called more often then stop
- if ( config.semaphore < 0 ) {
- config.semaphore = 0;
- QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
- return;
- }
- // A slight delay, to avoid any current callbacks
- if ( defined.setTimeout ) {
- setTimeout(function() {
- if ( config.semaphore > 0 ) {
- return;
- }
- if ( config.timeout ) {
- clearTimeout( config.timeout );
- }
-
- config.blocking = false;
- process( true );
- }, 13);
- } else {
- config.blocking = false;
- process( true );
- }
- },
-
- stop: function( count ) {
- config.semaphore += count || 1;
- config.blocking = true;
-
- if ( config.testTimeout && defined.setTimeout ) {
- clearTimeout( config.timeout );
- config.timeout = setTimeout(function() {
- QUnit.ok( false, "Test timed out" );
- config.semaphore = 1;
- QUnit.start();
- }, config.testTimeout );
- }
- }
-};
-
-// We use the prototype to distinguish between properties that should
-// be exposed as globals (and in exports) and those that shouldn't
-(function() {
- function F() {}
- F.prototype = QUnit;
- QUnit = new F();
- // Make F QUnit's constructor so that we can add to the prototype later
- QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
- // The queue of tests to run
- queue: [],
-
- // block until document ready
- blocking: true,
-
- // when enabled, show only failing tests
- // gets persisted through sessionStorage and can be changed in UI via checkbox
- hidepassed: false,
-
- // by default, run previously failed tests first
- // very useful in combination with "Hide passed tests" checked
- reorder: true,
-
- // by default, modify document.title when suite is done
- altertitle: true,
-
- // by default, scroll to top of the page when suite is done
- scrolltop: true,
-
- // when enabled, all tests must call expect()
- requireExpects: false,
-
- // add checkboxes that are persisted in the query-string
- // when enabled, the id is set to `true` as a `QUnit.config` property
- urlConfig: [
- {
- id: "noglobals",
- label: "Check for Globals",
- tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
- },
- {
- id: "notrycatch",
- label: "No try-catch",
- tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
- }
- ],
-
- // Set of all modules.
- modules: {},
-
- // logging callback queues
- begin: [],
- done: [],
- log: [],
- testStart: [],
- testDone: [],
- moduleStart: [],
- moduleDone: []
-};
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
- var i, current,
- location = window.location || { search: "", protocol: "file:" },
- params = location.search.slice( 1 ).split( "&" ),
- length = params.length,
- urlParams = {};
-
- if ( params[ 0 ] ) {
- for ( i = 0; i < length; i++ ) {
- current = params[ i ].split( "=" );
- current[ 0 ] = decodeURIComponent( current[ 0 ] );
-
- // allow just a key to turn on a flag, e.g., test.html?noglobals
- current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
- if ( urlParams[ current[ 0 ] ] ) {
- urlParams[ current[ 0 ] ] = [].concat( urlParams[ current[ 0 ] ], current[ 1 ] );
- } else {
- urlParams[ current[ 0 ] ] = current[ 1 ];
- }
- }
- }
-
- QUnit.urlParams = urlParams;
-
- // String search anywhere in moduleName+testName
- config.filter = urlParams.filter;
-
- // Exact match of the module name
- config.module = urlParams.module;
-
- config.testNumber = [];
- if ( urlParams.testNumber ) {
-
- // Ensure that urlParams.testNumber is an array
- urlParams.testNumber = [].concat( urlParams.testNumber );
- for ( i = 0; i < urlParams.testNumber.length; i++ ) {
- current = urlParams.testNumber[ i ];
- config.testNumber.push( parseInt( current, 10 ) );
- }
- }
-
- // Figure out if we're running the tests from a server or not
- QUnit.isLocal = location.protocol === "file:";
-}());
-
-extend( QUnit, {
-
- config: config,
-
- // Initialize the configuration options
- init: function() {
- extend( config, {
- stats: { all: 0, bad: 0 },
- moduleStats: { all: 0, bad: 0 },
- started: +new Date(),
- updateRate: 1000,
- blocking: false,
- autostart: true,
- autorun: false,
- filter: "",
- queue: [],
- semaphore: 1
- });
-
- var tests, banner, result,
- qunit = id( "qunit" );
-
- if ( qunit ) {
- qunit.innerHTML =
- "<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
- "<h2 id='qunit-banner'></h2>" +
- "<div id='qunit-testrunner-toolbar'></div>" +
- "<h2 id='qunit-userAgent'></h2>" +
- "<ol id='qunit-tests'></ol>";
- }
-
- tests = id( "qunit-tests" );
- banner = id( "qunit-banner" );
- result = id( "qunit-testresult" );
-
- if ( tests ) {
- tests.innerHTML = "";
- }
-
- if ( banner ) {
- banner.className = "";
- }
-
- if ( result ) {
- result.parentNode.removeChild( result );
- }
-
- if ( tests ) {
- result = document.createElement( "p" );
- result.id = "qunit-testresult";
- result.className = "result";
- tests.parentNode.insertBefore( result, tests );
- result.innerHTML = "Running...<br/>&nbsp;";
- }
- },
-
- // Resets the test setup. Useful for tests that modify the DOM.
- /*
- DEPRECATED: Use multiple tests instead of resetting inside a test.
- Use testStart or testDone for custom cleanup.
- This method will throw an error in 2.0, and will be removed in 2.1
- */
- reset: function() {
- var fixture = id( "qunit-fixture" );
- if ( fixture ) {
- fixture.innerHTML = config.fixture;
- }
- },
-
- // Safe object type checking
- is: function( type, obj ) {
- return QUnit.objectType( obj ) === type;
- },
-
- objectType: function( obj ) {
- if ( typeof obj === "undefined" ) {
- return "undefined";
- }
-
- // Consider: typeof null === object
- if ( obj === null ) {
- return "null";
- }
-
- var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
- type = match && match[1] || "";
-
- switch ( type ) {
- case "Number":
- if ( isNaN(obj) ) {
- return "nan";
- }
- return "number";
- case "String":
- case "Boolean":
- case "Array":
- case "Date":
- case "RegExp":
- case "Function":
- return type.toLowerCase();
- }
- if ( typeof obj === "object" ) {
- return "object";
- }
- return undefined;
- },
-
- push: function( result, actual, expected, message ) {
- if ( !config.current ) {
- throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
- }
-
- var output, source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: message,
- actual: actual,
- expected: expected
- };
-
- message = escapeText( message ) || ( result ? "okay" : "failed" );
- message = "<span class='test-message'>" + message + "</span>";
- output = message;
-
- if ( !result ) {
- expected = escapeText( QUnit.jsDump.parse(expected) );
- actual = escapeText( QUnit.jsDump.parse(actual) );
- output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
-
- if ( actual !== expected ) {
- output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
- output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
- }
-
- source = sourceFromStacktrace();
-
- if ( source ) {
- details.source = source;
- output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
- }
-
- output += "</table>";
- }
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: !!result,
- message: output
- });
- },
-
- pushFailure: function( message, source, actual ) {
- if ( !config.current ) {
- throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
-
- var output,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: false,
- message: message
- };
-
- message = escapeText( message ) || "error";
- message = "<span class='test-message'>" + message + "</span>";
- output = message;
-
- output += "<table>";
-
- if ( actual ) {
- output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
- }
-
- if ( source ) {
- details.source = source;
- output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
- }
-
- output += "</table>";
-
- runLoggingCallbacks( "log", QUnit, details );
-
- config.current.assertions.push({
- result: false,
- message: output
- });
- },
-
- url: function( params ) {
- params = extend( extend( {}, QUnit.urlParams ), params );
- var key,
- querystring = "?";
-
- for ( key in params ) {
- if ( hasOwn.call( params, key ) ) {
- querystring += encodeURIComponent( key ) + "=" +
- encodeURIComponent( params[ key ] ) + "&";
- }
- }
- return window.location.protocol + "//" + window.location.host +
- window.location.pathname + querystring.slice( 0, -1 );
- },
-
- extend: extend,
- id: id,
- addEvent: addEvent,
- addClass: addClass,
- hasClass: hasClass,
- removeClass: removeClass
- // load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
- // Logging callbacks; all receive a single argument with the listed properties
- // run test/logs.html for any related changes
- begin: registerLoggingCallback( "begin" ),
-
- // done: { failed, passed, total, runtime }
- done: registerLoggingCallback( "done" ),
-
- // log: { result, actual, expected, message }
- log: registerLoggingCallback( "log" ),
-
- // testStart: { name }
- testStart: registerLoggingCallback( "testStart" ),
-
- // testDone: { name, failed, passed, total, runtime }
- testDone: registerLoggingCallback( "testDone" ),
-
- // moduleStart: { name }
- moduleStart: registerLoggingCallback( "moduleStart" ),
-
- // moduleDone: { name, failed, passed, total }
- moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( !defined.document || document.readyState === "complete" ) {
- config.autorun = true;
-}
-
-QUnit.load = function() {
- runLoggingCallbacks( "begin", QUnit, {} );
-
- // Initialize the config, saving the execution queue
- var banner, filter, i, j, label, len, main, ol, toolbar, val, selection,
- urlConfigContainer, moduleFilter, userAgent,
- numModules = 0,
- moduleNames = [],
- moduleFilterHtml = "",
- urlConfigHtml = "",
- oldconfig = extend( {}, config );
-
- QUnit.init();
- extend(config, oldconfig);
-
- config.blocking = false;
-
- len = config.urlConfig.length;
-
- for ( i = 0; i < len; i++ ) {
- val = config.urlConfig[i];
- if ( typeof val === "string" ) {
- val = {
- id: val,
- label: val
- };
- }
- config[ val.id ] = QUnit.urlParams[ val.id ];
- if ( !val.value || typeof val.value === "string" ) {
- urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
- "' name='" + escapeText( val.id ) +
- "' type='checkbox'" +
- ( val.value ? " value='" + escapeText( val.value ) + "'" : "" ) +
- ( config[ val.id ] ? " checked='checked'" : "" ) +
- " title='" + escapeText( val.tooltip ) +
- "'><label for='qunit-urlconfig-" + escapeText( val.id ) +
- "' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
- } else {
- urlConfigHtml += "<label for='qunit-urlconfig-" + escapeText( val.id ) +
- "' title='" + escapeText( val.tooltip ) +
- "'>" + val.label +
- ": </label><select id='qunit-urlconfig-" + escapeText( val.id ) +
- "' name='" + escapeText( val.id ) +
- "' title='" + escapeText( val.tooltip ) +
- "'><option></option>";
- selection = false;
- if ( QUnit.is( "array", val.value ) ) {
- for ( j = 0; j < val.value.length; j++ ) {
- urlConfigHtml += "<option value='" + escapeText( val.value[j] ) + "'" +
- ( config[ val.id ] === val.value[j] ?
- (selection = true) && " selected='selected'" :
- "" ) +
- ">" + escapeText( val.value[j] ) + "</option>";
- }
- } else {
- for ( j in val.value ) {
- if ( hasOwn.call( val.value, j ) ) {
- urlConfigHtml += "<option value='" + escapeText( j ) + "'" +
- ( config[ val.id ] === j ?
- (selection = true) && " selected='selected'" :
- "" ) +
- ">" + escapeText( val.value[j] ) + "</option>";
- }
- }
- }
- if ( config[ val.id ] && !selection ) {
- urlConfigHtml += "<option value='" + escapeText( config[ val.id ] ) +
- "' selected='selected' disabled='disabled'>" +
- escapeText( config[ val.id ] ) +
- "</option>";
- }
- urlConfigHtml += "</select>";
- }
- }
- for ( i in config.modules ) {
- if ( config.modules.hasOwnProperty( i ) ) {
- moduleNames.push(i);
- }
- }
- numModules = moduleNames.length;
- moduleNames.sort( function( a, b ) {
- return a.localeCompare( b );
- });
- moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
- ( config.module === undefined ? "selected='selected'" : "" ) +
- ">< All Modules ></option>";
-
-
- for ( i = 0; i < numModules; i++) {
- moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " +
- ( config.module === moduleNames[i] ? "selected='selected'" : "" ) +
- ">" + escapeText(moduleNames[i]) + "</option>";
- }
- moduleFilterHtml += "</select>";
-
- // `userAgent` initialized at top of scope
- userAgent = id( "qunit-userAgent" );
- if ( userAgent ) {
- userAgent.innerHTML = navigator.userAgent;
- }
-
- // `banner` initialized at top of scope
- banner = id( "qunit-header" );
- if ( banner ) {
- banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
- }
-
- // `toolbar` initialized at top of scope
- toolbar = id( "qunit-testrunner-toolbar" );
- if ( toolbar ) {
- // `filter` initialized at top of scope
- filter = document.createElement( "input" );
- filter.type = "checkbox";
- filter.id = "qunit-filter-pass";
-
- addEvent( filter, "click", function() {
- var tmp,
- ol = id( "qunit-tests" );
-
- if ( filter.checked ) {
- ol.className = ol.className + " hidepass";
- } else {
- tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
- ol.className = tmp.replace( / hidepass /, " " );
- }
- if ( defined.sessionStorage ) {
- if (filter.checked) {
- sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
- } else {
- sessionStorage.removeItem( "qunit-filter-passed-tests" );
- }
- }
- });
-
- if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
- filter.checked = true;
- // `ol` initialized at top of scope
- ol = id( "qunit-tests" );
- ol.className = ol.className + " hidepass";
- }
- toolbar.appendChild( filter );
-
- // `label` initialized at top of scope
- label = document.createElement( "label" );
- label.setAttribute( "for", "qunit-filter-pass" );
- label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
- label.innerHTML = "Hide passed tests";
- toolbar.appendChild( label );
-
- urlConfigContainer = document.createElement("span");
- urlConfigContainer.innerHTML = urlConfigHtml;
- // For oldIE support:
- // * Add handlers to the individual elements instead of the container
- // * Use "click" instead of "change" for checkboxes
- // * Fallback from event.target to event.srcElement
- addEvents( urlConfigContainer.getElementsByTagName("input"), "click", function( event ) {
- var params = {},
- target = event.target || event.srcElement;
- params[ target.name ] = target.checked ?
- target.defaultValue || true :
- undefined;
- window.location = QUnit.url( params );
- });
- addEvents( urlConfigContainer.getElementsByTagName("select"), "change", function( event ) {
- var params = {},
- target = event.target || event.srcElement;
- params[ target.name ] = target.options[ target.selectedIndex ].value || undefined;
- window.location = QUnit.url( params );
- });
- toolbar.appendChild( urlConfigContainer );
-
- if (numModules > 1) {
- moduleFilter = document.createElement( "span" );
- moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
- moduleFilter.innerHTML = moduleFilterHtml;
- addEvent( moduleFilter.lastChild, "change", function() {
- var selectBox = moduleFilter.getElementsByTagName("select")[0],
- selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
- window.location = QUnit.url({
- module: ( selectedModule === "" ) ? undefined : selectedModule,
- // Remove any existing filters
- filter: undefined,
- testNumber: undefined
- });
- });
- toolbar.appendChild(moduleFilter);
- }
- }
-
- // `main` initialized at top of scope
- main = id( "qunit-fixture" );
- if ( main ) {
- config.fixture = main.innerHTML;
- }
-
- if ( config.autostart ) {
- QUnit.start();
- }
-};
-
-if ( defined.document ) {
- addEvent( window, "load", QUnit.load );
-}
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
- var ret = false;
- if ( onErrorFnPrev ) {
- ret = onErrorFnPrev( error, filePath, linerNr );
- }
-
- // Treat return value as window.onerror itself does,
- // Only do our handling if not suppressed.
- if ( ret !== true ) {
- if ( QUnit.config.current ) {
- if ( QUnit.config.current.ignoreGlobalErrors ) {
- return true;
- }
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- } else {
- QUnit.test( "global failure", extend( function() {
- QUnit.pushFailure( error, filePath + ":" + linerNr );
- }, { validTest: validTest } ) );
- }
- return false;
- }
-
- return ret;
-};
-
-function done() {
- config.autorun = true;
-
- // Log the last module results
- if ( config.previousModule ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.previousModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
- delete config.previousModule;
-
- var i, key,
- banner = id( "qunit-banner" ),
- tests = id( "qunit-tests" ),
- runtime = +new Date() - config.started,
- passed = config.stats.all - config.stats.bad,
- html = [
- "Tests completed in ",
- runtime,
- " milliseconds.<br/>",
- "<span class='passed'>",
- passed,
- "</span> assertions of <span class='total'>",
- config.stats.all,
- "</span> passed, <span class='failed'>",
- config.stats.bad,
- "</span> failed."
- ].join( "" );
-
- if ( banner ) {
- banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
- }
-
- if ( tests ) {
- id( "qunit-testresult" ).innerHTML = html;
- }
-
- if ( config.altertitle && defined.document && document.title ) {
- // show ✖ for good, ✔ for bad suite result in title
- // use escape sequences in case file gets loaded with non-utf-8-charset
- document.title = [
- ( config.stats.bad ? "\u2716" : "\u2714" ),
- document.title.replace( /^[\u2714\u2716] /i, "" )
- ].join( " " );
- }
-
- // clear own sessionStorage items if all tests passed
- if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
- // `key` & `i` initialized at top of scope
- for ( i = 0; i < sessionStorage.length; i++ ) {
- key = sessionStorage.key( i++ );
- if ( key.indexOf( "qunit-test-" ) === 0 ) {
- sessionStorage.removeItem( key );
- }
- }
- }
-
- // scroll back to top to show results
- if ( config.scrolltop && window.scrollTo ) {
- window.scrollTo(0, 0);
- }
-
- runLoggingCallbacks( "done", QUnit, {
- failed: config.stats.bad,
- passed: passed,
- total: config.stats.all,
- runtime: runtime
- });
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
- var include,
- filter = config.filter && config.filter.toLowerCase(),
- module = config.module && config.module.toLowerCase(),
- fullName = ( test.module + ": " + test.testName ).toLowerCase();
-
- // Internally-generated tests are always valid
- if ( test.callback && test.callback.validTest === validTest ) {
- delete test.callback.validTest;
- return true;
- }
-
- if ( config.testNumber.length > 0 ) {
- if ( inArray( test.testNumber, config.testNumber ) < 0 ) {
- return false;
- }
- }
-
- if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
- return false;
- }
-
- if ( !filter ) {
- return true;
- }
-
- include = filter.charAt( 0 ) !== "!";
- if ( !include ) {
- filter = filter.slice( 1 );
- }
-
- // If the filter matches, we need to honour include
- if ( fullName.indexOf( filter ) !== -1 ) {
- return include;
- }
-
- // Otherwise, do the opposite
- return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
- offset = offset === undefined ? 3 : offset;
-
- var stack, include, i;
-
- if ( e.stacktrace ) {
- // Opera
- return e.stacktrace.split( "\n" )[ offset + 3 ];
- } else if ( e.stack ) {
- // Firefox, Chrome
- stack = e.stack.split( "\n" );
- if (/^error$/i.test( stack[0] ) ) {
- stack.shift();
- }
- if ( fileName ) {
- include = [];
- for ( i = offset; i < stack.length; i++ ) {
- if ( stack[ i ].indexOf( fileName ) !== -1 ) {
- break;
- }
- include.push( stack[ i ] );
- }
- if ( include.length ) {
- return include.join( "\n" );
- }
- }
- return stack[ offset ];
- } else if ( e.sourceURL ) {
- // Safari, PhantomJS
- // hopefully one day Safari provides actual stacktraces
- // exclude useless self-reference for generated Error objects
- if ( /qunit.js$/.test( e.sourceURL ) ) {
- return;
- }
- // for actual exceptions, this is useful
- return e.sourceURL + ":" + e.line;
- }
-}
-function sourceFromStacktrace( offset ) {
- try {
- throw new Error();
- } catch ( e ) {
- return extractStacktrace( e, offset );
- }
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
- if ( !s ) {
- return "";
- }
- s = s + "";
- // Both single quotes and double quotes (for attributes)
- return s.replace( /['"<>&]/g, function( s ) {
- switch( s ) {
- case "'":
- return "&#039;";
- case "\"":
- return "&quot;";
- case "<":
- return "&lt;";
- case ">":
- return "&gt;";
- case "&":
- return "&amp;";
- }
- });
-}
-
-function synchronize( callback, last ) {
- config.queue.push( callback );
-
- if ( config.autorun && !config.blocking ) {
- process( last );
- }
-}
-
-function process( last ) {
- function next() {
- process( last );
- }
- var start = new Date().getTime();
- config.depth = config.depth ? config.depth + 1 : 1;
-
- while ( config.queue.length && !config.blocking ) {
- if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
- config.queue.shift()();
- } else {
- setTimeout( next, 13 );
- break;
- }
- }
- config.depth--;
- if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
- done();
- }
-}
-
-function saveGlobal() {
- config.pollution = [];
-
- if ( config.noglobals ) {
- for ( var key in window ) {
- if ( hasOwn.call( window, key ) ) {
- // in Opera sometimes DOM element ids show up here, ignore them
- if ( /^qunit-test-output/.test( key ) ) {
- continue;
- }
- config.pollution.push( key );
- }
- }
- }
-}
-
-function checkPollution() {
- var newGlobals,
- deletedGlobals,
- old = config.pollution;
-
- saveGlobal();
-
- newGlobals = diff( config.pollution, old );
- if ( newGlobals.length > 0 ) {
- QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
- }
-
- deletedGlobals = diff( old, config.pollution );
- if ( deletedGlobals.length > 0 ) {
- QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
- }
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
- var i, j,
- result = a.slice();
-
- for ( i = 0; i < result.length; i++ ) {
- for ( j = 0; j < b.length; j++ ) {
- if ( result[i] === b[j] ) {
- result.splice( i, 1 );
- i--;
- break;
- }
- }
- }
- return result;
-}
-
-function extend( a, b ) {
- for ( var prop in b ) {
- if ( hasOwn.call( b, prop ) ) {
- // Avoid "Member not found" error in IE8 caused by messing with window.constructor
- if ( !( prop === "constructor" && a === window ) ) {
- if ( b[ prop ] === undefined ) {
- delete a[ prop ];
- } else {
- a[ prop ] = b[ prop ];
- }
- }
- }
- }
-
- return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
- if ( elem.addEventListener ) {
-
- // Standards-based browsers
- elem.addEventListener( type, fn, false );
- } else if ( elem.attachEvent ) {
-
- // support: IE <9
- elem.attachEvent( "on" + type, fn );
- } else {
-
- // Caller must ensure support for event listeners is present
- throw new Error( "addEvent() was called in a context without event listener support" );
- }
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
- var i = elems.length;
- while ( i-- ) {
- addEvent( elems[i], type, fn );
- }
-}
-
-function hasClass( elem, name ) {
- return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
- if ( !hasClass( elem, name ) ) {
- elem.className += (elem.className ? " " : "") + name;
- }
-}
-
-function removeClass( elem, name ) {
- var set = " " + elem.className + " ";
- // Class name may appear multiple times
- while ( set.indexOf(" " + name + " ") > -1 ) {
- set = set.replace(" " + name + " " , " ");
- }
- // If possible, trim it for prettiness, but not necessarily
- elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
- return defined.document && document.getElementById && document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
- return function( callback ) {
- config[key].push( callback );
- };
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
- var i, callbacks;
- if ( QUnit.hasOwnProperty( key ) ) {
- QUnit[ key ].call(scope, args );
- } else {
- callbacks = config[ key ];
- for ( i = 0; i < callbacks.length; i++ ) {
- callbacks[ i ].call( scope, args );
- }
- }
-}
-
-// from jquery.js
-function inArray( elem, array ) {
- if ( array.indexOf ) {
- return array.indexOf( elem );
- }
-
- for ( var i = 0, length = array.length; i < length; i++ ) {
- if ( array[ i ] === elem ) {
- return i;
- }
- }
-
- return -1;
-}
-
-function Test( settings ) {
- extend( this, settings );
- this.assertions = [];
- this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
- init: function() {
- var a, b, li,
- tests = id( "qunit-tests" );
-
- if ( tests ) {
- b = document.createElement( "strong" );
- b.innerHTML = this.nameHtml;
-
- // `a` initialized at top of scope
- a = document.createElement( "a" );
- a.innerHTML = "Rerun";
- a.href = QUnit.url({ testNumber: this.testNumber });
-
- li = document.createElement( "li" );
- li.appendChild( b );
- li.appendChild( a );
- li.className = "running";
- li.id = this.id = "qunit-test-output" + testId++;
-
- tests.appendChild( li );
- }
- },
- setup: function() {
- if (
- // Emit moduleStart when we're switching from one module to another
- this.module !== config.previousModule ||
- // They could be equal (both undefined) but if the previousModule property doesn't
- // yet exist it means this is the first test in a suite that isn't wrapped in a
- // module, in which case we'll just emit a moduleStart event for 'undefined'.
- // Without this, reporters can get testStart before moduleStart which is a problem.
- !hasOwn.call( config, "previousModule" )
- ) {
- if ( hasOwn.call( config, "previousModule" ) ) {
- runLoggingCallbacks( "moduleDone", QUnit, {
- name: config.previousModule,
- failed: config.moduleStats.bad,
- passed: config.moduleStats.all - config.moduleStats.bad,
- total: config.moduleStats.all
- });
- }
- config.previousModule = this.module;
- config.moduleStats = { all: 0, bad: 0 };
- runLoggingCallbacks( "moduleStart", QUnit, {
- name: this.module
- });
- }
-
- config.current = this;
-
- this.testEnvironment = extend({
- setup: function() {},
- teardown: function() {}
- }, this.moduleTestEnvironment );
-
- this.started = +new Date();
- runLoggingCallbacks( "testStart", QUnit, {
- name: this.testName,
- module: this.module
- });
-
- /*jshint camelcase:false */
-
-
- /**
- * Expose the current test environment.
- *
- * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
- */
- QUnit.current_testEnvironment = this.testEnvironment;
-
- /*jshint camelcase:true */
-
- if ( !config.pollution ) {
- saveGlobal();
- }
- if ( config.notrycatch ) {
- this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
- return;
- }
- try {
- this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
- } catch( e ) {
- QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
- }
- },
- run: function() {
- config.current = this;
-
- var running = id( "qunit-testresult" );
-
- if ( running ) {
- running.innerHTML = "Running: <br/>" + this.nameHtml;
- }
-
- if ( this.async ) {
- QUnit.stop();
- }
-
- this.callbackStarted = +new Date();
-
- if ( config.notrycatch ) {
- this.callback.call( this.testEnvironment, QUnit.assert );
- this.callbackRuntime = +new Date() - this.callbackStarted;
- return;
- }
-
- try {
- this.callback.call( this.testEnvironment, QUnit.assert );
- this.callbackRuntime = +new Date() - this.callbackStarted;
- } catch( e ) {
- this.callbackRuntime = +new Date() - this.callbackStarted;
-
- QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
- // else next test will carry the responsibility
- saveGlobal();
-
- // Restart the tests if they're blocking
- if ( config.blocking ) {
- QUnit.start();
- }
- }
- },
- teardown: function() {
- config.current = this;
- if ( config.notrycatch ) {
- if ( typeof this.callbackRuntime === "undefined" ) {
- this.callbackRuntime = +new Date() - this.callbackStarted;
- }
- this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
- return;
- } else {
- try {
- this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
- } catch( e ) {
- QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
- }
- }
- checkPollution();
- },
- finish: function() {
- config.current = this;
- if ( config.requireExpects && this.expected === null ) {
- QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
- } else if ( this.expected !== null && this.expected !== this.assertions.length ) {
- QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
- } else if ( this.expected === null && !this.assertions.length ) {
- QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
- }
-
- var i, assertion, a, b, time, li, ol,
- test = this,
- good = 0,
- bad = 0,
- tests = id( "qunit-tests" );
-
- this.runtime = +new Date() - this.started;
- config.stats.all += this.assertions.length;
- config.moduleStats.all += this.assertions.length;
-
- if ( tests ) {
- ol = document.createElement( "ol" );
- ol.className = "qunit-assert-list";
-
- for ( i = 0; i < this.assertions.length; i++ ) {
- assertion = this.assertions[i];
-
- li = document.createElement( "li" );
- li.className = assertion.result ? "pass" : "fail";
- li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
- ol.appendChild( li );
-
- if ( assertion.result ) {
- good++;
- } else {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
-
- // store result when possible
- if ( QUnit.config.reorder && defined.sessionStorage ) {
- if ( bad ) {
- sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
- } else {
- sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
- }
- }
-
- if ( bad === 0 ) {
- addClass( ol, "qunit-collapsed" );
- }
-
- // `b` initialized at top of scope
- b = document.createElement( "strong" );
- b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
-
- addEvent(b, "click", function() {
- var next = b.parentNode.lastChild,
- collapsed = hasClass( next, "qunit-collapsed" );
- ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
- });
-
- addEvent(b, "dblclick", function( e ) {
- var target = e && e.target ? e.target : window.event.srcElement;
- if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
- target = target.parentNode;
- }
- if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
- window.location = QUnit.url({ testNumber: test.testNumber });
- }
- });
-
- // `time` initialized at top of scope
- time = document.createElement( "span" );
- time.className = "runtime";
- time.innerHTML = this.runtime + " ms";
-
- // `li` initialized at top of scope
- li = id( this.id );
- li.className = bad ? "fail" : "pass";
- li.removeChild( li.firstChild );
- a = li.firstChild;
- li.appendChild( b );
- li.appendChild( a );
- li.appendChild( time );
- li.appendChild( ol );
-
- } else {
- for ( i = 0; i < this.assertions.length; i++ ) {
- if ( !this.assertions[i].result ) {
- bad++;
- config.stats.bad++;
- config.moduleStats.bad++;
- }
- }
- }
-
- runLoggingCallbacks( "testDone", QUnit, {
- name: this.testName,
- module: this.module,
- failed: bad,
- passed: this.assertions.length - bad,
- total: this.assertions.length,
- runtime: this.runtime,
- // DEPRECATED: this property will be removed in 2.0.0, use runtime instead
- duration: this.runtime
- });
-
- QUnit.reset();
-
- config.current = undefined;
- },
-
- queue: function() {
- var bad,
- test = this;
-
- synchronize(function() {
- test.init();
- });
- function run() {
- // each of these can by async
- synchronize(function() {
- test.setup();
- });
- synchronize(function() {
- test.run();
- });
- synchronize(function() {
- test.teardown();
- });
- synchronize(function() {
- test.finish();
- });
- }
-
- // `bad` initialized at top of scope
- // defer when previous test run passed, if storage is available
- bad = QUnit.config.reorder && defined.sessionStorage &&
- +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
- if ( bad ) {
- run();
- } else {
- synchronize( run, true );
- }
- }
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-assert = QUnit.assert = {
- /**
- * Asserts rough true-ish result.
- * @name ok
- * @function
- * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
- */
- ok: function( result, msg ) {
- if ( !config.current ) {
- throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
- }
- result = !!result;
- msg = msg || ( result ? "okay" : "failed" );
-
- var source,
- details = {
- module: config.current.module,
- name: config.current.testName,
- result: result,
- message: msg
- };
-
- msg = "<span class='test-message'>" + escapeText( msg ) + "</span>";
-
- if ( !result ) {
- source = sourceFromStacktrace( 2 );
- if ( source ) {
- details.source = source;
- msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" +
- escapeText( source ) +
- "</pre></td></tr></table>";
- }
- }
- runLoggingCallbacks( "log", QUnit, details );
- config.current.assertions.push({
- result: result,
- message: msg
- });
- },
-
- /**
- * Assert that the first two arguments are equal, with an optional message.
- * Prints out both actual and expected values.
- * @name equal
- * @function
- * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
- */
- equal: function( actual, expected, message ) {
- /*jshint eqeqeq:false */
- QUnit.push( expected == actual, actual, expected, message );
- },
-
- /**
- * @name notEqual
- * @function
- */
- notEqual: function( actual, expected, message ) {
- /*jshint eqeqeq:false */
- QUnit.push( expected != actual, actual, expected, message );
- },
-
- /**
- * @name propEqual
- * @function
- */
- propEqual: function( actual, expected, message ) {
- actual = objectValues(actual);
- expected = objectValues(expected);
- QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name notPropEqual
- * @function
- */
- notPropEqual: function( actual, expected, message ) {
- actual = objectValues(actual);
- expected = objectValues(expected);
- QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name deepEqual
- * @function
- */
- deepEqual: function( actual, expected, message ) {
- QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name notDeepEqual
- * @function
- */
- notDeepEqual: function( actual, expected, message ) {
- QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
- },
-
- /**
- * @name strictEqual
- * @function
- */
- strictEqual: function( actual, expected, message ) {
- QUnit.push( expected === actual, actual, expected, message );
- },
-
- /**
- * @name notStrictEqual
- * @function
- */
- notStrictEqual: function( actual, expected, message ) {
- QUnit.push( expected !== actual, actual, expected, message );
- },
-
- "throws": function( block, expected, message ) {
- var actual,
- expectedOutput = expected,
- ok = false;
-
- // 'expected' is optional
- if ( !message && typeof expected === "string" ) {
- message = expected;
- expected = null;
- }
-
- config.current.ignoreGlobalErrors = true;
- try {
- block.call( config.current.testEnvironment );
- } catch (e) {
- actual = e;
- }
- config.current.ignoreGlobalErrors = false;
-
- if ( actual ) {
-
- // we don't want to validate thrown error
- if ( !expected ) {
- ok = true;
- expectedOutput = null;
-
- // expected is an Error object
- } else if ( expected instanceof Error ) {
- ok = actual instanceof Error &&
- actual.name === expected.name &&
- actual.message === expected.message;
-
- // expected is a regexp
- } else if ( QUnit.objectType( expected ) === "regexp" ) {
- ok = expected.test( errorString( actual ) );
-
- // expected is a string
- } else if ( QUnit.objectType( expected ) === "string" ) {
- ok = expected === errorString( actual );
-
- // expected is a constructor
- } else if ( actual instanceof expected ) {
- ok = true;
-
- // expected is a validation function which returns true is validation passed
- } else if ( expected.call( {}, actual ) === true ) {
- expectedOutput = null;
- ok = true;
- }
-
- QUnit.push( ok, actual, expectedOutput, message );
- } else {
- QUnit.pushFailure( message, null, "No exception was thrown." );
- }
- }
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit.constructor.prototype, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.constructor.prototype.raises = function() {
- QUnit.push( false, false, false, "QUnit.raises has been deprecated since 2012 (fad3c1ea), use QUnit.throws instead" );
-};
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.constructor.prototype.equals = function() {
- QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.constructor.prototype.same = function() {
- QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé <prathe@gmail.com>
-QUnit.equiv = (function() {
-
- // Call the o related callback with the given arguments.
- function bindCallbacks( o, callbacks, args ) {
- var prop = QUnit.objectType( o );
- if ( prop ) {
- if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
- return callbacks[ prop ].apply( callbacks, args );
- } else {
- return callbacks[ prop ]; // or undefined
- }
- }
- }
-
- // the real equiv function
- var innerEquiv,
- // stack to decide between skip/abort functions
- callers = [],
- // stack to avoiding loops from circular referencing
- parents = [],
- parentsB = [],
-
- getProto = Object.getPrototypeOf || function ( obj ) {
- /*jshint camelcase:false */
- return obj.__proto__;
- },
- callbacks = (function () {
-
- // for string, boolean, number and null
- function useStrictEquality( b, a ) {
- /*jshint eqeqeq:false */
- if ( b instanceof a.constructor || a instanceof b.constructor ) {
- // to catch short annotation VS 'new' annotation of a
- // declaration
- // e.g. var i = 1;
- // var j = new Number(1);
- return a == b;
- } else {
- return a === b;
- }
- }
-
- return {
- "string": useStrictEquality,
- "boolean": useStrictEquality,
- "number": useStrictEquality,
- "null": useStrictEquality,
- "undefined": useStrictEquality,
-
- "nan": function( b ) {
- return isNaN( b );
- },
-
- "date": function( b, a ) {
- return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
- },
-
- "regexp": function( b, a ) {
- return QUnit.objectType( b ) === "regexp" &&
- // the regex itself
- a.source === b.source &&
- // and its modifiers
- a.global === b.global &&
- // (gmi) ...
- a.ignoreCase === b.ignoreCase &&
- a.multiline === b.multiline &&
- a.sticky === b.sticky;
- },
-
- // - skip when the property is a method of an instance (OOP)
- // - abort otherwise,
- // initial === would have catch identical references anyway
- "function": function() {
- var caller = callers[callers.length - 1];
- return caller !== Object && typeof caller !== "undefined";
- },
-
- "array": function( b, a ) {
- var i, j, len, loop, aCircular, bCircular;
-
- // b could be an object literal here
- if ( QUnit.objectType( b ) !== "array" ) {
- return false;
- }
-
- len = a.length;
- if ( len !== b.length ) {
- // safe and faster
- return false;
- }
-
- // track reference to avoid circular references
- parents.push( a );
- parentsB.push( b );
- for ( i = 0; i < len; i++ ) {
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- aCircular = parents[j] === a[i];
- bCircular = parentsB[j] === b[i];
- if ( aCircular || bCircular ) {
- if ( a[i] === b[i] || aCircular && bCircular ) {
- loop = true;
- } else {
- parents.pop();
- parentsB.pop();
- return false;
- }
- }
- }
- if ( !loop && !innerEquiv(a[i], b[i]) ) {
- parents.pop();
- parentsB.pop();
- return false;
- }
- }
- parents.pop();
- parentsB.pop();
- return true;
- },
-
- "object": function( b, a ) {
- /*jshint forin:false */
- var i, j, loop, aCircular, bCircular,
- // Default to true
- eq = true,
- aProperties = [],
- bProperties = [];
-
- // comparing constructors is more strict than using
- // instanceof
- if ( a.constructor !== b.constructor ) {
- // Allow objects with no prototype to be equivalent to
- // objects with Object as their constructor.
- if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
- ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
- return false;
- }
- }
-
- // stack constructor before traversing properties
- callers.push( a.constructor );
-
- // track reference to avoid circular references
- parents.push( a );
- parentsB.push( b );
-
- // be strict: don't ensure hasOwnProperty and go deep
- for ( i in a ) {
- loop = false;
- for ( j = 0; j < parents.length; j++ ) {
- aCircular = parents[j] === a[i];
- bCircular = parentsB[j] === b[i];
- if ( aCircular || bCircular ) {
- if ( a[i] === b[i] || aCircular && bCircular ) {
- loop = true;
- } else {
- eq = false;
- break;
- }
- }
- }
- aProperties.push(i);
- if ( !loop && !innerEquiv(a[i], b[i]) ) {
- eq = false;
- break;
- }
- }
-
- parents.pop();
- parentsB.pop();
- callers.pop(); // unstack, we are done
-
- for ( i in b ) {
- bProperties.push( i ); // collect b's properties
- }
-
- // Ensures identical properties name
- return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
- }
- };
- }());
-
- innerEquiv = function() { // can take multiple arguments
- var args = [].slice.apply( arguments );
- if ( args.length < 2 ) {
- return true; // end transition
- }
-
- return (function( a, b ) {
- if ( a === b ) {
- return true; // catch the most you can
- } else if ( a === null || b === null || typeof a === "undefined" ||
- typeof b === "undefined" ||
- QUnit.objectType(a) !== QUnit.objectType(b) ) {
- return false; // don't lose time with error prone cases
- } else {
- return bindCallbacks(a, callbacks, [ b, a ]);
- }
-
- // apply transition with (1..n) arguments
- }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
- };
-
- return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
- function quote( str ) {
- return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
- }
- function literal( o ) {
- return o + "";
- }
- function join( pre, arr, post ) {
- var s = jsDump.separator(),
- base = jsDump.indent(),
- inner = jsDump.indent(1);
- if ( arr.join ) {
- arr = arr.join( "," + s + inner );
- }
- if ( !arr ) {
- return pre + post;
- }
- return [ pre, inner + arr, base + post ].join(s);
- }
- function array( arr, stack ) {
- var i = arr.length, ret = new Array(i);
- this.up();
- while ( i-- ) {
- ret[i] = this.parse( arr[i] , undefined , stack);
- }
- this.down();
- return join( "[", ret, "]" );
- }
-
- var reName = /^function (\w+)/,
- jsDump = {
- // type is used mostly internally, you can fix a (custom)type in advance
- parse: function( obj, type, stack ) {
- stack = stack || [ ];
- var inStack, res,
- parser = this.parsers[ type || this.typeOf(obj) ];
-
- type = typeof parser;
- inStack = inArray( obj, stack );
-
- if ( inStack !== -1 ) {
- return "recursion(" + (inStack - stack.length) + ")";
- }
- if ( type === "function" ) {
- stack.push( obj );
- res = parser.call( this, obj, stack );
- stack.pop();
- return res;
- }
- return ( type === "string" ) ? parser : this.parsers.error;
- },
- typeOf: function( obj ) {
- var type;
- if ( obj === null ) {
- type = "null";
- } else if ( typeof obj === "undefined" ) {
- type = "undefined";
- } else if ( QUnit.is( "regexp", obj) ) {
- type = "regexp";
- } else if ( QUnit.is( "date", obj) ) {
- type = "date";
- } else if ( QUnit.is( "function", obj) ) {
- type = "function";
- } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
- type = "window";
- } else if ( obj.nodeType === 9 ) {
- type = "document";
- } else if ( obj.nodeType ) {
- type = "node";
- } else if (
- // native arrays
- toString.call( obj ) === "[object Array]" ||
- // NodeList objects
- ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
- ) {
- type = "array";
- } else if ( obj.constructor === Error.prototype.constructor ) {
- type = "error";
- } else {
- type = typeof obj;
- }
- return type;
- },
- separator: function() {
- return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
- },
- // extra can be a number, shortcut for increasing-calling-decreasing
- indent: function( extra ) {
- if ( !this.multiline ) {
- return "";
- }
- var chr = this.indentChar;
- if ( this.HTML ) {
- chr = chr.replace( /\t/g, " " ).replace( / /g, "&nbsp;" );
- }
- return new Array( this.depth + ( extra || 0 ) ).join(chr);
- },
- up: function( a ) {
- this.depth += a || 1;
- },
- down: function( a ) {
- this.depth -= a || 1;
- },
- setParser: function( name, parser ) {
- this.parsers[name] = parser;
- },
- // The next 3 are exposed so you can use them
- quote: quote,
- literal: literal,
- join: join,
- //
- depth: 1,
- // This is the list of parsers, to modify them, use jsDump.setParser
- parsers: {
- window: "[Window]",
- document: "[Document]",
- error: function(error) {
- return "Error(\"" + error.message + "\")";
- },
- unknown: "[Unknown]",
- "null": "null",
- "undefined": "undefined",
- "function": function( fn ) {
- var ret = "function",
- // functions never have name in IE
- name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
- if ( name ) {
- ret += " " + name;
- }
- ret += "( ";
-
- ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
- return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
- },
- array: array,
- nodelist: array,
- "arguments": array,
- object: function( map, stack ) {
- /*jshint forin:false */
- var ret = [ ], keys, key, val, i;
- QUnit.jsDump.up();
- keys = [];
- for ( key in map ) {
- keys.push( key );
- }
- keys.sort();
- for ( i = 0; i < keys.length; i++ ) {
- key = keys[ i ];
- val = map[ key ];
- ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
- }
- QUnit.jsDump.down();
- return join( "{", ret, "}" );
- },
- node: function( node ) {
- var len, i, val,
- open = QUnit.jsDump.HTML ? "&lt;" : "<",
- close = QUnit.jsDump.HTML ? "&gt;" : ">",
- tag = node.nodeName.toLowerCase(),
- ret = open + tag,
- attrs = node.attributes;
-
- if ( attrs ) {
- for ( i = 0, len = attrs.length; i < len; i++ ) {
- val = attrs[i].nodeValue;
- // IE6 includes all attributes in .attributes, even ones not explicitly set.
- // Those have values like undefined, null, 0, false, "" or "inherit".
- if ( val && val !== "inherit" ) {
- ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
- }
- }
- }
- ret += close;
-
- // Show content of TextNode or CDATASection
- if ( node.nodeType === 3 || node.nodeType === 4 ) {
- ret += node.nodeValue;
- }
-
- return ret + open + "/" + tag + close;
- },
- // function calls it internally, it's the arguments part of the function
- functionArgs: function( fn ) {
- var args,
- l = fn.length;
-
- if ( !l ) {
- return "";
- }
-
- args = new Array(l);
- while ( l-- ) {
- // 97 is 'a'
- args[l] = String.fromCharCode(97+l);
- }
- return " " + args.join( ", " ) + " ";
- },
- // object calls it internally, the key part of an item in a map
- key: quote,
- // function calls it internally, it's the content of the function
- functionCode: "[code]",
- // node calls it internally, it's an html attribute value
- attribute: quote,
- string: quote,
- date: quote,
- regexp: literal,
- number: literal,
- "boolean": literal
- },
- // if true, entities are escaped ( <, >, \t, space and \n )
- HTML: false,
- // indentation unit
- indentChar: " ",
- // if true, items in a collection, are separated by a \n, else just a space.
- multiline: true
- };
-
- return jsDump;
-}());
-
-/*
- * Javascript Diff Algorithm
- * By John Resig (http://ejohn.org/)
- * Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- * http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
- */
-QUnit.diff = (function() {
- /*jshint eqeqeq:false, eqnull:true */
- function diff( o, n ) {
- var i,
- ns = {},
- os = {};
-
- for ( i = 0; i < n.length; i++ ) {
- if ( !hasOwn.call( ns, n[i] ) ) {
- ns[ n[i] ] = {
- rows: [],
- o: null
- };
- }
- ns[ n[i] ].rows.push( i );
- }
-
- for ( i = 0; i < o.length; i++ ) {
- if ( !hasOwn.call( os, o[i] ) ) {
- os[ o[i] ] = {
- rows: [],
- n: null
- };
- }
- os[ o[i] ].rows.push( i );
- }
-
- for ( i in ns ) {
- if ( hasOwn.call( ns, i ) ) {
- if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
- n[ ns[i].rows[0] ] = {
- text: n[ ns[i].rows[0] ],
- row: os[i].rows[0]
- };
- o[ os[i].rows[0] ] = {
- text: o[ os[i].rows[0] ],
- row: ns[i].rows[0]
- };
- }
- }
- }
-
- for ( i = 0; i < n.length - 1; i++ ) {
- if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
- n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
- n[ i + 1 ] = {
- text: n[ i + 1 ],
- row: n[i].row + 1
- };
- o[ n[i].row + 1 ] = {
- text: o[ n[i].row + 1 ],
- row: i + 1
- };
- }
- }
-
- for ( i = n.length - 1; i > 0; i-- ) {
- if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
- n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
- n[ i - 1 ] = {
- text: n[ i - 1 ],
- row: n[i].row - 1
- };
- o[ n[i].row - 1 ] = {
- text: o[ n[i].row - 1 ],
- row: i - 1
- };
- }
- }
-
- return {
- o: o,
- n: n
- };
- }
-
- return function( o, n ) {
- o = o.replace( /\s+$/, "" );
- n = n.replace( /\s+$/, "" );
-
- var i, pre,
- str = "",
- out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
- oSpace = o.match(/\s+/g),
- nSpace = n.match(/\s+/g);
-
- if ( oSpace == null ) {
- oSpace = [ " " ];
- }
- else {
- oSpace.push( " " );
- }
-
- if ( nSpace == null ) {
- nSpace = [ " " ];
- }
- else {
- nSpace.push( " " );
- }
-
- if ( out.n.length === 0 ) {
- for ( i = 0; i < out.o.length; i++ ) {
- str += "<del>" + out.o[i] + oSpace[i] + "</del>";
- }
- }
- else {
- if ( out.n[0].text == null ) {
- for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
- str += "<del>" + out.o[n] + oSpace[n] + "</del>";
- }
- }
-
- for ( i = 0; i < out.n.length; i++ ) {
- if (out.n[i].text == null) {
- str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
- }
- else {
- // `pre` initialized at top of scope
- pre = "";
-
- for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
- pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
- }
- str += " " + out.n[i].text + nSpace[i] + pre;
- }
- }
- }
-
- return str;
- };
-}());
-
-// For browser, export only select globals
-if ( typeof window !== "undefined" ) {
- extend( window, QUnit.constructor.prototype );
- window.QUnit = QUnit;
-}
-
-// For CommonJS environments, export everything
-if ( typeof module !== "undefined" && module.exports ) {
- module.exports = QUnit;
-}
-
-
-// Get a reference to the global object, like window in browsers
-}( (function() {
- return this;
-})() ));
diff --git a/resources/lib/moment/locale/af.js b/resources/lib/moment/locale/af.js
index 1b8c5207..2fb7adff 100644
--- a/resources/lib/moment/locale/af.js
+++ b/resources/lib/moment/locale/af.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('af', {
@@ -26,6 +26,7 @@
},
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -54,6 +55,7 @@
y : '\'n jaar',
yy : '%d jaar'
},
+ ordinalParse: /\d{1,2}(ste|de)/,
ordinal : function (number) {
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter
},
diff --git a/resources/lib/moment/locale/ar-ma.js b/resources/lib/moment/locale/ar-ma.js
index 5b2095a8..7add1722 100644
--- a/resources/lib/moment/locale/ar-ma.js
+++ b/resources/lib/moment/locale/ar-ma.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('ar-ma', {
@@ -20,6 +20,7 @@
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
diff --git a/resources/lib/moment/locale/ar-sa.js b/resources/lib/moment/locale/ar-sa.js
index f7867eac..ea7e2f6b 100644
--- a/resources/lib/moment/locale/ar-sa.js
+++ b/resources/lib/moment/locale/ar-sa.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -43,6 +43,7 @@
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -79,7 +80,7 @@
yy : '%d سنوات'
},
preparse: function (string) {
- return string.replace(/[۰-۹]/g, function (match) {
+ return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
return numberMap[match];
}).replace(/،/g, ',');
},
diff --git a/resources/lib/moment/locale/ar.js b/resources/lib/moment/locale/ar.js
index 1791a6b3..d6450087 100644
--- a/resources/lib/moment/locale/ar.js
+++ b/resources/lib/moment/locale/ar.js
@@ -10,7 +10,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -76,6 +76,7 @@
weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -112,7 +113,7 @@
yy : pluralize('y')
},
preparse: function (string) {
- return string.replace(/[۰-۹]/g, function (match) {
+ return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
return numberMap[match];
}).replace(/،/g, ',');
},
diff --git a/resources/lib/moment/locale/az.js b/resources/lib/moment/locale/az.js
index e82f6e11..d4d14342 100644
--- a/resources/lib/moment/locale/az.js
+++ b/resources/lib/moment/locale/az.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var suffixes = {
@@ -44,6 +44,7 @@
weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -83,6 +84,7 @@
return 'axşam';
}
},
+ ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
ordinal : function (number) {
if (number === 0) { // special case for zero
return number + '-ıncı';
diff --git a/resources/lib/moment/locale/be.js b/resources/lib/moment/locale/be.js
index fe3186a1..68a6f37c 100644
--- a/resources/lib/moment/locale/be.js
+++ b/resources/lib/moment/locale/be.js
@@ -10,7 +10,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function plural(word, num) {
@@ -71,6 +71,7 @@
weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY г.',
LLL : 'D MMMM YYYY г., LT',
@@ -127,6 +128,7 @@
}
},
+ ordinalParse: /\d{1,2}-(і|ы|га)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
diff --git a/resources/lib/moment/locale/bg.js b/resources/lib/moment/locale/bg.js
index 41b1e3af..540e17b5 100644
--- a/resources/lib/moment/locale/bg.js
+++ b/resources/lib/moment/locale/bg.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('bg', {
@@ -19,6 +19,7 @@
weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'D.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -59,6 +60,7 @@
y : 'година',
yy : '%d години'
},
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
ordinal : function (number) {
var lastDigit = number % 10,
last2Digits = number % 100;
diff --git a/resources/lib/moment/locale/bn.js b/resources/lib/moment/locale/bn.js
index 7e8ccfd5..e9549d99 100644
--- a/resources/lib/moment/locale/bn.js
+++ b/resources/lib/moment/locale/bn.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -44,6 +44,7 @@
weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'),
longDateFormat : {
LT : 'A h:mm সময়',
+ LTS : 'A h:mm:ss সময়',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, LT',
diff --git a/resources/lib/moment/locale/bo.js b/resources/lib/moment/locale/bo.js
index 0d44e47f..cece8d13 100644
--- a/resources/lib/moment/locale/bo.js
+++ b/resources/lib/moment/locale/bo.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -44,6 +44,7 @@
weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),
longDateFormat : {
LT : 'A h:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, LT',
diff --git a/resources/lib/moment/locale/br.js b/resources/lib/moment/locale/br.js
index a4f1491d..1f8dd614 100644
--- a/resources/lib/moment/locale/br.js
+++ b/resources/lib/moment/locale/br.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function relativeTimeWithMutation(number, withoutSuffix, key) {
@@ -67,6 +67,7 @@
weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
longDateFormat : {
LT : 'h[e]mm A',
+ LTS : 'h[e]mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D [a viz] MMMM YYYY',
LLL : 'D [a viz] MMMM YYYY LT',
@@ -95,6 +96,7 @@
y : 'ur bloaz',
yy : specialMutationForYears
},
+ ordinalParse: /\d{1,2}(añ|vet)/,
ordinal : function (number) {
var output = (number === 1) ? 'añ' : 'vet';
return number + output;
diff --git a/resources/lib/moment/locale/bs.js b/resources/lib/moment/locale/bs.js
index b9a58516..c59f46ba 100644
--- a/resources/lib/moment/locale/bs.js
+++ b/resources/lib/moment/locale/bs.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function translate(number, withoutSuffix, key) {
@@ -66,13 +66,14 @@
}
return moment.defineLocale('bs', {
- months : 'januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar'.split('_'),
- monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),
+ months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),
+ monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),
weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),
weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD. MM. YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
@@ -129,6 +130,7 @@
y : 'godinu',
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/ca.js b/resources/lib/moment/locale/ca.js
index fd41ff54..4f0d3fe0 100644
--- a/resources/lib/moment/locale/ca.js
+++ b/resources/lib/moment/locale/ca.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('ca', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -57,7 +58,17 @@
y : 'un any',
yy : '%d anys'
},
- ordinal : '%dº',
+ ordinalParse: /\d{1,2}(r|n|t|è|a)/,
+ ordinal : function (number, period) {
+ var output = (number === 1) ? 'r' :
+ (number === 2) ? 'n' :
+ (number === 3) ? 'r' :
+ (number === 4) ? 't' : 'è';
+ if (period === 'w' || period === 'W') {
+ output = 'a';
+ }
+ return number + output;
+ },
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4th is the first week of the year.
diff --git a/resources/lib/moment/locale/cs.js b/resources/lib/moment/locale/cs.js
index 87dec552..b61658dc 100644
--- a/resources/lib/moment/locale/cs.js
+++ b/resources/lib/moment/locale/cs.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),
@@ -87,7 +87,8 @@
weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),
longDateFormat : {
LT: 'H:mm',
- L : 'DD. MM. YYYY',
+ LTS : 'LT:ss',
+ L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
LLLL : 'dddd D. MMMM YYYY LT'
@@ -146,6 +147,7 @@
y : translate,
yy : translate
},
+ ordinalParse : /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/cv.js b/resources/lib/moment/locale/cv.js
index 138b6c15..ea8e314d 100644
--- a/resources/lib/moment/locale/cv.js
+++ b/resources/lib/moment/locale/cv.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('cv', {
@@ -19,6 +19,7 @@
weekdaysMin : 'вр_тн_ыт_юн_кç_эр_шм'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD-MM-YYYY',
LL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]',
LLL : 'YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT',
@@ -50,6 +51,7 @@
y : 'пĕр çул',
yy : '%d çул'
},
+ ordinalParse: /\d{1,2}-мĕш/,
ordinal : '%d-мĕш',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/cy.js b/resources/lib/moment/locale/cy.js
index 65fb356b..72b2f91d 100644
--- a/resources/lib/moment/locale/cy.js
+++ b/resources/lib/moment/locale/cy.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('cy', {
@@ -20,6 +20,7 @@
// time formats are the same as en-gb
longDateFormat: {
LT: 'HH:mm',
+ LTS : 'LT:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY LT',
@@ -48,6 +49,7 @@
y: 'blwyddyn',
yy: '%d flynedd'
},
+ ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
// traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
ordinal: function (number) {
var b = number,
diff --git a/resources/lib/moment/locale/da.js b/resources/lib/moment/locale/da.js
index 5e9ef96d..686ce009 100644
--- a/resources/lib/moment/locale/da.js
+++ b/resources/lib/moment/locale/da.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('da', {
@@ -19,6 +19,7 @@
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
@@ -47,6 +48,7 @@
y : 'et år',
yy : '%d år'
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/de-at.js b/resources/lib/moment/locale/de-at.js
index ff715f89..c9826382 100644
--- a/resources/lib/moment/locale/de-at.js
+++ b/resources/lib/moment/locale/de-at.js
@@ -10,7 +10,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function processRelativeTime(number, withoutSuffix, key, isFuture) {
@@ -34,19 +34,20 @@
weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
longDateFormat : {
- LT: 'HH:mm [Uhr]',
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
LLLL : 'dddd, D. MMMM YYYY LT'
},
calendar : {
- sameDay: '[Heute um] LT',
+ sameDay: '[Heute um] LT [Uhr]',
sameElse: 'L',
- nextDay: '[Morgen um] LT',
- nextWeek: 'dddd [um] LT',
- lastDay: '[Gestern um] LT',
- lastWeek: '[letzten] dddd [um] LT'
+ nextDay: '[Morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[Gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
},
relativeTime : {
future : 'in %s',
@@ -63,6 +64,7 @@
y : processRelativeTime,
yy : processRelativeTime
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/de.js b/resources/lib/moment/locale/de.js
index 11ab9ace..f6d89a90 100644
--- a/resources/lib/moment/locale/de.js
+++ b/resources/lib/moment/locale/de.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function processRelativeTime(number, withoutSuffix, key, isFuture) {
@@ -33,19 +33,20 @@
weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
longDateFormat : {
- LT: 'HH:mm [Uhr]',
+ LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
LLLL : 'dddd, D. MMMM YYYY LT'
},
calendar : {
- sameDay: '[Heute um] LT',
+ sameDay: '[Heute um] LT [Uhr]',
sameElse: 'L',
- nextDay: '[Morgen um] LT',
- nextWeek: 'dddd [um] LT',
- lastDay: '[Gestern um] LT',
- lastWeek: '[letzten] dddd [um] LT'
+ nextDay: '[Morgen um] LT [Uhr]',
+ nextWeek: 'dddd [um] LT [Uhr]',
+ lastDay: '[Gestern um] LT [Uhr]',
+ lastWeek: '[letzten] dddd [um] LT [Uhr]'
},
relativeTime : {
future : 'in %s',
@@ -62,6 +63,7 @@
y : processRelativeTime,
yy : processRelativeTime
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/el.js b/resources/lib/moment/locale/el.js
index eb8eb1a9..6dc769e2 100644
--- a/resources/lib/moment/locale/el.js
+++ b/resources/lib/moment/locale/el.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('el', {
@@ -38,6 +38,7 @@
meridiemParse : /[ΠΜ]\.?Μ?\.?/i,
longDateFormat : {
LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -71,7 +72,7 @@
relativeTime : {
future : 'σε %s',
past : '%s πριν',
- s : 'δευτερόλεπτα',
+ s : 'λίγα δευτερόλεπτα',
m : 'ένα λεπτό',
mm : '%d λεπτά',
h : 'μία ώρα',
@@ -83,9 +84,8 @@
y : 'ένας χρόνος',
yy : '%d χρόνια'
},
- ordinal : function (number) {
- return number + 'η';
- },
+ ordinalParse: /\d{1,2}η/,
+ ordinal: '%dη',
week : {
dow : 1, // Monday is the first day of the week.
doy : 4 // The week that contains Jan 4st is the first week of the year.
diff --git a/resources/lib/moment/locale/en-au.js b/resources/lib/moment/locale/en-au.js
index 75ad34a1..a382b0ae 100644
--- a/resources/lib/moment/locale/en-au.js
+++ b/resources/lib/moment/locale/en-au.js
@@ -7,7 +7,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('en-au', {
@@ -18,6 +18,7 @@
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -46,6 +47,7 @@
y : 'a year',
yy : '%d years'
},
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
diff --git a/resources/lib/moment/locale/en-ca.js b/resources/lib/moment/locale/en-ca.js
index 077dc8b5..2dec8a61 100644
--- a/resources/lib/moment/locale/en-ca.js
+++ b/resources/lib/moment/locale/en-ca.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('en-ca', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
L : 'YYYY-MM-DD',
LL : 'D MMMM, YYYY',
LLL : 'D MMMM, YYYY LT',
@@ -47,6 +48,7 @@
y : 'a year',
yy : '%d years'
},
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
diff --git a/resources/lib/moment/locale/en-gb.js b/resources/lib/moment/locale/en-gb.js
index 4491d4a1..4ea2b29e 100644
--- a/resources/lib/moment/locale/en-gb.js
+++ b/resources/lib/moment/locale/en-gb.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('en-gb', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'HH:mm:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -47,6 +48,7 @@
y : 'a year',
yy : '%d years'
},
+ ordinalParse: /\d{1,2}(st|nd|rd|th)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'th' :
diff --git a/resources/lib/moment/locale/eo.js b/resources/lib/moment/locale/eo.js
index 735ed8ea..6a3d097b 100644
--- a/resources/lib/moment/locale/eo.js
+++ b/resources/lib/moment/locale/eo.js
@@ -10,7 +10,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('eo', {
@@ -21,6 +21,7 @@
weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'YYYY-MM-DD',
LL : 'D[-an de] MMMM, YYYY',
LLL : 'D[-an de] MMMM, YYYY LT',
@@ -56,6 +57,7 @@
y : 'jaro',
yy : '%d jaroj'
},
+ ordinalParse: /\d{1,2}a/,
ordinal : '%da',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/es.js b/resources/lib/moment/locale/es.js
index 04b83a80..b6e30b10 100644
--- a/resources/lib/moment/locale/es.js
+++ b/resources/lib/moment/locale/es.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),
@@ -28,6 +28,7 @@
weekdaysMin : 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY LT',
@@ -66,6 +67,7 @@
y : 'un año',
yy : '%d años'
},
+ ordinalParse : /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/et.js b/resources/lib/moment/locale/et.js
index 242ee169..7dbcee72 100644
--- a/resources/lib/moment/locale/et.js
+++ b/resources/lib/moment/locale/et.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function processRelativeTime(number, withoutSuffix, key, isFuture) {
@@ -39,6 +39,7 @@
weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
@@ -67,6 +68,7 @@
y : processRelativeTime,
yy : processRelativeTime
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/eu.js b/resources/lib/moment/locale/eu.js
index 8fb89b49..c455c466 100644
--- a/resources/lib/moment/locale/eu.js
+++ b/resources/lib/moment/locale/eu.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('eu', {
@@ -19,6 +19,7 @@
weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'YYYY-MM-DD',
LL : 'YYYY[ko] MMMM[ren] D[a]',
LLL : 'YYYY[ko] MMMM[ren] D[a] LT',
@@ -51,6 +52,7 @@
y : 'urte bat',
yy : '%d urte'
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/fa.js b/resources/lib/moment/locale/fa.js
index b1151bdd..ad2087a2 100644
--- a/resources/lib/moment/locale/fa.js
+++ b/resources/lib/moment/locale/fa.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -43,6 +43,7 @@
weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -88,6 +89,7 @@
return symbolMap[match];
}).replace(/,/g, '،');
},
+ ordinalParse: /\d{1,2}م/,
ordinal : '%dم',
week : {
dow : 6, // Saturday is the first day of the week.
diff --git a/resources/lib/moment/locale/fi.js b/resources/lib/moment/locale/fi.js
index 1fedcaba..f884c3ef 100644
--- a/resources/lib/moment/locale/fi.js
+++ b/resources/lib/moment/locale/fi.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
@@ -64,6 +64,7 @@
weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),
longDateFormat : {
LT : 'HH.mm',
+ LTS : 'HH.mm.ss',
L : 'DD.MM.YYYY',
LL : 'Do MMMM[ta] YYYY',
LLL : 'Do MMMM[ta] YYYY, [klo] LT',
@@ -96,6 +97,7 @@
y : translate,
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/fo.js b/resources/lib/moment/locale/fo.js
index a27f9da6..6b940e8e 100644
--- a/resources/lib/moment/locale/fo.js
+++ b/resources/lib/moment/locale/fo.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('fo', {
@@ -19,6 +19,7 @@
weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -47,6 +48,7 @@
y : 'eitt ár',
yy : '%d ár'
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/fr-ca.js b/resources/lib/moment/locale/fr-ca.js
index c0f1bdc6..6cac1b84 100644
--- a/resources/lib/moment/locale/fr-ca.js
+++ b/resources/lib/moment/locale/fr-ca.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('fr-ca', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'YYYY-MM-DD',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -47,6 +48,7 @@
y : 'un an',
yy : '%d ans'
},
+ ordinalParse: /\d{1,2}(er|)/,
ordinal : function (number) {
return number + (number === 1 ? 'er' : '');
}
diff --git a/resources/lib/moment/locale/fr.js b/resources/lib/moment/locale/fr.js
index f217ff1d..4a7cbcc5 100644
--- a/resources/lib/moment/locale/fr.js
+++ b/resources/lib/moment/locale/fr.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('fr', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -47,6 +48,7 @@
y : 'un an',
yy : '%d ans'
},
+ ordinalParse: /\d{1,2}(er|)/,
ordinal : function (number) {
return number + (number === 1 ? 'er' : '');
},
diff --git a/resources/lib/moment/locale/gl.js b/resources/lib/moment/locale/gl.js
index ac638629..5ff9e3fe 100644
--- a/resources/lib/moment/locale/gl.js
+++ b/resources/lib/moment/locale/gl.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('gl', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -62,6 +63,7 @@
y : 'un ano',
yy : '%d anos'
},
+ ordinalParse : /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/he.js b/resources/lib/moment/locale/he.js
index 06f954f4..9f9f4705 100644
--- a/resources/lib/moment/locale/he.js
+++ b/resources/lib/moment/locale/he.js
@@ -10,7 +10,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('he', {
@@ -21,6 +21,7 @@
weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D [ב]MMMM YYYY',
LLL : 'D [ב]MMMM YYYY LT',
diff --git a/resources/lib/moment/locale/hi.js b/resources/lib/moment/locale/hi.js
index 4e64560a..73deba5b 100644
--- a/resources/lib/moment/locale/hi.js
+++ b/resources/lib/moment/locale/hi.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -44,6 +44,7 @@
weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
longDateFormat : {
LT : 'A h:mm बजे',
+ LTS : 'A h:mm:ss बजे',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, LT',
diff --git a/resources/lib/moment/locale/hr.js b/resources/lib/moment/locale/hr.js
index 9e3f6fa3..65264dc2 100644
--- a/resources/lib/moment/locale/hr.js
+++ b/resources/lib/moment/locale/hr.js
@@ -10,7 +10,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function translate(number, withoutSuffix, key) {
@@ -74,6 +74,7 @@
weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD. MM. YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
@@ -130,6 +131,7 @@
y : 'godinu',
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/hu.js b/resources/lib/moment/locale/hu.js
index 73fdb83f..7eccd1d9 100644
--- a/resources/lib/moment/locale/hu.js
+++ b/resources/lib/moment/locale/hu.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
@@ -57,6 +57,7 @@
weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'YYYY.MM.DD.',
LL : 'YYYY. MMMM D.',
LLL : 'YYYY. MMMM D., LT',
@@ -96,6 +97,7 @@
y : translate,
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/hy-am.js b/resources/lib/moment/locale/hy-am.js
index affcd7e8..053a845e 100644
--- a/resources/lib/moment/locale/hy-am.js
+++ b/resources/lib/moment/locale/hy-am.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function monthsCaseReplace(m, format) {
@@ -44,6 +44,7 @@
weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY թ.',
LLL : 'D MMMM YYYY թ., LT',
@@ -89,6 +90,7 @@
}
},
+ ordinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
ordinal: function (number, period) {
switch (period) {
case 'DDD':
diff --git a/resources/lib/moment/locale/id.js b/resources/lib/moment/locale/id.js
index 143426aa..36a841a6 100644
--- a/resources/lib/moment/locale/id.js
+++ b/resources/lib/moment/locale/id.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('id', {
@@ -20,6 +20,7 @@
weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
+ LTS : 'LT.ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] LT',
diff --git a/resources/lib/moment/locale/is.js b/resources/lib/moment/locale/is.js
index 479f82d9..21888aa2 100644
--- a/resources/lib/moment/locale/is.js
+++ b/resources/lib/moment/locale/is.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function plural(n) {
@@ -87,6 +87,7 @@
weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY [kl.] LT',
@@ -115,6 +116,7 @@
y : translate,
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/it.js b/resources/lib/moment/locale/it.js
index 66953909..9d14714f 100644
--- a/resources/lib/moment/locale/it.js
+++ b/resources/lib/moment/locale/it.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('it', {
@@ -20,6 +20,7 @@
weekdaysMin : 'D_L_Ma_Me_G_V_S'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -30,7 +31,14 @@
nextDay: '[Domani alle] LT',
nextWeek: 'dddd [alle] LT',
lastDay: '[Ieri alle] LT',
- lastWeek: '[lo scorso] dddd [alle] LT',
+ lastWeek: function () {
+ switch (this.day()) {
+ case 0:
+ return '[la scorsa] dddd [alle] LT';
+ default:
+ return '[lo scorso] dddd [alle] LT';
+ }
+ },
sameElse: 'L'
},
relativeTime : {
@@ -50,6 +58,7 @@
y : 'un anno',
yy : '%d anni'
},
+ ordinalParse : /\d{1,2}º/,
ordinal: '%dº',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/ja.js b/resources/lib/moment/locale/ja.js
index f14fa4e6..3f55bcfd 100644
--- a/resources/lib/moment/locale/ja.js
+++ b/resources/lib/moment/locale/ja.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('ja', {
@@ -19,6 +19,7 @@
weekdaysMin : '日_月_火_水_木_金_土'.split('_'),
longDateFormat : {
LT : 'Ah時m分',
+ LTS : 'LTs秒',
L : 'YYYY/MM/DD',
LL : 'YYYY年M月D日',
LLL : 'YYYY年M月D日LT',
diff --git a/resources/lib/moment/locale/ka.js b/resources/lib/moment/locale/ka.js
index 73eb9c75..b56e18cb 100644
--- a/resources/lib/moment/locale/ka.js
+++ b/resources/lib/moment/locale/ka.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function monthsCaseReplace(m, format) {
@@ -45,6 +45,7 @@
weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
longDateFormat : {
LT : 'h:mm A',
+ LTS : 'h:mm:ss A',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -84,6 +85,7 @@
y : 'წელი',
yy : '%d წელი'
},
+ ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
ordinal : function (number) {
if (number === 0) {
return number;
diff --git a/resources/lib/moment/locale/km.js b/resources/lib/moment/locale/km.js
index 9ba4888b..8d7b9b85 100644
--- a/resources/lib/moment/locale/km.js
+++ b/resources/lib/moment/locale/km.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('km', {
@@ -19,6 +19,7 @@
weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
longDateFormat: {
LT: 'HH:mm',
+ LTS : 'LT:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY LT',
diff --git a/resources/lib/moment/locale/ko.js b/resources/lib/moment/locale/ko.js
index 57017f5e..956345bd 100644
--- a/resources/lib/moment/locale/ko.js
+++ b/resources/lib/moment/locale/ko.js
@@ -11,7 +11,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('ko', {
@@ -22,6 +22,7 @@
weekdaysMin : '일_월_화_수_목_금_토'.split('_'),
longDateFormat : {
LT : 'A h시 m분',
+ LTS : 'A h시 m분 s초',
L : 'YYYY.MM.DD',
LL : 'YYYY년 MMMM D일',
LLL : 'YYYY년 MMMM D일 LT',
@@ -54,6 +55,7 @@
y : '일년',
yy : '%d년'
},
+ ordinalParse : /\d{1,2}일/,
ordinal : '%d일',
meridiemParse : /(오전|오후)/,
isPM : function (token) {
diff --git a/resources/lib/moment/locale/lb.js b/resources/lib/moment/locale/lb.js
index 14fab973..2e84dab3 100644
--- a/resources/lib/moment/locale/lb.js
+++ b/resources/lib/moment/locale/lb.js
@@ -12,7 +12,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function processRelativeTime(number, withoutSuffix, key, isFuture) {
@@ -91,6 +91,7 @@
weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
longDateFormat: {
LT: 'H:mm [Auer]',
+ LTS: 'H:mm:ss [Auer]',
L: 'DD.MM.YYYY',
LL: 'D. MMMM YYYY',
LLL: 'D. MMMM YYYY LT',
@@ -128,6 +129,7 @@
y : processRelativeTime,
yy : '%d Joer'
},
+ ordinalParse: /\d{1,2}\./,
ordinal: '%d.',
week: {
dow: 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/lt.js b/resources/lib/moment/locale/lt.js
index 013f8f1e..2d87e04c 100644
--- a/resources/lib/moment/locale/lt.js
+++ b/resources/lib/moment/locale/lt.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var units = {
@@ -75,6 +75,7 @@
weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'YYYY-MM-DD',
LL : 'YYYY [m.] MMMM D [d.]',
LLL : 'YYYY [m.] MMMM D [d.], LT [val.]',
@@ -107,6 +108,7 @@
y : translateSingular,
yy : translate
},
+ ordinalParse: /\d{1,2}-oji/,
ordinal : function (number) {
return number + '-oji';
},
diff --git a/resources/lib/moment/locale/lv.js b/resources/lib/moment/locale/lv.js
index 7e1892e3..47a0708c 100644
--- a/resources/lib/moment/locale/lv.js
+++ b/resources/lib/moment/locale/lv.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var units = {
@@ -40,6 +40,7 @@
weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'YYYY. [gada] D. MMMM',
LLL : 'YYYY. [gada] D. MMMM, LT',
@@ -68,6 +69,7 @@
y : 'gadu',
yy : relativeTimeWithPlural
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/mk.js b/resources/lib/moment/locale/mk.js
index 94c7fc1a..de366319 100644
--- a/resources/lib/moment/locale/mk.js
+++ b/resources/lib/moment/locale/mk.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('mk', {
@@ -19,6 +19,7 @@
weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'D.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -59,6 +60,7 @@
y : 'година',
yy : '%d години'
},
+ ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
ordinal : function (number) {
var lastDigit = number % 10,
last2Digits = number % 100;
diff --git a/resources/lib/moment/locale/ml.js b/resources/lib/moment/locale/ml.js
index ea4d9490..38509141 100644
--- a/resources/lib/moment/locale/ml.js
+++ b/resources/lib/moment/locale/ml.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('ml', {
@@ -19,6 +19,7 @@
weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
longDateFormat : {
LT : 'A h:mm -നു',
+ LTS : 'A h:mm:ss -നു',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, LT',
diff --git a/resources/lib/moment/locale/mr.js b/resources/lib/moment/locale/mr.js
index 141eaf86..45c200e8 100644
--- a/resources/lib/moment/locale/mr.js
+++ b/resources/lib/moment/locale/mr.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -44,6 +44,7 @@
weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),
longDateFormat : {
LT : 'A h:mm वाजता',
+ LTS : 'A h:mm:ss वाजता',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, LT',
diff --git a/resources/lib/moment/locale/ms-my.js b/resources/lib/moment/locale/ms-my.js
index 7efcbaaa..09ec280b 100644
--- a/resources/lib/moment/locale/ms-my.js
+++ b/resources/lib/moment/locale/ms-my.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('ms-my', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
longDateFormat : {
LT : 'HH.mm',
+ LTS : 'LT.ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY [pukul] LT',
diff --git a/resources/lib/moment/locale/my.js b/resources/lib/moment/locale/my.js
index 138d1014..31f5c9ea 100644
--- a/resources/lib/moment/locale/my.js
+++ b/resources/lib/moment/locale/my.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -42,6 +42,7 @@
weekdaysMin: 'နွေ_လာ_င်္ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
longDateFormat: {
LT: 'HH:mm',
+ LTS: 'HH:mm:ss',
L: 'DD/MM/YYYY',
LL: 'D MMMM YYYY',
LLL: 'D MMMM YYYY LT',
diff --git a/resources/lib/moment/locale/nb.js b/resources/lib/moment/locale/nb.js
index 533659d5..4764b505 100644
--- a/resources/lib/moment/locale/nb.js
+++ b/resources/lib/moment/locale/nb.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('nb', {
@@ -20,6 +20,7 @@
weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),
longDateFormat : {
LT : 'H.mm',
+ LTS : 'LT.ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY [kl.] LT',
@@ -48,6 +49,7 @@
y : 'ett år',
yy : '%d år'
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/ne.js b/resources/lib/moment/locale/ne.js
index 51629ebd..ceb28341 100644
--- a/resources/lib/moment/locale/ne.js
+++ b/resources/lib/moment/locale/ne.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var symbolMap = {
@@ -44,6 +44,7 @@
weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split('_'),
longDateFormat : {
LT : 'Aको h:mm बजे',
+ LTS : 'Aको h:mm:ss बजे',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, LT',
diff --git a/resources/lib/moment/locale/nl.js b/resources/lib/moment/locale/nl.js
index 213beeb8..9f4fdfe7 100644
--- a/resources/lib/moment/locale/nl.js
+++ b/resources/lib/moment/locale/nl.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
@@ -28,6 +28,7 @@
weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD-MM-YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -56,6 +57,7 @@
y : 'één jaar',
yy : '%d jaar'
},
+ ordinalParse: /\d{1,2}(ste|de)/,
ordinal : function (number) {
return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
},
diff --git a/resources/lib/moment/locale/nn.js b/resources/lib/moment/locale/nn.js
index c5b65055..d7a82380 100644
--- a/resources/lib/moment/locale/nn.js
+++ b/resources/lib/moment/locale/nn.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('nn', {
@@ -19,6 +19,7 @@
weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -47,6 +48,7 @@
y : 'eit år',
yy : '%d år'
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/pl.js b/resources/lib/moment/locale/pl.js
index 63a62f13..418ca817 100644
--- a/resources/lib/moment/locale/pl.js
+++ b/resources/lib/moment/locale/pl.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),
@@ -50,6 +50,7 @@
weekdaysMin : 'N_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -89,6 +90,7 @@
y : 'rok',
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/pt-br.js b/resources/lib/moment/locale/pt-br.js
index 44eedaf0..813c2de4 100644
--- a/resources/lib/moment/locale/pt-br.js
+++ b/resources/lib/moment/locale/pt-br.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('pt-br', {
@@ -19,6 +19,7 @@
weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY [às] LT',
@@ -51,6 +52,7 @@
y : 'um ano',
yy : '%d anos'
},
+ ordinalParse: /\d{1,2}º/,
ordinal : '%dº'
});
}));
diff --git a/resources/lib/moment/locale/pt.js b/resources/lib/moment/locale/pt.js
index aced692e..4afd5643 100644
--- a/resources/lib/moment/locale/pt.js
+++ b/resources/lib/moment/locale/pt.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('pt', {
@@ -19,6 +19,7 @@
weekdaysMin : 'dom_2ª_3ª_4ª_5ª_6ª_sáb'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D [de] MMMM [de] YYYY',
LLL : 'D [de] MMMM [de] YYYY LT',
@@ -51,6 +52,7 @@
y : 'um ano',
yy : '%d anos'
},
+ ordinalParse: /\d{1,2}º/,
ordinal : '%dº',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/ro.js b/resources/lib/moment/locale/ro.js
index dc34d3c3..fcc7d07d 100644
--- a/resources/lib/moment/locale/ro.js
+++ b/resources/lib/moment/locale/ro.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function relativeTimeWithPlural(number, withoutSuffix, key) {
@@ -36,6 +36,7 @@
weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY H:mm',
diff --git a/resources/lib/moment/locale/ru.js b/resources/lib/moment/locale/ru.js
index 2f15233b..5adfa9ac 100644
--- a/resources/lib/moment/locale/ru.js
+++ b/resources/lib/moment/locale/ru.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function plural(word, num) {
@@ -48,7 +48,7 @@
function monthsShortCaseReplace(m, format) {
var monthsShort = {
- 'nominative': 'янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
+ 'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
},
@@ -65,7 +65,7 @@
'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_')
},
- nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/).test(format) ?
+ nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/).test(format) ?
'accusative' :
'nominative';
@@ -81,6 +81,7 @@
monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i],
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY г.',
LLL : 'D MMMM YYYY г., LT',
@@ -93,18 +94,26 @@
nextWeek: function () {
return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT';
},
- lastWeek: function () {
- switch (this.day()) {
- case 0:
- return '[В прошлое] dddd [в] LT';
- case 1:
- case 2:
- case 4:
- return '[В прошлый] dddd [в] LT';
- case 3:
- case 5:
- case 6:
- return '[В прошлую] dddd [в] LT';
+ lastWeek: function (now) {
+ if (now.week() !== this.week()) {
+ switch (this.day()) {
+ case 0:
+ return '[В прошлое] dddd [в] LT';
+ case 1:
+ case 2:
+ case 4:
+ return '[В прошлый] dddd [в] LT';
+ case 3:
+ case 5:
+ case 6:
+ return '[В прошлую] dddd [в] LT';
+ }
+ } else {
+ if (this.day() === 2) {
+ return '[Во] dddd [в] LT';
+ } else {
+ return '[В] dddd [в] LT';
+ }
}
},
sameElse: 'L'
@@ -142,6 +151,7 @@
}
},
+ ordinalParse: /\d{1,2}-(й|го|я)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
diff --git a/resources/lib/moment/locale/sk.js b/resources/lib/moment/locale/sk.js
index 991afebb..f9d74c5d 100644
--- a/resources/lib/moment/locale/sk.js
+++ b/resources/lib/moment/locale/sk.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),
@@ -88,6 +88,7 @@
weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),
longDateFormat : {
LT: 'H:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
@@ -147,6 +148,7 @@
y : translate,
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/sl.js b/resources/lib/moment/locale/sl.js
index 2bdbf1cd..232695fa 100644
--- a/resources/lib/moment/locale/sl.js
+++ b/resources/lib/moment/locale/sl.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function translate(number, withoutSuffix, key) {
@@ -80,6 +80,7 @@
weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),
longDateFormat : {
LT : 'H:mm',
+ LTS : 'LT:ss',
L : 'DD. MM. YYYY',
LL : 'D. MMMM YYYY',
LLL : 'D. MMMM YYYY LT',
@@ -135,6 +136,7 @@
y : 'eno leto',
yy : translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/sq.js b/resources/lib/moment/locale/sq.js
index 6ae41787..415495aa 100644
--- a/resources/lib/moment/locale/sq.js
+++ b/resources/lib/moment/locale/sq.js
@@ -10,7 +10,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('sq', {
@@ -24,6 +24,7 @@
},
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -52,6 +53,7 @@
y : 'një vit',
yy : '%d vite'
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/sr-cyrl.js b/resources/lib/moment/locale/sr-cyrl.js
index 7278de6e..57619b64 100644
--- a/resources/lib/moment/locale/sr-cyrl.js
+++ b/resources/lib/moment/locale/sr-cyrl.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var translator = {
@@ -42,6 +42,7 @@
weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
longDateFormat: {
LT: 'H:mm',
+ LTS : 'LT:ss',
L: 'DD. MM. YYYY',
LL: 'D. MMMM YYYY',
LLL: 'D. MMMM YYYY LT',
@@ -96,6 +97,7 @@
y : 'годину',
yy : translator.translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/sr.js b/resources/lib/moment/locale/sr.js
index d008282e..6f142843 100644
--- a/resources/lib/moment/locale/sr.js
+++ b/resources/lib/moment/locale/sr.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var translator = {
@@ -42,6 +42,7 @@
weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
longDateFormat: {
LT: 'H:mm',
+ LTS : 'LT:ss',
L: 'DD. MM. YYYY',
LL: 'D. MMMM YYYY',
LLL: 'D. MMMM YYYY LT',
@@ -96,6 +97,7 @@
y : 'godinu',
yy : translator.translate
},
+ ordinalParse: /\d{1,2}\./,
ordinal : '%d.',
week : {
dow : 1, // Monday is the first day of the week.
diff --git a/resources/lib/moment/locale/sv.js b/resources/lib/moment/locale/sv.js
index 634b3cfe..6e149580 100644
--- a/resources/lib/moment/locale/sv.js
+++ b/resources/lib/moment/locale/sv.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('sv', {
@@ -19,6 +19,7 @@
weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'YYYY-MM-DD',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -47,6 +48,7 @@
y : 'ett år',
yy : '%d år'
},
+ ordinalParse: /\d{1,2}(e|a)/,
ordinal : function (number) {
var b = number % 10,
output = (~~(number % 100 / 10) === 1) ? 'e' :
diff --git a/resources/lib/moment/locale/ta.js b/resources/lib/moment/locale/ta.js
index 53bab0d9..d0356a3e 100644
--- a/resources/lib/moment/locale/ta.js
+++ b/resources/lib/moment/locale/ta.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
/*var symbolMap = {
@@ -44,6 +44,7 @@
weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY, LT',
@@ -82,6 +83,7 @@
return symbolMap[match];
});
},*/
+ ordinalParse: /\d{1,2}வது/,
ordinal : function (number) {
return number + 'வது';
},
diff --git a/resources/lib/moment/locale/th.js b/resources/lib/moment/locale/th.js
index fc99701d..e3c54229 100644
--- a/resources/lib/moment/locale/th.js
+++ b/resources/lib/moment/locale/th.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('th', {
@@ -19,6 +19,7 @@
weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
longDateFormat : {
LT : 'H นาฬิกา m นาที',
+ LTS : 'LT s วินาที',
L : 'YYYY/MM/DD',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY เวลา LT',
diff --git a/resources/lib/moment/locale/tl-ph.js b/resources/lib/moment/locale/tl-ph.js
index c15cc1f0..40dbb075 100644
--- a/resources/lib/moment/locale/tl-ph.js
+++ b/resources/lib/moment/locale/tl-ph.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('tl-ph', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'MM/D/YYYY',
LL : 'MMMM D, YYYY',
LLL : 'MMMM D, YYYY LT',
@@ -47,6 +48,7 @@
y : 'isang taon',
yy : '%d taon'
},
+ ordinalParse: /\d{1,2}/,
ordinal : function (number) {
return number;
},
diff --git a/resources/lib/moment/locale/tr.js b/resources/lib/moment/locale/tr.js
index 36e8fca1..cd0a7462 100644
--- a/resources/lib/moment/locale/tr.js
+++ b/resources/lib/moment/locale/tr.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
var suffixes = {
@@ -46,6 +46,7 @@
weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
@@ -74,6 +75,7 @@
y : 'bir yıl',
yy : '%d yıl'
},
+ ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
ordinal : function (number) {
if (number === 0) { // special case for zero
return number + '\'ıncı';
diff --git a/resources/lib/moment/locale/tzm-latn.js b/resources/lib/moment/locale/tzm-latn.js
index 31897725..34592b45 100644
--- a/resources/lib/moment/locale/tzm-latn.js
+++ b/resources/lib/moment/locale/tzm-latn.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('tzm-latn', {
@@ -19,6 +19,7 @@
weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
diff --git a/resources/lib/moment/locale/tzm.js b/resources/lib/moment/locale/tzm.js
index 0a7f3f1e..95915212 100644
--- a/resources/lib/moment/locale/tzm.js
+++ b/resources/lib/moment/locale/tzm.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('tzm', {
@@ -19,6 +19,7 @@
weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS: 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
diff --git a/resources/lib/moment/locale/uk.js b/resources/lib/moment/locale/uk.js
index bc22fff9..3dce4bca 100644
--- a/resources/lib/moment/locale/uk.js
+++ b/resources/lib/moment/locale/uk.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
function plural(word, num) {
@@ -79,6 +79,7 @@
weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD.MM.YYYY',
LL : 'D MMMM YYYY р.',
LLL : 'D MMMM YYYY р., LT',
@@ -134,6 +135,7 @@
}
},
+ ordinalParse: /\d{1,2}-(й|го)/,
ordinal: function (number, period) {
switch (period) {
case 'M':
diff --git a/resources/lib/moment/locale/uz.js b/resources/lib/moment/locale/uz.js
index 62fb89e0..139e4deb 100644
--- a/resources/lib/moment/locale/uz.js
+++ b/resources/lib/moment/locale/uz.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('uz', {
@@ -19,6 +19,7 @@
weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM YYYY',
LLL : 'D MMMM YYYY LT',
diff --git a/resources/lib/moment/locale/vi.js b/resources/lib/moment/locale/vi.js
index 20e3ffe2..15ec7dda 100644
--- a/resources/lib/moment/locale/vi.js
+++ b/resources/lib/moment/locale/vi.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('vi', {
@@ -19,6 +19,7 @@
weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
longDateFormat : {
LT : 'HH:mm',
+ LTS : 'LT:ss',
L : 'DD/MM/YYYY',
LL : 'D MMMM [năm] YYYY',
LLL : 'D MMMM [năm] YYYY LT',
@@ -51,6 +52,7 @@
y : 'một năm',
yy : '%d năm'
},
+ ordinalParse: /\d{1,2}/,
ordinal : function (number) {
return number;
},
diff --git a/resources/lib/moment/locale/zh-cn.js b/resources/lib/moment/locale/zh-cn.js
index aff26c5e..b8a0bd2e 100644
--- a/resources/lib/moment/locale/zh-cn.js
+++ b/resources/lib/moment/locale/zh-cn.js
@@ -9,7 +9,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('zh-cn', {
@@ -20,6 +20,7 @@
weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
longDateFormat : {
LT : 'Ah点mm',
+ LTS : 'Ah点m分s秒',
L : 'YYYY-MM-DD',
LL : 'YYYY年MMMD日',
LLL : 'YYYY年MMMD日LT',
@@ -69,6 +70,7 @@
},
sameElse : 'LL'
},
+ ordinalParse: /\d{1,2}(日|月|周)/,
ordinal : function (number, period) {
switch (period) {
case 'd':
diff --git a/resources/lib/moment/locale/zh-tw.js b/resources/lib/moment/locale/zh-tw.js
index 71f99a26..b3c4439c 100644
--- a/resources/lib/moment/locale/zh-tw.js
+++ b/resources/lib/moment/locale/zh-tw.js
@@ -8,7 +8,7 @@
} else if (typeof exports === 'object') {
module.exports = factory(require('../moment')); // Node
} else {
- factory(window.moment); // Browser global
+ factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
}
}(function (moment) {
return moment.defineLocale('zh-tw', {
@@ -19,6 +19,7 @@
weekdaysMin : '日_一_二_三_四_五_六'.split('_'),
longDateFormat : {
LT : 'Ah點mm',
+ LTS : 'Ah點m分s秒',
L : 'YYYY年MMMD日',
LL : 'YYYY年MMMD日',
LLL : 'YYYY年MMMD日LT',
@@ -50,6 +51,7 @@
lastWeek : '[上]ddddLT',
sameElse : 'L'
},
+ ordinalParse: /\d{1,2}(日|月|週)/,
ordinal : function (number, period) {
switch (period) {
case 'd' :
diff --git a/resources/lib/moment/moment.js b/resources/lib/moment/moment.js
index d100a9c4..85e190d4 100644
--- a/resources/lib/moment/moment.js
+++ b/resources/lib/moment/moment.js
@@ -1,5 +1,5 @@
//! moment.js
-//! version : 2.8.3
+//! version : 2.8.4
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
@@ -10,7 +10,7 @@
************************************/
var moment,
- VERSION = '2.8.3',
+ VERSION = '2.8.4',
// the global-scope this is NOT the global object in Node.js
globalScope = typeof global !== 'undefined' ? global : this,
oldGlobalMoment,
@@ -33,7 +33,7 @@
momentProperties = [],
// check for nodeJS
- hasModule = (typeof module !== 'undefined' && module.exports),
+ hasModule = (typeof module !== 'undefined' && module && module.exports),
// ASP.NET json date format regex
aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
@@ -44,8 +44,8 @@
isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
// format tokens
- formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
- localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
+ formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,
+ localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
// parsing token regexes
parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
@@ -56,8 +56,8 @@
parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic.
parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
parseTokenT = /T/i, // T (ISO separator)
+ parseTokenOffsetMs = /[\+\-]?\d+/, // 1234567890123
parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
- parseTokenOrdinal = /\d{1,2}/,
//strict parsing regexes
parseTokenOneDigit = /\d/, // 0 - 9
@@ -272,6 +272,9 @@
zz : function () {
return this.zoneName();
},
+ x : function () {
+ return this.valueOf();
+ },
X : function () {
return this.unix();
},
@@ -698,7 +701,10 @@
overflow =
m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH :
m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE :
- m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR :
+ m._a[HOUR] < 0 || m._a[HOUR] > 24 ||
+ (m._a[HOUR] === 24 && (m._a[MINUTE] !== 0 ||
+ m._a[SECOND] !== 0 ||
+ m._a[MILLISECOND] !== 0)) ? HOUR :
m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE :
m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND :
m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND :
@@ -725,7 +731,8 @@
if (m._strict) {
m._isValid = m._isValid &&
m._pf.charsLeftOver === 0 &&
- m._pf.unusedTokens.length === 0;
+ m._pf.unusedTokens.length === 0 &&
+ m._pf.bigHour === undefined;
}
}
return m._isValid;
@@ -777,8 +784,18 @@
// Return a moment from input, that is local/utc/zone equivalent to model.
function makeAs(input, model) {
- return model._isUTC ? moment(input).zone(model._offset || 0) :
- moment(input).local();
+ var res, diff;
+ if (model._isUTC) {
+ res = model.clone();
+ diff = (moment.isMoment(input) || isDate(input) ?
+ +input : +moment(input)) - (+res);
+ // Use low-level api, because this fn is low-level api.
+ res._d.setTime(+res._d + diff);
+ moment.updateOffset(res, false);
+ return res;
+ } else {
+ return moment(input).local();
+ }
}
/************************************
@@ -798,6 +815,9 @@
this['_' + i] = prop;
}
}
+ // Lenient ordinal parsing accepts just a number in addition to
+ // number + (possibly) stuff coming from _ordinalParseLenient.
+ this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source);
},
_months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),
@@ -810,22 +830,32 @@
return this._monthsShort[m.month()];
},
- monthsParse : function (monthName) {
+ monthsParse : function (monthName, format, strict) {
var i, mom, regex;
if (!this._monthsParse) {
this._monthsParse = [];
+ this._longMonthsParse = [];
+ this._shortMonthsParse = [];
}
for (i = 0; i < 12; i++) {
// make the regex if we don't have it already
- if (!this._monthsParse[i]) {
- mom = moment.utc([2000, i]);
+ mom = moment.utc([2000, i]);
+ if (strict && !this._longMonthsParse[i]) {
+ this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
+ this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
+ }
+ if (!strict && !this._monthsParse[i]) {
regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
}
// test the regex
- if (this._monthsParse[i].test(monthName)) {
+ if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
+ return i;
+ } else if (!strict && this._monthsParse[i].test(monthName)) {
return i;
}
}
@@ -868,6 +898,7 @@
},
_longDateFormat : {
+ LTS : 'h:mm:ss A',
LT : 'h:mm A',
L : 'MM/DD/YYYY',
LL : 'MMMM D, YYYY',
@@ -908,9 +939,9 @@
lastWeek : '[Last] dddd [at] LT',
sameElse : 'L'
},
- calendar : function (key, mom) {
+ calendar : function (key, mom, now) {
var output = this._calendar[key];
- return typeof output === 'function' ? output.apply(mom) : output;
+ return typeof output === 'function' ? output.apply(mom, [now]) : output;
},
_relativeTime : {
@@ -945,6 +976,7 @@
return this._ordinal.replace('%d', number);
},
_ordinal : '%d',
+ _ordinalParse : /\d{1,2}/,
preparse : function (string) {
return string;
@@ -1086,6 +1118,8 @@
case 'a':
case 'A':
return config._locale._meridiemParse;
+ case 'x':
+ return parseTokenOffsetMs;
case 'X':
return parseTokenTimestampMs;
case 'Z':
@@ -1120,7 +1154,7 @@
case 'E':
return parseTokenOneOrTwoDigits;
case 'Do':
- return parseTokenOrdinal;
+ return strict ? config._locale._ordinalParse : config._locale._ordinalParseLenient;
default :
a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i'));
return a;
@@ -1157,7 +1191,7 @@
break;
case 'MMM' : // fall through to MMMM
case 'MMMM' :
- a = config._locale.monthsParse(input);
+ a = config._locale.monthsParse(input, token, config._strict);
// if we didn't find a month name, mark the date as invalid.
if (a != null) {
datePartArray[MONTH] = a;
@@ -1174,7 +1208,8 @@
break;
case 'Do' :
if (input != null) {
- datePartArray[DATE] = toInt(parseInt(input, 10));
+ datePartArray[DATE] = toInt(parseInt(
+ input.match(/\d{1,2}/)[0], 10));
}
break;
// DAY OF YEAR
@@ -1199,11 +1234,13 @@
case 'A' :
config._isPm = config._locale.isPM(input);
break;
- // 24 HOUR
- case 'H' : // fall through to hh
- case 'HH' : // fall through to hh
+ // HOUR
case 'h' : // fall through to hh
case 'hh' :
+ config._pf.bigHour = true;
+ /* falls through */
+ case 'H' : // fall through to HH
+ case 'HH' :
datePartArray[HOUR] = toInt(input);
break;
// MINUTE
@@ -1223,6 +1260,10 @@
case 'SSSS' :
datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000);
break;
+ // UNIX OFFSET (MILLISECONDS)
+ case 'x':
+ config._d = new Date(toInt(input));
+ break;
// UNIX TIMESTAMP WITH MS
case 'X':
config._d = new Date(parseFloat(input) * 1000);
@@ -1359,12 +1400,25 @@
config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
}
+ // Check for 24:00:00.000
+ if (config._a[HOUR] === 24 &&
+ config._a[MINUTE] === 0 &&
+ config._a[SECOND] === 0 &&
+ config._a[MILLISECOND] === 0) {
+ config._nextDay = true;
+ config._a[HOUR] = 0;
+ }
+
config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input);
// Apply timezone offset from input. The actual zone can be changed
// with parseZone.
if (config._tzm != null) {
config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm);
}
+
+ if (config._nextDay) {
+ config._a[HOUR] = 24;
+ }
}
function dateFromObject(config) {
@@ -1378,7 +1432,7 @@
config._a = [
normalizedInput.year,
normalizedInput.month,
- normalizedInput.day,
+ normalizedInput.day || normalizedInput.date,
normalizedInput.hour,
normalizedInput.minute,
normalizedInput.second,
@@ -1451,6 +1505,10 @@
config._pf.unusedInput.push(string);
}
+ // clear _12h flag if hour is <= 12
+ if (config._pf.bigHour === true && config._a[HOUR] <= 12) {
+ config._pf.bigHour = undefined;
+ }
// handle am pm
if (config._isPm && config._a[HOUR] < 12) {
config._a[HOUR] += 12;
@@ -1459,7 +1517,6 @@
if (config._isPm === false && config._a[HOUR] === 12) {
config._a[HOUR] = 0;
}
-
dateFromConfig(config);
checkOverflow(config);
}
@@ -1719,7 +1776,8 @@
function makeMoment(config) {
var input = config._i,
- format = config._f;
+ format = config._f,
+ res;
config._locale = config._locale || moment.localeData(config._l);
@@ -1743,7 +1801,14 @@
makeDateFromInput(config);
}
- return new Moment(config);
+ res = new Moment(config);
+ if (res._nextDay) {
+ // Adding is smart enough around DST
+ res.add(1, 'd');
+ res._nextDay = undefined;
+ }
+
+ return res;
}
moment = function (input, format, locale, strict) {
@@ -1775,7 +1840,7 @@
'release. Please refer to ' +
'https://github.com/moment/moment/issues/1407 for more info.',
function (config) {
- config._d = new Date(config._i);
+ config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
}
);
@@ -2087,7 +2152,12 @@
toISOString : function () {
var m = moment(this).utc();
if (0 < m.year() && m.year() <= 9999) {
- return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+ if ('function' === typeof Date.prototype.toISOString) {
+ // native implementation is ~50x faster, use it when we can
+ return this.toDate().toISOString();
+ } else {
+ return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+ }
} else {
return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
}
@@ -2206,7 +2276,7 @@
diff < 1 ? 'sameDay' :
diff < 2 ? 'nextDay' :
diff < 7 ? 'nextWeek' : 'sameElse';
- return this.format(this.localeData().calendar(format, this));
+ return this.format(this.localeData().calendar(format, this, moment(now)));
},
isLeapYear : function () {
@@ -2275,36 +2345,45 @@
endOf: function (units) {
units = normalizeUnits(units);
+ if (units === undefined || units === 'millisecond') {
+ return this;
+ }
return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');
},
isAfter: function (input, units) {
+ var inputMs;
units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
if (units === 'millisecond') {
input = moment.isMoment(input) ? input : moment(input);
return +this > +input;
} else {
- return +this.clone().startOf(units) > +moment(input).startOf(units);
+ inputMs = moment.isMoment(input) ? +input : +moment(input);
+ return inputMs < +this.clone().startOf(units);
}
},
isBefore: function (input, units) {
+ var inputMs;
units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');
if (units === 'millisecond') {
input = moment.isMoment(input) ? input : moment(input);
return +this < +input;
} else {
- return +this.clone().startOf(units) < +moment(input).startOf(units);
+ inputMs = moment.isMoment(input) ? +input : +moment(input);
+ return +this.clone().endOf(units) < inputMs;
}
},
isSame: function (input, units) {
+ var inputMs;
units = normalizeUnits(units || 'millisecond');
if (units === 'millisecond') {
input = moment.isMoment(input) ? input : moment(input);
return +this === +input;
} else {
- return +this.clone().startOf(units) === +makeAs(input, this).startOf(units);
+ inputMs = +moment(input);
+ return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));
}
},
@@ -2481,7 +2560,7 @@
},
lang : deprecate(
- 'moment().lang() is deprecated. Use moment().localeData() instead.',
+ 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
function (key) {
if (key === undefined) {
return this.localeData();
@@ -2702,7 +2781,7 @@
return units === 'month' ? months : months / 12;
} else {
// handle milliseconds separately because of floating point math errors (issue #1867)
- days = this._days + yearsToDays(this._months / 12);
+ days = this._days + Math.round(yearsToDays(this._months / 12));
switch (units) {
case 'week': return days / 7 + this._milliseconds / 6048e5;
case 'day': return days + this._milliseconds / 864e5;
@@ -2804,6 +2883,7 @@
// Set default locale, other locale will inherit from English.
moment.locale('en', {
+ ordinalParse: /\d{1,2}(th|st|nd|rd)/,
ordinal : function (number) {
var b = number % 10,
output = (toInt(number % 100 / 10) === 1) ? 'th' :
diff --git a/resources/lib/mustache/mustache.js b/resources/lib/mustache/mustache.js
new file mode 100644
index 00000000..dbc98231
--- /dev/null
+++ b/resources/lib/mustache/mustache.js
@@ -0,0 +1,578 @@
+/*!
+ * mustache.js - Logic-less {{mustache}} templates with JavaScript
+ * http://github.com/janl/mustache.js
+ */
+
+/*global define: false*/
+
+(function (global, factory) {
+ if (typeof exports === "object" && exports) {
+ factory(exports); // CommonJS
+ } else if (typeof define === "function" && define.amd) {
+ define(['exports'], factory); // AMD
+ } else {
+ factory(global.Mustache = {}); // <script>
+ }
+}(this, function (mustache) {
+
+ var Object_toString = Object.prototype.toString;
+ var isArray = Array.isArray || function (object) {
+ return Object_toString.call(object) === '[object Array]';
+ };
+
+ function isFunction(object) {
+ return typeof object === 'function';
+ }
+
+ function escapeRegExp(string) {
+ return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
+ }
+
+ // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577
+ // See https://github.com/janl/mustache.js/issues/189
+ var RegExp_test = RegExp.prototype.test;
+ function testRegExp(re, string) {
+ return RegExp_test.call(re, string);
+ }
+
+ var nonSpaceRe = /\S/;
+ function isWhitespace(string) {
+ return !testRegExp(nonSpaceRe, string);
+ }
+
+ var entityMap = {
+ "&": "&amp;",
+ "<": "&lt;",
+ ">": "&gt;",
+ '"': '&quot;',
+ "'": '&#39;',
+ "/": '&#x2F;'
+ };
+
+ function escapeHtml(string) {
+ return String(string).replace(/[&<>"'\/]/g, function (s) {
+ return entityMap[s];
+ });
+ }
+
+ var whiteRe = /\s*/;
+ var spaceRe = /\s+/;
+ var equalsRe = /\s*=/;
+ var curlyRe = /\s*\}/;
+ var tagRe = /#|\^|\/|>|\{|&|=|!/;
+
+ /**
+ * Breaks up the given `template` string into a tree of tokens. If the `tags`
+ * argument is given here it must be an array with two string values: the
+ * opening and closing tags used in the template (e.g. [ "<%", "%>" ]). Of
+ * course, the default is to use mustaches (i.e. mustache.tags).
+ *
+ * A token is an array with at least 4 elements. The first element is the
+ * mustache symbol that was used inside the tag, e.g. "#" or "&". If the tag
+ * did not contain a symbol (i.e. {{myValue}}) this element is "name". For
+ * all text that appears outside a symbol this element is "text".
+ *
+ * The second element of a token is its "value". For mustache tags this is
+ * whatever else was inside the tag besides the opening symbol. For text tokens
+ * this is the text itself.
+ *
+ * The third and fourth elements of the token are the start and end indices,
+ * respectively, of the token in the original template.
+ *
+ * Tokens that are the root node of a subtree contain two more elements: 1) an
+ * array of tokens in the subtree and 2) the index in the original template at
+ * which the closing tag for that section begins.
+ */
+ function parseTemplate(template, tags) {
+ if (!template)
+ return [];
+
+ var sections = []; // Stack to hold section tokens
+ var tokens = []; // Buffer to hold the tokens
+ var spaces = []; // Indices of whitespace tokens on the current line
+ var hasTag = false; // Is there a {{tag}} on the current line?
+ var nonSpace = false; // Is there a non-space char on the current line?
+
+ // Strips all whitespace tokens array for the current line
+ // if there was a {{#tag}} on it and otherwise only space.
+ function stripSpace() {
+ if (hasTag && !nonSpace) {
+ while (spaces.length)
+ delete tokens[spaces.pop()];
+ } else {
+ spaces = [];
+ }
+
+ hasTag = false;
+ nonSpace = false;
+ }
+
+ var openingTagRe, closingTagRe, closingCurlyRe;
+ function compileTags(tags) {
+ if (typeof tags === 'string')
+ tags = tags.split(spaceRe, 2);
+
+ if (!isArray(tags) || tags.length !== 2)
+ throw new Error('Invalid tags: ' + tags);
+
+ openingTagRe = new RegExp(escapeRegExp(tags[0]) + '\\s*');
+ closingTagRe = new RegExp('\\s*' + escapeRegExp(tags[1]));
+ closingCurlyRe = new RegExp('\\s*' + escapeRegExp('}' + tags[1]));
+ }
+
+ compileTags(tags || mustache.tags);
+
+ var scanner = new Scanner(template);
+
+ var start, type, value, chr, token, openSection;
+ while (!scanner.eos()) {
+ start = scanner.pos;
+
+ // Match any text between tags.
+ value = scanner.scanUntil(openingTagRe);
+
+ if (value) {
+ for (var i = 0, valueLength = value.length; i < valueLength; ++i) {
+ chr = value.charAt(i);
+
+ if (isWhitespace(chr)) {
+ spaces.push(tokens.length);
+ } else {
+ nonSpace = true;
+ }
+
+ tokens.push([ 'text', chr, start, start + 1 ]);
+ start += 1;
+
+ // Check for whitespace on the current line.
+ if (chr === '\n')
+ stripSpace();
+ }
+ }
+
+ // Match the opening tag.
+ if (!scanner.scan(openingTagRe))
+ break;
+
+ hasTag = true;
+
+ // Get the tag type.
+ type = scanner.scan(tagRe) || 'name';
+ scanner.scan(whiteRe);
+
+ // Get the tag value.
+ if (type === '=') {
+ value = scanner.scanUntil(equalsRe);
+ scanner.scan(equalsRe);
+ scanner.scanUntil(closingTagRe);
+ } else if (type === '{') {
+ value = scanner.scanUntil(closingCurlyRe);
+ scanner.scan(curlyRe);
+ scanner.scanUntil(closingTagRe);
+ type = '&';
+ } else {
+ value = scanner.scanUntil(closingTagRe);
+ }
+
+ // Match the closing tag.
+ if (!scanner.scan(closingTagRe))
+ throw new Error('Unclosed tag at ' + scanner.pos);
+
+ token = [ type, value, start, scanner.pos ];
+ tokens.push(token);
+
+ if (type === '#' || type === '^') {
+ sections.push(token);
+ } else if (type === '/') {
+ // Check section nesting.
+ openSection = sections.pop();
+
+ if (!openSection)
+ throw new Error('Unopened section "' + value + '" at ' + start);
+
+ if (openSection[1] !== value)
+ throw new Error('Unclosed section "' + openSection[1] + '" at ' + start);
+ } else if (type === 'name' || type === '{' || type === '&') {
+ nonSpace = true;
+ } else if (type === '=') {
+ // Set the tags for the next time around.
+ compileTags(value);
+ }
+ }
+
+ // Make sure there are no open sections when we're done.
+ openSection = sections.pop();
+
+ if (openSection)
+ throw new Error('Unclosed section "' + openSection[1] + '" at ' + scanner.pos);
+
+ return nestTokens(squashTokens(tokens));
+ }
+
+ /**
+ * Combines the values of consecutive text tokens in the given `tokens` array
+ * to a single token.
+ */
+ function squashTokens(tokens) {
+ var squashedTokens = [];
+
+ var token, lastToken;
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
+ token = tokens[i];
+
+ if (token) {
+ if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {
+ lastToken[1] += token[1];
+ lastToken[3] = token[3];
+ } else {
+ squashedTokens.push(token);
+ lastToken = token;
+ }
+ }
+ }
+
+ return squashedTokens;
+ }
+
+ /**
+ * Forms the given array of `tokens` into a nested tree structure where
+ * tokens that represent a section have two additional items: 1) an array of
+ * all tokens that appear in that section and 2) the index in the original
+ * template that represents the end of that section.
+ */
+ function nestTokens(tokens) {
+ var nestedTokens = [];
+ var collector = nestedTokens;
+ var sections = [];
+
+ var token, section;
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
+ token = tokens[i];
+
+ switch (token[0]) {
+ case '#':
+ case '^':
+ collector.push(token);
+ sections.push(token);
+ collector = token[4] = [];
+ break;
+ case '/':
+ section = sections.pop();
+ section[5] = token[2];
+ collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;
+ break;
+ default:
+ collector.push(token);
+ }
+ }
+
+ return nestedTokens;
+ }
+
+ /**
+ * A simple string scanner that is used by the template parser to find
+ * tokens in template strings.
+ */
+ function Scanner(string) {
+ this.string = string;
+ this.tail = string;
+ this.pos = 0;
+ }
+
+ /**
+ * Returns `true` if the tail is empty (end of string).
+ */
+ Scanner.prototype.eos = function () {
+ return this.tail === "";
+ };
+
+ /**
+ * Tries to match the given regular expression at the current position.
+ * Returns the matched text if it can match, the empty string otherwise.
+ */
+ Scanner.prototype.scan = function (re) {
+ var match = this.tail.match(re);
+
+ if (!match || match.index !== 0)
+ return '';
+
+ var string = match[0];
+
+ this.tail = this.tail.substring(string.length);
+ this.pos += string.length;
+
+ return string;
+ };
+
+ /**
+ * Skips all text until the given regular expression can be matched. Returns
+ * the skipped string, which is the entire tail if no match can be made.
+ */
+ Scanner.prototype.scanUntil = function (re) {
+ var index = this.tail.search(re), match;
+
+ switch (index) {
+ case -1:
+ match = this.tail;
+ this.tail = "";
+ break;
+ case 0:
+ match = "";
+ break;
+ default:
+ match = this.tail.substring(0, index);
+ this.tail = this.tail.substring(index);
+ }
+
+ this.pos += match.length;
+
+ return match;
+ };
+
+ /**
+ * Represents a rendering context by wrapping a view object and
+ * maintaining a reference to the parent context.
+ */
+ function Context(view, parentContext) {
+ this.view = view == null ? {} : view;
+ this.cache = { '.': this.view };
+ this.parent = parentContext;
+ }
+
+ /**
+ * Creates a new context using the given view with this context
+ * as the parent.
+ */
+ Context.prototype.push = function (view) {
+ return new Context(view, this);
+ };
+
+ /**
+ * Returns the value of the given name in this context, traversing
+ * up the context hierarchy if the value is absent in this context's view.
+ */
+ Context.prototype.lookup = function (name) {
+ var cache = this.cache;
+
+ var value;
+ if (name in cache) {
+ value = cache[name];
+ } else {
+ var context = this, names, index;
+
+ while (context) {
+ if (name.indexOf('.') > 0) {
+ value = context.view;
+ names = name.split('.');
+ index = 0;
+
+ while (value != null && index < names.length)
+ value = value[names[index++]];
+ } else if (typeof context.view == 'object') {
+ value = context.view[name];
+ }
+
+ if (value != null)
+ break;
+
+ context = context.parent;
+ }
+
+ cache[name] = value;
+ }
+
+ if (isFunction(value))
+ value = value.call(this.view);
+
+ return value;
+ };
+
+ /**
+ * A Writer knows how to take a stream of tokens and render them to a
+ * string, given a context. It also maintains a cache of templates to
+ * avoid the need to parse the same template twice.
+ */
+ function Writer() {
+ this.cache = {};
+ }
+
+ /**
+ * Clears all cached templates in this writer.
+ */
+ Writer.prototype.clearCache = function () {
+ this.cache = {};
+ };
+
+ /**
+ * Parses and caches the given `template` and returns the array of tokens
+ * that is generated from the parse.
+ */
+ Writer.prototype.parse = function (template, tags) {
+ var cache = this.cache;
+ var tokens = cache[template];
+
+ if (tokens == null)
+ tokens = cache[template] = parseTemplate(template, tags);
+
+ return tokens;
+ };
+
+ /**
+ * High-level method that is used to render the given `template` with
+ * the given `view`.
+ *
+ * The optional `partials` argument may be an object that contains the
+ * names and templates of partials that are used in the template. It may
+ * also be a function that is used to load partial templates on the fly
+ * that takes a single argument: the name of the partial.
+ */
+ Writer.prototype.render = function (template, view, partials) {
+ var tokens = this.parse(template);
+ var context = (view instanceof Context) ? view : new Context(view);
+ return this.renderTokens(tokens, context, partials, template);
+ };
+
+ /**
+ * Low-level method that renders the given array of `tokens` using
+ * the given `context` and `partials`.
+ *
+ * Note: The `originalTemplate` is only ever used to extract the portion
+ * of the original template that was contained in a higher-order section.
+ * If the template doesn't use higher-order sections, this argument may
+ * be omitted.
+ */
+ Writer.prototype.renderTokens = function (tokens, context, partials, originalTemplate) {
+ var buffer = '';
+
+ // This function is used to render an arbitrary template
+ // in the current context by higher-order sections.
+ var self = this;
+ function subRender(template) {
+ return self.render(template, context, partials);
+ }
+
+ var token, value;
+ for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
+ token = tokens[i];
+
+ switch (token[0]) {
+ case '#':
+ value = context.lookup(token[1]);
+
+ if (!value)
+ continue;
+
+ if (isArray(value)) {
+ for (var j = 0, valueLength = value.length; j < valueLength; ++j) {
+ buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);
+ }
+ } else if (typeof value === 'object' || typeof value === 'string') {
+ buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);
+ } else if (isFunction(value)) {
+ if (typeof originalTemplate !== 'string')
+ throw new Error('Cannot use higher-order sections without the original template');
+
+ // Extract the portion of the original template that the section contains.
+ value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);
+
+ if (value != null)
+ buffer += value;
+ } else {
+ buffer += this.renderTokens(token[4], context, partials, originalTemplate);
+ }
+
+ break;
+ case '^':
+ value = context.lookup(token[1]);
+
+ // Use JavaScript's definition of falsy. Include empty arrays.
+ // See https://github.com/janl/mustache.js/issues/186
+ if (!value || (isArray(value) && value.length === 0))
+ buffer += this.renderTokens(token[4], context, partials, originalTemplate);
+
+ break;
+ case '>':
+ if (!partials)
+ continue;
+
+ value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
+
+ if (value != null)
+ buffer += this.renderTokens(this.parse(value), context, partials, value);
+
+ break;
+ case '&':
+ value = context.lookup(token[1]);
+
+ if (value != null)
+ buffer += value;
+
+ break;
+ case 'name':
+ value = context.lookup(token[1]);
+
+ if (value != null)
+ buffer += mustache.escape(value);
+
+ break;
+ case 'text':
+ buffer += token[1];
+ break;
+ }
+ }
+
+ return buffer;
+ };
+
+ mustache.name = "mustache.js";
+ mustache.version = "0.8.2";
+ mustache.tags = [ "{{", "}}" ];
+
+ // All high-level mustache.* functions use this writer.
+ var defaultWriter = new Writer();
+
+ /**
+ * Clears all cached templates in the default writer.
+ */
+ mustache.clearCache = function () {
+ return defaultWriter.clearCache();
+ };
+
+ /**
+ * Parses and caches the given template in the default writer and returns the
+ * array of tokens it contains. Doing this ahead of time avoids the need to
+ * parse templates on the fly as they are rendered.
+ */
+ mustache.parse = function (template, tags) {
+ return defaultWriter.parse(template, tags);
+ };
+
+ /**
+ * Renders the `template` with the given `view` and `partials` using the
+ * default writer.
+ */
+ mustache.render = function (template, view, partials) {
+ return defaultWriter.render(template, view, partials);
+ };
+
+ // This is here for backwards compatibility with 0.4.x.
+ mustache.to_html = function (template, view, partials, send) {
+ var result = mustache.render(template, view, partials);
+
+ if (isFunction(send)) {
+ send(result);
+ } else {
+ return result;
+ }
+ };
+
+ // Export the escaping function so that the user may override it.
+ // See https://github.com/janl/mustache.js/issues/244
+ mustache.escape = escapeHtml;
+
+ // Export these mainly for testing, but also for advanced usage.
+ mustache.Scanner = Scanner;
+ mustache.Context = Context;
+ mustache.Writer = Writer;
+
+}));
diff --git a/resources/lib/oojs-ui/i18n/ace.json b/resources/lib/oojs-ui/i18n/ace.json
index b37e9bce..0fdc1a89 100644
--- a/resources/lib/oojs-ui/i18n/ace.json
+++ b/resources/lib/oojs-ui/i18n/ace.json
@@ -4,7 +4,6 @@
"Si Gam Acèh"
]
},
- "ooui-dialog-action-close": "Tôp",
"ooui-outline-control-move-down": "Pinah item u yup",
"ooui-outline-control-move-up": "Pinah item u ateuëh",
"ooui-toolbar-more": "Lom"
diff --git a/resources/lib/oojs-ui/i18n/af.json b/resources/lib/oojs-ui/i18n/af.json
index c5984af0..6f79e370 100644
--- a/resources/lib/oojs-ui/i18n/af.json
+++ b/resources/lib/oojs-ui/i18n/af.json
@@ -4,7 +4,16 @@
"Naudefj"
]
},
- "ooui-dialog-action-close": "Sluit",
"ooui-outline-control-move-down": "Skuif item af",
- "ooui-outline-control-move-up": "Skuif item op"
+ "ooui-outline-control-move-up": "Skuif item op",
+ "ooui-outline-control-remove": "Verwyder item",
+ "ooui-toolbar-more": "Meer",
+ "ooui-toolgroup-expand": "Meer",
+ "ooui-toolgroup-collapse": "Minder",
+ "ooui-dialog-message-accept": "Regso",
+ "ooui-dialog-message-reject": "Kanselleer",
+ "ooui-dialog-process-error": "Iets het verkeerd gegaan",
+ "ooui-dialog-process-dismiss": "Sluit",
+ "ooui-dialog-process-retry": "Probeer weer",
+ "ooui-dialog-process-continue": "Gaan voort"
}
diff --git a/resources/lib/oojs-ui/i18n/am.json b/resources/lib/oojs-ui/i18n/am.json
index 0e070c60..bfe9d5c3 100644
--- a/resources/lib/oojs-ui/i18n/am.json
+++ b/resources/lib/oojs-ui/i18n/am.json
@@ -3,6 +3,5 @@
"authors": [
"Elfalem"
]
- },
- "ooui-dialog-action-close": "ለመዝጋት"
+ }
}
diff --git a/resources/lib/oojs-ui/i18n/ar.json b/resources/lib/oojs-ui/i18n/ar.json
index b01e2cd4..058a1491 100644
--- a/resources/lib/oojs-ui/i18n/ar.json
+++ b/resources/lib/oojs-ui/i18n/ar.json
@@ -9,16 +9,20 @@
"OsamaK",
"زكريا",
"مشعل الحربي",
- "ترجمان05"
+ "ترجمان05",
+ "Abanima"
]
},
"ooui-outline-control-move-down": "انقل العنصر للأسفل",
"ooui-outline-control-move-up": "انقل العنصر للأعلى",
"ooui-outline-control-remove": "أزل العنصر",
"ooui-toolbar-more": "مزيد",
+ "ooui-toolgroup-expand": "مزيد",
+ "ooui-toolgroup-collapse": "أقل",
"ooui-dialog-message-accept": "موافق",
"ooui-dialog-message-reject": "ألغ",
"ooui-dialog-process-error": "حدث خطأ",
"ooui-dialog-process-dismiss": "أغلق",
- "ooui-dialog-process-retry": "حاول مرة أخرى"
+ "ooui-dialog-process-retry": "حاول مرة أخرى",
+ "ooui-dialog-process-continue": "استمر"
}
diff --git a/resources/lib/oojs-ui/i18n/arc.json b/resources/lib/oojs-ui/i18n/arc.json
index 7eb02a7b..de5b7aff 100644
--- a/resources/lib/oojs-ui/i18n/arc.json
+++ b/resources/lib/oojs-ui/i18n/arc.json
@@ -3,6 +3,5 @@
"authors": [
"Basharh"
]
- },
- "ooui-dialog-action-close": "ܣܟܘܪ"
+ }
}
diff --git a/resources/lib/oojs-ui/i18n/awa.json b/resources/lib/oojs-ui/i18n/awa.json
new file mode 100644
index 00000000..f78ed326
--- /dev/null
+++ b/resources/lib/oojs-ui/i18n/awa.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "1AnuraagPandey"
+ ]
+ },
+ "ooui-toolbar-more": "अउर"
+}
diff --git a/resources/lib/oojs-ui/i18n/az.json b/resources/lib/oojs-ui/i18n/az.json
index aa835e28..fc12d1b3 100644
--- a/resources/lib/oojs-ui/i18n/az.json
+++ b/resources/lib/oojs-ui/i18n/az.json
@@ -6,7 +6,6 @@
"Jduranboger"
]
},
- "ooui-dialog-action-close": "Bağla",
"ooui-outline-control-move-down": "Bəndi aşağı apar",
"ooui-outline-control-move-up": "Bəndi yuxarı apar",
"ooui-outline-control-remove": "Bəndi sil",
diff --git a/resources/lib/oojs-ui/i18n/ba.json b/resources/lib/oojs-ui/i18n/ba.json
index 0bfa299b..ff915b06 100644
--- a/resources/lib/oojs-ui/i18n/ba.json
+++ b/resources/lib/oojs-ui/i18n/ba.json
@@ -9,7 +9,6 @@
"Рустам Нурыев"
]
},
- "ooui-dialog-action-close": "Ябырға",
"ooui-outline-control-move-down": "Аҫҡа күсерергә",
"ooui-outline-control-move-up": "Өҫкә күсерергә"
}
diff --git a/resources/lib/oojs-ui/i18n/bcc.json b/resources/lib/oojs-ui/i18n/bcc.json
new file mode 100644
index 00000000..a340a881
--- /dev/null
+++ b/resources/lib/oojs-ui/i18n/bcc.json
@@ -0,0 +1,9 @@
+{
+ "@metadata": {
+ "authors": [
+ "Baloch Afghanistan"
+ ]
+ },
+ "ooui-dialog-message-accept": "اوکی",
+ "ooui-dialog-process-retry": "پدا کوشش کورتین"
+}
diff --git a/resources/lib/oojs-ui/i18n/bcl.json b/resources/lib/oojs-ui/i18n/bcl.json
index f3db6398..bc2251e8 100644
--- a/resources/lib/oojs-ui/i18n/bcl.json
+++ b/resources/lib/oojs-ui/i18n/bcl.json
@@ -5,7 +5,6 @@
"Sky Harbor"
]
},
- "ooui-dialog-action-close": "Seraduhon",
"ooui-outline-control-move-down": "Balyuhon an aytem paibaba",
"ooui-outline-control-move-up": "Balyuhon an aytem paitaas",
"ooui-toolbar-more": "Kadugangan"
diff --git a/resources/lib/oojs-ui/i18n/be-tarask.json b/resources/lib/oojs-ui/i18n/be-tarask.json
index c3f1abfe..c5475f85 100644
--- a/resources/lib/oojs-ui/i18n/be-tarask.json
+++ b/resources/lib/oojs-ui/i18n/be-tarask.json
@@ -7,7 +7,6 @@
"Zedlik"
]
},
- "ooui-dialog-action-close": "Закрыць",
"ooui-outline-control-move-down": "Перасунуць ніжэй",
"ooui-outline-control-move-up": "Перасунуць вышэй",
"ooui-toolbar-more": "Болей"
diff --git a/resources/lib/oojs-ui/i18n/be.json b/resources/lib/oojs-ui/i18n/be.json
index 08fbe0b4..fb0f6880 100644
--- a/resources/lib/oojs-ui/i18n/be.json
+++ b/resources/lib/oojs-ui/i18n/be.json
@@ -5,9 +5,6 @@
"Artificial123"
]
},
- "ooui-dialog-action-close": "Закрыць",
- "ooui-dialog-confirm-title": "Пацвердзіць",
- "ooui-dialog-confirm-default-prompt": "Вы ўпэўненыя?",
- "ooui-dialog-confirm-default-ok": "ОК",
- "ooui-dialog-confirm-default-cancel": "Адмяніць"
+ "ooui-dialog-message-accept": "ОК",
+ "ooui-dialog-message-reject": "Адмяніць"
}
diff --git a/resources/lib/oojs-ui/i18n/bg.json b/resources/lib/oojs-ui/i18n/bg.json
index c2839736..02d95b52 100644
--- a/resources/lib/oojs-ui/i18n/bg.json
+++ b/resources/lib/oojs-ui/i18n/bg.json
@@ -7,7 +7,6 @@
"Mitzev"
]
},
- "ooui-dialog-action-close": "Затваряне",
"ooui-outline-control-remove": "Премахване на обекта",
"ooui-toolbar-more": "Още"
}
diff --git a/resources/lib/oojs-ui/i18n/bn.json b/resources/lib/oojs-ui/i18n/bn.json
index f7105ce7..1cfa6c45 100644
--- a/resources/lib/oojs-ui/i18n/bn.json
+++ b/resources/lib/oojs-ui/i18n/bn.json
@@ -6,15 +6,21 @@
"Jayantanth",
"Nasir8891",
"Runab",
- "Sayak Sarkar"
+ "Sayak Sarkar",
+ "Aftabuzzaman",
+ "RYasmeen (WMF)"
]
},
- "ooui-dialog-action-close": "বন্ধ",
"ooui-outline-control-move-down": "আইটেম নিচে স্থানান্তর",
"ooui-outline-control-move-up": "আইটেম উপরে স্থানান্তর",
"ooui-outline-control-remove": "আইটেম সরান",
"ooui-toolbar-more": "আরও",
- "ooui-dialog-confirm-title": "নিশ্চিত করুন",
- "ooui-dialog-confirm-default-ok": "ঠিক আছে",
- "ooui-dialog-confirm-default-cancel": "বাতিল"
+ "ooui-toolgroup-expand": "আরও",
+ "ooui-toolgroup-collapse": "কম দেখাও",
+ "ooui-dialog-message-accept": "ঠিক আছে",
+ "ooui-dialog-message-reject": "বাতিল",
+ "ooui-dialog-process-error": "কিছু একটায় ত্রুটি হয়েছে",
+ "ooui-dialog-process-dismiss": "বাতিল করুন",
+ "ooui-dialog-process-retry": "আবার চেষ্টা করুন",
+ "ooui-dialog-process-continue": "অগ্রসর হোন"
}
diff --git a/resources/lib/oojs-ui/i18n/br.json b/resources/lib/oojs-ui/i18n/br.json
index 69591917..83af863c 100644
--- a/resources/lib/oojs-ui/i18n/br.json
+++ b/resources/lib/oojs-ui/i18n/br.json
@@ -3,16 +3,20 @@
"authors": [
"Fohanno",
"Fulup",
- "Y-M D"
+ "Y-M D",
+ "Maoris"
]
},
"ooui-outline-control-move-down": "Lakaat an elfenn da ziskenn",
"ooui-outline-control-move-up": "Lakaat an elfenn da bignat",
"ooui-outline-control-remove": "Tennañ an elfenn",
"ooui-toolbar-more": "Muioc'h",
+ "ooui-toolgroup-expand": "Muioc'h",
+ "ooui-toolgroup-collapse": "Nebeutoc'h",
"ooui-dialog-message-accept": "Mat eo",
"ooui-dialog-message-reject": "Nullañ",
"ooui-dialog-process-error": "Un dra bennak a-dreuz a zo bet",
"ooui-dialog-process-dismiss": "Disteurel",
- "ooui-dialog-process-retry": "Klask en-dro"
+ "ooui-dialog-process-retry": "Klask en-dro",
+ "ooui-dialog-process-continue": "Kenderc'hel"
}
diff --git a/resources/lib/oojs-ui/i18n/bs.json b/resources/lib/oojs-ui/i18n/bs.json
index 14280a79..130bd8e5 100644
--- a/resources/lib/oojs-ui/i18n/bs.json
+++ b/resources/lib/oojs-ui/i18n/bs.json
@@ -4,13 +4,16 @@
"DzWiki"
]
},
- "ooui-dialog-action-close": "Zatvori",
"ooui-outline-control-move-down": "Premjesti stavku dole",
"ooui-outline-control-move-up": "Premjesti stavku gore",
"ooui-outline-control-remove": "Ukloni stavku",
"ooui-toolbar-more": "Više",
- "ooui-dialog-confirm-title": "Potvrdi",
- "ooui-dialog-confirm-default-prompt": "Da li ste sigurni?",
- "ooui-dialog-confirm-default-ok": "U redu",
- "ooui-dialog-confirm-default-cancel": "Otkaži"
+ "ooui-toolgroup-expand": "Više",
+ "ooui-toolgroup-collapse": "Manje",
+ "ooui-dialog-message-accept": "U redu",
+ "ooui-dialog-message-reject": "Otkaži",
+ "ooui-dialog-process-error": "Nešto je pošlo naopako",
+ "ooui-dialog-process-dismiss": "Odbaci",
+ "ooui-dialog-process-retry": "Pokušajte ponovo",
+ "ooui-dialog-process-continue": "Nastavi"
}
diff --git a/resources/lib/oojs-ui/i18n/ca.json b/resources/lib/oojs-ui/i18n/ca.json
index c3e80fea..ce3afa43 100644
--- a/resources/lib/oojs-ui/i18n/ca.json
+++ b/resources/lib/oojs-ui/i18n/ca.json
@@ -9,12 +9,20 @@
"SMP",
"Vriullop",
"Toniher",
- "Edustus"
+ "Edustus",
+ "Davidpar"
]
},
- "ooui-outline-control-move-down": "Baixa element",
- "ooui-outline-control-move-up": "Puja element",
+ "ooui-outline-control-move-down": "Baixa l'element",
+ "ooui-outline-control-move-up": "Puja l'element",
+ "ooui-outline-control-remove": "Esborra l'ítem",
"ooui-toolbar-more": "Més",
+ "ooui-toolgroup-expand": "Més",
+ "ooui-toolgroup-collapse": "Menys",
+ "ooui-dialog-message-accept": "D'acord",
+ "ooui-dialog-message-reject": "Cancel·la",
+ "ooui-dialog-process-error": "Alguna cosa no ha funcionat",
"ooui-dialog-process-dismiss": "Descarta",
- "ooui-dialog-process-retry": "Torneu-ho a provar"
+ "ooui-dialog-process-retry": "Torneu-ho a provar",
+ "ooui-dialog-process-continue": "Continua"
}
diff --git a/resources/lib/oojs-ui/i18n/ce.json b/resources/lib/oojs-ui/i18n/ce.json
index de86daf0..562dc3d5 100644
--- a/resources/lib/oojs-ui/i18n/ce.json
+++ b/resources/lib/oojs-ui/i18n/ce.json
@@ -5,13 +5,13 @@
"Умар"
]
},
- "ooui-dialog-action-close": "ДӀачӀагӀа",
"ooui-outline-control-move-down": "Лаха яккха элемент",
"ooui-outline-control-move-up": "Лаккха яккха элемент",
"ooui-outline-control-remove": "ДӀадаха меттиг",
"ooui-toolbar-more": "Кхин",
- "ooui-dialog-confirm-title": "Бакъдан",
- "ooui-dialog-confirm-default-prompt": "Бакъалла лаьий хӀуна?",
- "ooui-dialog-confirm-default-ok": "ХӀаъ",
- "ooui-dialog-confirm-default-cancel": "Цаоьшу"
+ "ooui-toolgroup-expand": "Дукха",
+ "ooui-toolgroup-collapse": "КӀезиг",
+ "ooui-dialog-message-accept": "ХӀаъ",
+ "ooui-dialog-message-reject": "Цаоьшу",
+ "ooui-dialog-process-continue": "Кхин дӀа"
}
diff --git a/resources/lib/oojs-ui/i18n/ckb.json b/resources/lib/oojs-ui/i18n/ckb.json
index eadae998..0c66619d 100644
--- a/resources/lib/oojs-ui/i18n/ckb.json
+++ b/resources/lib/oojs-ui/i18n/ckb.json
@@ -6,8 +6,6 @@
"Serwan"
]
},
- "ooui-dialog-action-close": "دایخە",
- "ooui-dialog-confirm-default-prompt": "ئایا تۆ دڵنیات ؟",
- "ooui-dialog-confirm-default-ok": "باشە",
- "ooui-dialog-confirm-default-cancel": "پاشگەزبوونەوە"
+ "ooui-dialog-message-accept": "باشە",
+ "ooui-dialog-message-reject": "پاشگەزبوونەوە"
}
diff --git a/resources/lib/oojs-ui/i18n/co.json b/resources/lib/oojs-ui/i18n/co.json
index 19c2f5cd..01d181d7 100644
--- a/resources/lib/oojs-ui/i18n/co.json
+++ b/resources/lib/oojs-ui/i18n/co.json
@@ -4,7 +4,6 @@
"Paulu"
]
},
- "ooui-dialog-action-close": "Chjude",
"ooui-outline-control-move-down": "Fà falà l'ogettu",
"ooui-outline-control-move-up": "Fà cullà l'ogettu"
}
diff --git a/resources/lib/oojs-ui/i18n/crh-cyrl.json b/resources/lib/oojs-ui/i18n/crh-cyrl.json
new file mode 100644
index 00000000..ccc00269
--- /dev/null
+++ b/resources/lib/oojs-ui/i18n/crh-cyrl.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "ooui-toolbar-more": "Даа зияде"
+}
diff --git a/resources/lib/oojs-ui/i18n/crh-latn.json b/resources/lib/oojs-ui/i18n/crh-latn.json
new file mode 100644
index 00000000..7ad7b0bb
--- /dev/null
+++ b/resources/lib/oojs-ui/i18n/crh-latn.json
@@ -0,0 +1,8 @@
+{
+ "@metadata": {
+ "authors": [
+ "Don Alessandro"
+ ]
+ },
+ "ooui-toolbar-more": "Daa ziyade"
+}
diff --git a/resources/lib/oojs-ui/i18n/cs.json b/resources/lib/oojs-ui/i18n/cs.json
index a75cf0ba..1db9aed5 100644
--- a/resources/lib/oojs-ui/i18n/cs.json
+++ b/